Google Ads Transparency Scraper (advertiser, domain, alerts)
Pricing
from $0.80 / 1,000 result items
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
Maintained by CommunityActor 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:
| Field | Example value |
|---|---|
id | CR06029231865573933057 |
advertiserId / advertiserName / advertiserCountry | AR16735076323512287233 / Nike, Inc. / US |
format / formatCode | text / 1 |
firstShown | 2023-04-25T20:04:55Z |
lastShown | 2026-09-04T03:27:32Z |
daysShown | 1098 |
previewUrl | https://tpc.googlesyndication.com/archive/simgad/14371953314391582497 |
previewHtml | <img src="https://tpc.googlesyndication.com/archive/simgad/14371953314391582497" height="273" width="348"> |
url | https://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
daysShownto 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.
Related actors
- Google News Scraper (search, headlines, alerts, no login) — track the news cycle around an advertiser or domain.
- Google Trends Scraper: Interest, Related Queries, Spikes — check whether ad spend lines up with a spike in search interest.
- Reddit Scraper (subreddit posts, search, comments, no login) — see organic community discussion instead of paid ad copy.
How it works
advertiserNamesare resolved through the Center's own suggestion endpoint (countryandexactMatchnarrow the match);advertiserIdsanddomainsare used directly.- The Center's own JSON endpoint is paginated 40 creatives at a time until
maxItemsor the advertiser's total is reached. - Each creative is flattened into one row with its format, first/last shown timestamps in UTC and its preview asset.
- With
includeDetails, one extra request per creative fillsvariations. - In
monitormode the run compares against the previous run of the same task and returns only new creatives or ones whoselastShownmoved, optionally posting a summary to a webhook or Telegram chat.
Input
| Field | Meaning | Default |
|---|---|---|
advertiserIds | AR… ids from Center URLs — the most reliable input | ["AR16735076323512287233"] (Nike, Inc.) |
advertiserNames | Advertiser names as spelled in the Center, resolved via suggestions | empty |
domains | Advertised domains, e.g. nike.com | empty |
country | Two-letter code to disambiguate advertisers with the same name | empty |
exactMatch | Keep only advertisers whose name equals the query | true |
includeDetails | One extra request per creative to fill variations | false |
maxItems | Stop after this many creatives | 20 |
mode | scrape or monitor (only new/changed since the previous run) | scrape |
monitorStateId | State key for monitor mode outside a saved task | empty |
webhookUrl | HTTPS endpoint for the monitor-mode change summary | empty |
telegramBotToken / telegramChatId | Send the monitor-mode summary to Telegram | empty |
Pricing
| Event | Price |
|---|---|
| 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,lastShownanddaysShownon 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_SUMMARYrecords 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.
previewUrlis the first preview of the creative, and its kind depends on the format: text ads expose the archived image asset ontpc.googlesyndication.com(also repeated aspreviewHtml), while image and video ads expose the Center's own render URL ondisplayads-formats.googleusercontent.comand carry nopreviewHtml. Either wayurlopens 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:
previewUrlis 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.