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.
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.
Competitor ad tracking splits into two practices. PPC intelligence tools like SpyFu estimate the keywords and budgets behind rivals’ Google Ads; creative tracking reads the actual ads, the copy, the formats, and how long each has run, from the platform ad libraries. The first tells you where competitors spend, the second what they are saying and which messages are working, the insights a creative brief actually needs. Waldo does the second: daily scans of the Meta and Google libraries for tracked brands, the LinkedIn and TikTok libraries on demand, and a stored history the native archives forget.
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 setMCP: discover_adsThe same feed inside Claude or ChatGPT for interactive diggingQuestions 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.
How does competitor ad tracking work?
The platform ad libraries publish every active ad; tracking means scanning them on a schedule, storing what you find, and diffing runs so changes surface as alerts. The stored history is what turns a library lookup into intelligence: days-live reveals which creative earns its keep, and retired ads mark the tests that failed.
Can I track competitor ads for free?
Yes, manually: the Meta Ad Library, Google’s Ads Transparency Center, and TikTok’s library are free to search. The costs are labor and memory: checking by hand does not scale past a couple of brands, and once an ad stops running the native record forgets it. Paid tools exist to automate the collecting and keep the history.
How do I see every ad a competitor is running?
Search the advertiser’s name in each platform library for the native picture, or pull it in one call: /brands/{id}/ads/active returns a tracked brand’s full current set with creative, copy, and days live. One real pull returned 14,793 ads for a single brand on Meta.
Can Claude or ChatGPT track competitor ads?
Yes. Waldo ships an MCP server: in Claude, discover_ads and its sibling tools return a competitor’s active ads as data in the conversation, and in ChatGPT the same questions route through Waldo’s Strategy Agent. Scheduled agents can run the same calls on a timer and post only the deltas to Slack.
Keep reading
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.