Ad Tracker events
Get the Competitor Ad Tracker's new ads, stopped ads, briefs and weekly digest as signed webhooks: payloads, typing and Slack.
The Competitor Ad Tracker can send its alerts to the same webhook endpoints monitors use. Pick the endpoints in the app under Tools → Ad Tracker → Settings → Webhooks. Each endpoint you pick gets all four event types.
Delivery works exactly like monitor events: the same signature, the same retries and idempotency, and the same delivery log on the endpoint's page. Dedupe on socialfetch-event-id.
When they're sent
| Type | Sent when |
|---|---|
ad_tracker.ads.launched | A daily check of one competitor on one library finds new ads. One event per competitor per library per check. |
ad_tracker.ads.stopped | The same check finds ads that stopped running. |
ad_tracker.brief.ready | A competitor's monthly brief is written. |
ad_tracker.digest.weekly | Monday morning, when the workspace's week had any launches, stops or new countries. |
Webhooks don't follow the email settings. There's no daily cap and no "only once N new ads" minimum: every check that finds something sends an event. A competitor's first check (which collects its existing ads) sends no ads.launched, because those ads aren't new launches.
The envelope
An Ad Tracker event is a monitor event's envelope without monitor, source and billing. Tracker events cost nothing beyond the checks themselves.
Every data has summary, one plain sentence, and url, the matching page in the app. Missing values are null, never left out, and times are ISO strings.
ads.launched/ads.stopped:countis every ad found;adslists up to 10, newest first, andtruncatedsays whether there were more.mediaUrlis the library's own link and can expire, so open the ad'surlfor the archived copy.brief.ready:briefhasperiodStart,periodEnd,adsConsideredandpointCount. The brief is an AI summary, so it stays in the app; openurlto read it.digest.weekly:periodStart,periodEnd,totals(newAdCount,stoppedAdCount),competitors(busiest first, each with its counts,countriesStartedandlongestRunning), andmorefor the competitors left out of the list.
A test event from Send test event is a real ad_tracker.ads.launched with sample data and "sample": true on the envelope.
Typed in the SDK
WebhookEvent covers monitor and Ad Tracker events. Use AdTrackerEvent if the endpoint only gets tracker events. AD_TRACKER_EVENT_TYPES lists the four types.
Slack, Teams and spreadsheets
Endpoints receive signed JSON, which Slack's and Teams' incoming webhooks don't accept as it is. Use Zapier or Make in between:
- Create a Catch Hook (Zapier's Webhooks trigger) or a Custom webhook (Make) and copy its URL.
- Add it as a webhook endpoint in SocialFetch and turn it on under the Ad Tracker's webhook settings.
- Click Send test event so Zapier or Make can see the fields.
- Post
data.summaryanddata.urlto a Slack or Teams channel, or add a row per ad fromdata.adsto a sheet.
Build on it with the API
Each ad library the tracker reads is also an API endpoint, billed in the same credits: Meta company ads, LinkedIn ad library search, Google company ads and TikTok ad library search. Call them yourself, or create a monitor on any watchable endpoint.