SteveSignalsDocs

Trackers

Ads tracker

Get a signal every time a competitor starts a new ad on Google, Meta or LinkedIn.

Add the competitor's ad accounts → get notified when a new ad goes live.

What it watches
New ads on Google, Meta (Facebook, Instagram, Messenger) and LinkedIn
What you add
A Google advertiser ID, a Meta page URL and/or a LinkedIn company page
How often
Daily or Weekly
Cost
1 credit per ad platform per check
Events
ads.new, ads.updated · google_ad, meta_ad, linkedin_ad
Relevance
Not scored. Every new ad is delivered as published

Set it up

Add the competitor

Go to Feed or Trackers and click Add competitor. Enter the website, for example pipedrive.com, and click Continue.

Tick Ads

On What should we watch at …?, tick Ads. Signals tries to find each account for you. A green Tracked under a field means it found it.

Fill the missing accounts

You only need one platform. Fill any field that says We couldn't find…:

  • Google: the AR… advertiser ID or an Ads Transparency link.
  • Meta: the Facebook page link, like https://www.facebook.com/hubspot. It covers Facebook, Instagram and Messenger ads.
  • LinkedIn: the company page link, like https://www.linkedin.com/company/hubspot/.

Click the ⓘ next to a field for "How to find" help.

Pick how often and start

Choose Daily or Weekly and click Start tracking.

Ads row in the add competitor flow
Ads for Pipedrive: Meta was found automatically, Google and LinkedIn still need an account.
Edit Ads for HubSpot
All three platforms tracked for HubSpot: 3 credits per check.

Setup can be left incomplete

If you start with some platforms empty, the feed shows Ads setup isn't finished and the tracker row says Setup incomplete. Click Finish setup to add the missing accounts.

What you get

The first check reports every ad that is running today on Google and Meta, and every ad in the LinkedIn Ad Library listing, as ads.new signals. Stopped Google and Meta ads are saved silently as the starting point. From the next check on, each new ad is one ads.new signal, and an ad that stops, resumes or changes its copy is one ads.updated signal (shown as Ad changed).

A Google ad signal
A real Google ad signal for HubSpot: status Running, 416 days, Long-running badge.

In the signal you see:

  • the ad preview (image or video), headline and copy
  • Status (Running or Stopped), Running for, Format, Started
  • a Long-running badge when an ad has run for 60 days or more
  • for LinkedIn ads: Button, Landing page, Paid by
  • Open ad to see it in Google Ads Transparency, the Meta Ad Library or the LinkedIn Ad Library

In your webhook

Each new ad is one event with eventType: "ads". The network is in subEventType. The full key list, types and real bodies for all three networks are on Ads events. A webhook gets one POST per check (a run webhook) and reads these events from its pages.

json
1{
2 "eventType": "ads",
3 "subEventType": "google_ad",
4 "action": "new",
5 "signalType": "ads.new",
6 "competitor": { "name": "HubSpot", "domain": "hubspot.com", "subjectKey": "…" },
7 "adsResponse": {
8 "platform": "google",
9 "adId": "CR00389017023612452865",
10 "format": "text",
11 "isActive": true,
12 "startedAt": "2025-07-30T14:52:54.000Z",
13 "previewUrl": "https://adstransparency.google.com/advertiser/AR10072600183532683265/creative/CR00389017023612452865?region=anywhere",
14 "daysShown": 455
15 }
16}