Google Ads Transparency Scraper (advertiser, domain, alerts) avatar

Google Ads Transparency Scraper (advertiser, domain, alerts)

Pricing

from $0.80 / 1,000 result items

Go to Apify Store
Google Ads Transparency Scraper (advertiser, domain, alerts)

Google Ads Transparency Scraper (advertiser, domain, alerts)

Google Ads Transparency Center scraper: every ad an advertiser or domain has run, one row per creative - creative id, format, first and last shown, days shown, preview image URL and the Center page link. Search by advertiser name, advertiser id (AR...) or domain. Monitor mode for new creatives.

Pricing

from $0.80 / 1,000 result items

Rating

0.0

(0)

Developer

Viktor Dubnytskiy

Viktor Dubnytskiy

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

6

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape the Google Ads Transparency Center and get every ad an advertiser or a domain has run, one row per creative, with the dates it was shown and a link to its preview. Search by advertiser name, by the AR… advertiser id from a Center URL, or by advertised domain — no login and no Google account.

What you get (example output)

One row per creative. Real values from the example dataset of this actor:

FieldExample value
idCR06029231865573933057
advertiserId / advertiserName / advertiserCountryAR16735076323512287233 / Nike, Inc. / US
format / formatCodetext / 1
firstShown2023-04-25T20:04:55Z
lastShown2026-09-04T03:27:32Z
daysShown1098
previewUrlhttps://tpc.googlesyndication.com/archive/simgad/14371953314391582497
previewHtml<img src="https://tpc.googlesyndication.com/archive/simgad/14371953314391582497" height="273" width="348">
urlhttps://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR06029231865573933057

Also on every row: variations (filled when includeDetails is on) and scrapedAt.

Use cases

  • Competitor ad monitoring: list every creative a rival is running and get alerted when a new one appears or an old one goes back into rotation.
  • Creative research: sort by daysShown to find the evergreen creatives an advertiser keeps funding, and pull the preview images for a swipe file.
  • Brand and compliance checks: verify which ads are running under your brand's domain, or investigate an advertiser's history for reporting.

How it works

  1. advertiserNames are resolved through the Center's own suggestion endpoint (country and exactMatch narrow the match); advertiserIds and domains are used directly.
  2. The Center's own JSON endpoint is paginated 40 creatives at a time until maxItems or the advertiser's total is reached.
  3. Each creative is flattened into one row with its format, first/last shown timestamps in UTC and its preview asset.
  4. With includeDetails, one extra request per creative fills variations.
  5. In monitor mode the run compares against the previous run of the same task and returns only new creatives or ones whose lastShown moved, optionally posting a summary to a webhook or Telegram chat.

Input

FieldMeaningDefault
advertiserIdsAR… ids from Center URLs — the most reliable input["AR16735076323512287233"] (Nike, Inc.)
advertiserNamesAdvertiser names as spelled in the Center, resolved via suggestionsempty
domainsAdvertised domains, e.g. nike.comempty
countryTwo-letter code to disambiguate advertisers with the same nameempty
exactMatchKeep only advertisers whose name equals the querytrue
includeDetailsOne extra request per creative to fill variationsfalse
maxItemsStop after this many creatives20
modescrape or monitor (only new/changed since the previous run)scrape
monitorStateIdState key for monitor mode outside a saved taskempty
webhookUrlHTTPS endpoint for the monitor-mode change summaryempty
telegramBotToken / telegramChatIdSend the monitor-mode summary to Telegramempty

Pricing

EventPrice
result$0.001 per creative ($1 per 1,000)
monitor-check$0.003 per monitor run
change$0.001 per new/changed creative

Charged only for creatives actually pushed. An unknown advertiser yields an empty run with reason no_matches and no result charges.

Found it useful? A short review on the Store page helps other researchers find this actor and tells us what to improve. If an advertiser or ad read looks wrong, open an issue on the actor page — issues are answered within a day.

Why this actor

  • Three ways in — advertiser name, AR… id or domain — so you can start from whatever you have.
  • firstShown, lastShown and daysShown on every row, which is what makes an ad library useful for spotting what actually runs.
  • Reads the Center's own JSON endpoint: no browser, no login, so runs are fast and the proxy traffic stays small.
  • You pay per pushed creative; an empty run costs nothing beyond platform usage, and RUN_SUMMARY records the reason (no_matches, blocked, rate_limited, invalid_input, upstream_error).
  • Monitor mode with webhook and Telegram alerts on new creatives.
  • A daily canary run verifies the Center's request format still works.

Limits

  • Region filter is "anywhere" (the Center's global view); per-region breakdowns are not included.
  • Large advertisers (e.g. Nike, Inc. ≈ 8,000–9,000 creatives) paginate at 40 per request; the Center's own total is reported as the source cap in the run summary.
  • previewUrl is the first preview of the creative, and its kind depends on the format: text ads expose the archived image asset on tpc.googlesyndication.com (also repeated as previewHtml), while image and video ads expose the Center's own render URL on displayads-formats.googleusercontent.com and carry no previewHtml. Either way url opens the creative on the Center page.
  • Runs through Apify residential proxy (Google returns 429 to datacenter egress IPs); proxy traffic is small (JSON only) and billed to you by Apify at platform rates.
  • The Center's internal request format can change without notice; a canary run verifies it daily.
  • No spend, impression or targeting data — the Center does not publish those for ordinary commercial ads.

FAQ

How do I find an advertiser's AR… id? Open the advertiser in the Ads Transparency Center; the URL is adstransparency.google.com/advertiser/AR…. Paste that segment into advertiserIds. If you only know the name, put it in advertiserNames instead.

Can I see how long a Google ad has been running? Yes — every row carries firstShown, lastShown and daysShown, so you can rank an advertiser's creatives by how long they have stayed in rotation.

How do I get alerted when a competitor launches a new ad? Save the actor as a task with that advertiser, set mode: monitor, schedule it, and add webhookUrl or the two Telegram fields; each run then returns only new creatives and ones that started running again.

Changelog

  • 0.1: initial release — advertiser name/id and domain search, pagination, monitor mode, optional details.
  • 0.1.1: previewUrl is now filled for image and video creatives too (the Center's render URL), not only for text ads with an archived image asset.

If this actor is useful, a review on its Apify Store page helps other people find it. For bugs or a missing field, open a ticket on the Issues tab of this actor.