Originally published on the Devil Scrapes blog.
Quick answer: The Google Ads Transparency Center publicly lists every ad creative Google is currently serving for a given advertiser, across Search, YouTube, Display, Shopping, Maps, and Play — but Google ships no official API for it. Our Google Ads Transparency Scraper exports it by domain or advertiser ID to JSON or CSV, at $0.20 per run plus $3.00 per 1,000 ads landed.
A public registry with no export button
Google has quietly built one of the most useful competitive-intelligence datasets on the web and given it almost no interface. Search or paste a domain into the Transparency Center and you get a paginated UI showing every ad creative currently running for that advertiser — 40 at a time, one click at a time. For a brand the size of Nike, that's tens of thousands of creatives behind an interface built for spot-checking one ad, not exporting a library.
There's no bulk download, no CSV export, and no documented API. If you want the dataset rather than the UI, you need to talk to whatever the UI itself talks to — which is exactly what this Actor does. It replays the same internal request the browser makes, carrying a real browser's TLS handshake so the request isn't distinguishable from the page you'd load by hand, and turns the response into typed rows instead of rendered HTML.
What comes back per ad
| Field | What it tells you |
|---|---|
advertiser_id / advertiser_name
|
Who's running the ad |
creative_id / creative_url
|
A stable ID and a deep link back into the Transparency Center |
landing_domain |
Where the click actually goes |
format_type |
Text, image, or video |
first_shown_ts / last_shown_ts
|
How long the creative has been live |
impressions |
Google's own reported impression count |
preview_image_url / preview_content_js_url
|
The creative asset itself, not just its metadata |
region |
The locale you tagged the request with |
scraped_at |
ISO-8601 timestamp of the pull |
That last point matters more than it looks: plenty of scrapers in this space return who's advertising and where the click goes, but drop the creative asset entirely. Getting preview_image_url back means you can actually look at the ad, not just its metadata.
Who this is for
- Agencies running competitive intel — pull a client's top three rivals weekly and diff the creative set to catch new launches before the client asks about them.
- Brand protection teams — sweep your own brand domain and trademark terms to see who else is buying ads against your name, including resellers and affiliates you never authorized.
-
Affiliate-fraud and compliance teams — cross-reference
landing_domainagainstadvertiser_name; a mismatch is the fastest signal that an advertiser isn't who their name claims.
Running it
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("DevilScrapes/google-ads-transparency").call(
run_input={
"searchDomains": ["nike.com"],
"maxResults": 500,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["advertiser_name"], item["creative_id"], item["landing_domain"])
You can pass multiple domains in one run, or drop in advertiser IDs directly if you already have them from a Transparency Center URL. Each ad lands as one dataset row, exportable as JSON, CSV, Excel, or JSONL from the run's Storage tab, or pulled straight over the API.
Pricing, exactly
Pay-per-event: a $0.20 actor-start fee once per run, then $3.00 per 1,000 ads written to the dataset. Nothing is charged for ads you don't get back.
| Pull | Cost |
|---|---|
| 500 ads (the snippet above) | $1.70 |
| 1,000 ads | $3.20 |
| 10,000 ads | $30.20 |
| 100,000 ads (a monthly sweep across a portfolio of brands) | $300.20 |
A weekly sweep of five competitors at roughly 200 ads each costs about $4 a month in per-result charges plus five runs' worth of start fees — a fraction of what a dedicated ad-intelligence subscription runs, for exactly the slice of that data you actually need.
What we're upfront about
Google's underlying endpoint ignores the region parameter server-side — we tested every plausible request shape to confirm it rather than shipping a region filter that quietly does nothing. We still let you tag exports by intended locale, but it's metadata, not a live filter. Video and rich creatives return a script bundle URL rather than a renderable video file, since actually playing the creative requires executing Google's own JS. And Google itself retains roughly 12 months of history, so a date range older than that clips to whatever Google still has.
If you need the full picture before committing to a run, the Actor's Store listing has the complete field reference and input options.
Run it on Apify: Google Ads Transparency Scraper — paste a domain, get every creative back as clean rows.
FAQ
Does Google have an official Ads Transparency API?
No. As of 2026, Google publishes no official API for the Transparency Center. This Actor replays the same internal request the browser UI makes and returns typed rows instead of rendered pages.
Is scraping the Google Ads Transparency Center legal?
The Transparency Center is a public registry Google operates under regulatory pressure in the EU and US. This Actor reads only what the public UI already exposes, at a measured pace, and doesn't collect personal data — only advertiser-level ad metadata.
Can I filter results by country or region?
Not effectively — Google's own endpoint ignores the region parameter, a limitation we verified directly rather than shipping a filter that silently does nothing. The region field is available for tagging your export, not for narrowing results.
How much does it cost to export 500 ads?
$1.70 total: the $0.20 per-run start fee plus $3.00 per 1,000 ads, prorated to $1.50 for 500 ads.
Can I automate a weekly competitor sweep?
Yes — attach the Actor to an Apify Console schedule and run it weekly. Google's Transparency Center updates at most daily, so a weekly cadence catches new creative launches without wasting runs on unchanged data.
Devil Scrapes builds and maintains 200+ pay-per-result web scrapers on the Apify Store. Blocks, retries and proxies handled by us. Browse the full catalog or commission a custom Actor.
Actors mentioned in this post:
Top comments (0)