DEV Community

SureSignal
SureSignal

Posted on

How to see your competitors' Google ads, and get only the new ones every morning

How to see your competitors' Google ads, and get only the new ones every morning

Google publishes a public library of ads: the Google Ads Transparency Center (adstransparency.google.com). Search an advertiser or a website and you can see their search, display and YouTube ads, when each was first and last shown, and in which regions.

Step 1: The free, manual way

  1. Open adstransparency.google.com.
  2. Search a competitor's name or domain. Domain search also catches resellers and affiliates pointing ads at that site.
  3. Filter by region, format and date.

This is great for a one-off look. It falls short when you want to track 20 competitors, export the creatives, or know what's new since last week without scrolling past the same long-running ads again.

What the library will not tell you: spend, bids or the keywords a competitor targets. Google doesn't publish those for commercial ads. Treat any tool that promises them from this source with suspicion.

Step 2: Export it

The Google Ads Transparency Library Actor on Apify searches by domain, advertiser name or ID, or keyword (which finds advertisers), and exports each ad with:

  • format (text, image or video),
  • firstShown, lastShown and daysShown (long-running ads are usually the ones that work),
  • the rendered ad image, or the YouTube URL, video ID and thumbnail for video ads,
  • target domain and the Transparency Center link.
{
  "domains": ["competitor-one.com", "competitor-two.com"],
  "region": "US",
  "adFormat": "ALL",
  "dateFrom": "2026-09-01",
  "maxAdsPerQuery": 200,
  "onlyNewAds": true,
  "monitorName": "crm-competitors"
}
Enter fullscreen mode Exit fullscreen mode

No Google account, API key or cookies needed.

Step 3: Turn it into a monitor and only pay for new ads

The first run pulls the competitors' current ads, up to your limit. With onlyNewAds on and a daily Schedule, every later run delivers only ads this monitor hasn't seen.

  • Money: $0.012 per ad delivered ($12 per 1,000). Ads you already have aren't re-sent and aren't charged. maxAdsTotal caps any run.
  • Time: no hand-filtering of the long-running ads that show up every run.
  • Mental effort: the morning Slack message is "Competitor X launched 3 new video ads", not their whole back catalog.
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("SureSignal/google-ads-transparency-library").call(run_input={
    "domains": ["competitor-one.com"],
    "region": "US",
    "onlyNewAds": True,
    "monitorName": "competitor-one-us",
})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(ad["format"], ad.get("firstShown"), ad.get("videoUrl") or ad.get("imageUrl"), ad["adUrl"])
Enter fullscreen mode Exit fullscreen mode

Optional add-on: regions shown and variation count per ad, at $3 per 1,000 ads.

What to do with it

  • Review new creatives weekly and tag the offer, hook and landing page.
  • Sort by daysShown. Ads that have run for months are worth studying.
  • Brand protection: search your own domain to spot resellers or affiliates bidding on it.

Honest limits

  • No spend, keywords or bids (Google doesn't publish them).
  • Google searches advertisers and domains, not ad copy text.
  • Zero results usually means that format or region didn't run. Try region anywhere and format ALL.

A decision is only as good as the information behind it. Seeing a competitor's new offer the week it launches beats discovering it in a quarterly review.

SureSignal: only pay for new data.



Try it: google-ads-transparency-library on the Apify Store. You only pay for new data: runs on a schedule skip what you've already received.

Top comments (0)