Customer StoriesPricing

Use case

Competitor ad tracking your agents can act on

Every active ad your competitors run, pulled daily from the Meta and Google ad libraries, delivered as data instead of screenshots.

Get your API key

The short answer

Waldo tracks competitor ads by scanning the Meta and Google ad libraries daily for every brand you activate. One API call returns the active set with creative, copy, and days live; analysis endpoints cluster the angles and flag fatigue. Your agents read the same feed over MCP and turn it into briefs and alerts.

The job to be done

Knowing what competitors are running should not be a quarterly deck. Creative teams need the current angle landscape before a brief, media teams need to catch a new campaign the week it launches, and account teams need to walk into a client meeting knowing the set has changed. Doing this by hand means ad library screenshots, and doing it with a listening dashboard means organic mentions with the paid picture missing.

The job is simple to state: keep a complete, current picture of every ad each competitor has live, know how long each one has been running, and understand which angles the set leans on, without a person doing the collecting.

How Waldo does it

Pull the active set

GET /brands/{id}/ads/active returns every ad a tracked brand currently runs, with creative, copy, and days live. The Build page shows a real pull of this endpoint: a single brand on Meta with 14,793 ads in the set.

Cluster the angles

The category angle library endpoint returns a versioned taxonomy of every hook in the competitive set, with example creative attached and ready to drop into a brief.

Flag fatigue

Days-live metadata makes tired creative visible. A weekly scan flags which ads have been running long enough to go stale, before click-through craters.

Diff and alert

Hit the API on a schedule with the since parameter, diff against the last run, and push only the deltas to Slack, a database, or a webhook: new creatives, changed offers, retired ads.

The endpoints

/brands/{id}/ads/activeThe current ad set for a tracked brand, refreshed daily
/brands/{id}/ads/active?since=Only what changed since your last pull, built for cron and diff jobs
/category/{id}/angle-libraryA versioned taxonomy of hooks across the competitive set
MCP: discover_adsThe same feed inside Claude or ChatGPT for interactive digging
200+API and MCP endpoints
24hRefresh cycle for tracked brands
14,793Ads in one brand’s active Meta set, real pull

Questions teams ask

Which ad platforms are covered?

Tracked brands get daily scans of the Meta and Google ad libraries. Enrichment and Discover endpoints hit the underlying platforms live at request time for one-off research beyond the tracked set.

How fresh is the data?

Paid media for tracked brands refreshes on a 24-hour cycle, alongside owned media, mentions, and website snapshots. Discover and enrichment endpoints are real-time because they query the platforms at request time.

Can it watch landing pages too?

Yes. Waldo snapshots brand landing pages and flags changes, so you catch the offer swap behind the ad, like a discount changing to free shipping, not just the creative.

Keep reading

Waldo vs. BrandwatchHow agent-native ad tracking compares to a listening dashboard.Waldo for agenciesAccount teams use these diffs to catch changes before the client does.What is share of voice?The category metric that pairs with the ad set to show who owns the conversation.Waldo BuildThe API and MCP server these endpoints belong to.

Put Waldo behind your agents

Brand, category, and audience intelligence over 200+ API and MCP endpoints. Sign up, mint a key, and run it against the brands you actually track.

Get your API key
See everything. Miss nothing. Move first.
Get startedContact us
CompareAlternativesUse casesWho it's forGlossaryAudiences
Find us on LinkedIn • X -Twitter
Copyright 2026 • All Rights Reserved • Terms of Service • Privacy Policy