Google Ads Transparency Center Scraper (Pay-Per-Event)
Pricing
Pay per event
Google Ads Transparency Center Scraper (Pay-Per-Event)
Monitor who is running what ads on Google. Search the Ads Transparency Center by brand name, advertiser ID, domain, or Transparency Center URL. Returns every creative with format, first/last-shown dates, preview image/video, and — optionally — per-region impression ranges. HTTP-only, no login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Arnas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Google Ads Transparency Center Scraper
Monitor who is running what ads on Google. This actor scrapes the Google Ads Transparency Center and returns every ad creative an advertiser is disclosing — with format, first/last-shown dates, preview image or video, and optional per-region impression ranges. Give it a brand name, an advertiser ID, a domain, or a Transparency Center URL and get clean, structured rows you can download as JSON, CSV, Excel, or HTML — or pull straight from the Apify API.
It runs on Apify, so you get scheduling, a REST API, webhooks, proxy rotation, and monitoring out of the box. It's HTTP-only — no browser, no login — which makes it fast and cheap.
Why use the Google Ads Transparency Center Scraper?
- Competitor ad monitoring — see every ad a rival is running, when it started, and where it's shown.
- Creative research — build a swipe file of image, video, and text ads by brand or industry.
- Brand protection — catch impersonators and unauthorized resellers advertising on your name or domain.
- Ad-spend & trend intelligence — track which advertisers are ramping up, and (for EU/political ads) their disclosed impression ranges and surfaces.
- Compliance & research — pull political and issue-ad transparency data at scale.
How to use the Google Ads Transparency Center Scraper
- Open the actor and go to the Input tab.
- Add one or more advertisers — e.g.
Nike,AR01614014350098432001,nike.com, or a fulladstransparency.google.com/advertiser/...URL. - (Optional) Set a region (e.g.
US,GB,DE) or leave it asanywhere, choose an ad format, and set Max ads. - (Optional) Enable Scrape ad details for per-region impression ranges and every creative variant.
- Click Start. When the run finishes, open the Output tab or download the dataset.
Running by brand name? Check the run's key-value store entry RESOLVED_ADVERTISERS to see exactly which advertisers your name matched — then pin an exact AR… ID for a precise follow-up run.
Input
| Field | Type | Description |
|---|---|---|
advertisers | array | Required. Brand names, advertiser IDs (AR…), domains, or Transparency Center URLs — mix freely. |
region | string | ISO-2 country code (US, GB, DE, …) or anywhere (default). Applied server-side. |
format | string | all (default), text, image, or video. |
advertiserMatch | string | When a name/domain matches many advertisers: top (default), verified, exact, or all. |
maxAdvertisersPerQuery | integer | Cap how many advertisers a name/domain fans out to (default 1). |
maxAds | integer | Total ads across the whole run (default 100). |
maxAdsPerAdvertiser | integer | Cap per advertiser (default 1000). |
scrapeAdDetails | boolean | Fetch per-region impressions, dates, surfaces and all variants (default false). |
runTag | string | Optional label copied onto every row. |
customMapFunction | string | Optional JS to transform each row before it's saved. |
proxyConfiguration | object | Proxy settings — residential Apify Proxy strongly recommended. |
Example input:
{"advertisers": ["Nike", "nike.com", "AR01614014350098432001"],"region": "US","format": "video","maxAds": 200,"scrapeAdDetails": true,"proxyConfiguration": { "useApifyProxy": true }}
Output
Each row is one ad creative. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
{"advertiserId": "AR01614014350098432001","advertiserName": "lululemon athletica canada inc.","advertiserCountry": null,"advertiserVerified": false,"advertiserUrl": "https://adstransparency.google.com/advertiser/AR01614014350098432001?region=us","creativeId": "CR13154864943608102913","adUrl": "https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR13154864943608102913?region=us","format": "image","firstShown": "2024-05-07T22:47:18.000Z","lastShown": "2026-08-20T11:17:06.000Z","imageUrl": "https://tpc.googlesyndication.com/archive/simgad/15535461744911798090","width": 380,"height": 429,"regionsServedCount": 1,"surfaces": ["Search", "Shopping"],"impressionsMin": 25000,"impressionsMax": 30000,"regionStats": [{"regionCode": "FR","regionName": "France","firstShown": "2024-05-07","lastShown": "2026-08-20","impressionsMin": 25000,"impressionsMax": 30000,"surfaces": [{ "surface": "Search", "impressionsMin": 25000, "impressionsMax": 30000 }]}],"query": "AR01614014350098432001","queryType": "id","region": "US","scrapedAt": "2026-08-20T12:00:00.000Z"}
Data fields
| Field | Description |
|---|---|
advertiserId, advertiserName | The advertiser behind the ad. |
advertiserCountry, advertiserVerified | Registered country and Google-verified badge (for name queries). |
advertiserUrl, adUrl | Public Transparency Center links to the advertiser and the specific ad. |
creativeId | Google's creative identifier. |
format, formatCode | image, video, text, or html5 (plus Google's raw shape code). |
firstShown, lastShown | ISO timestamps of the first and most recent time the ad was seen. |
imageUrl, previewUrl, previewHtml, width, height | The ad's image asset, the interactive preview (content.js) URL, and dimensions. |
imageUrls, previewUrls, variantsCount | All creative variants (detail mode). |
regionsServedCount, surfaces | How many regions the ad ran in, and which Google surfaces (Search, YouTube, Display, Shopping, Maps, Play) — detail mode. |
impressionsMin, impressionsMax, regionStats | Disclosed impression ranges and per-region breakdown — detail mode (EU/political ads only). |
query, queryType, region, scrapedAt, runTag | Provenance for each row. |
How much does it cost to scrape the Google Ads Transparency Center?
This actor is pay-per-event — you pay only for what you extract, with no monthly rental:
- $0.01 per run start
- $2.00 per 1,000 ads ($0.002 each)
- + $0.001 per ad only when Scrape ad details is enabled (an enriched ad totals $3.00 / 1,000)
Scraping 1,000 ads costs about $2.01; 10,000 ads about $20.01. That's competitive with the field and well below the higher-priced Google Ads Transparency scrapers (which run $3–$17 per 1,000 results), while turning off Scrape ad details keeps every run at the base rate.
Tips and advanced options
- Ambiguous names fan out to many advertisers. Keep
maxAdvertisersPerQueryat1(default) for the single best match, useadvertiserMatch: "verified"or"exact"to tighten it, or pin an exactAR…ID from theRESOLVED_ADVERTISERSaudit for deterministic runs. - Domain queries return ads across every advertiser pointing at that domain — great for catching resellers.
- Format filtering happens client-side so it covers the full ad history (Google's own filter only reaches back to Sept 2023).
- Leave Scrape ad details off for the cheapest, fastest runs; turn it on when you need impression ranges, per-region breakdowns, or every variant.
- Use a residential proxy — Google throttles datacenter IPs aggressively.
FAQ, disclaimers, and support
Is this legal? The Google Ads Transparency Center is public data that Google itself publishes for transparency. This actor only reads what any visitor can see; it uses no login and collects no private data. You are responsible for complying with Google's Terms of Service and applicable law in your jurisdiction.
Why are impression numbers empty for my ads? Google discloses impression ranges and per-surface breakdowns only for EU and political/issue ads (a DSA requirement). For ordinary commercial ads outside the EU, impressionsMin/Max are null while dates, format, and creatives are still returned.
Why can't I get the landing/destination URL or a downloadable video file? The Transparency Center's data API does not expose the click-through URL or a durable video file — only a renderable preview (previewUrl). Open adUrl to view the full ad.
How far back does the data go? Google retains most Transparency Center ads for about 12 months.
Found a bug or need a field we don't expose yet? Open an issue on the actor's Issues tab — custom tweaks are welcome.