Google Ads Transparency Center Scraper
Pricing
from $2.00 / 1,000 ad scrapeds
Google Ads Transparency Center Scraper
Scrape the Google Ads Transparency Center by advertiser or domain. Extract ad creatives, formats (text/image/video), platforms, regions and run dates as JSON/CSV. Built for competitor ad research, PPC agencies and media buyers. No login, pay per result, one-click or API.
Pricing
from $2.00 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer
Gal Gilboa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
Google Ads Transparency Center Scraper — Competitor Google Ads, Creatives & Run Dates
Extract structured data from Google's Ads Transparency Center (adstransparency.google.com): every ad an advertiser runs across Google Search, YouTube, Display, Shopping and Maps — ad format, creative preview URLs, decoded text-ad copy (headline, description, destination URL), first/last shown dates and regions. No login, no API key, public transparency data only.
Built for media buyers, PPC agencies and competitor-intel teams: see which Google ads your competitors run, which creatives they keep alive (the winners), and when new campaigns launch — on a schedule, in bulk.
Why this Actor?
- API-level reliability — talks directly to the Transparency Center's own JSON endpoints instead of driving a browser against a JavaScript shell. No brittle CSS selectors, no half-loaded pages, no missing ads.
- Bulk advertiser lists — monitor 1 or 100 competitors in a single run: mix domains (
nike.com), advertiser IDs (AR…) and company names freely. - Text ads decoded — Google hides search-ad copy inside encoded preview URLs; this Actor decodes it into clean
headline/description/destinationUrlfields. - Date intelligence — first/last shown timestamps per creative, so you can spot long-running (i.e. profitable) ads and diff new launches between scheduled runs.
- Fast & cheap — plain HTTP, 256 MB memory, no browser. Hundreds of ads per minute.
What data does it return?
One dataset item per ad:
- Advertiser name + Google advertiser ID (
AR…) - Creative ID (
CR…) + permanent Transparency Center URL - Ad format:
text,imageorvideo - Creative preview URLs (image file, video preview, rendered-ad iframe)
- Decoded text-ad copy: headline, description, destination URL
- First shown / last shown dates (ISO timestamps)
- Regions (best-effort, plus your region filter)
- Which query found the ad + scrape timestamp
Sample output
{"type": "ad","advertiserId": "AR14188379519798214657","advertiserName": "Nike, Inc.","creativeId": "CR10813648716908961793","format": "text","headline": "Shop the New Air Max Collection","description": "Free shipping and returns on every order. Find your perfect fit today.","destinationUrl": "nike.com/airmax","previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?...","previewUrls": ["https://displayads-formats.googleusercontent.com/ads/preview/content.js?..."],"imageUrl": null,"videoUrl": null,"firstShownAt": "2025-01-01T00:00:00.000Z","lastShownAt": "2026-01-01T00:00:00.000Z","regions": ["GB", "US"],"detailsUrl": "https://adstransparency.google.com/advertiser/AR14188379519798214657/creative/CR10813648716908961793?region=anywhere","query": "domain nike.com","scrapedAt": "2026-07-12T12:00:00.000Z"}
Fields Google doesn't expose for a given ad come back as null / [] — the Actor never fails a run over a missing field.
How to use it
| Input | What it does |
|---|---|
queries | Bulk list of advertisers — domains (nike.com), advertiser IDs (AR…, most reliable), Transparency Center URLs, or company names |
region | Two-letter country filter (US, GB, IL, …) or anywhere (default). Google enforces this loosely for some advertisers — treat as a hint |
maxAdsPerQuery | Cap per advertiser query (default 100) |
fetchAdDetails | Per-creative lookup for preview URLs, decoded copy, dates and regions (default on) |
proxyConfiguration | Apify RESIDENTIAL proxy recommended for scheduled runs |
Tip: the advertiser ID is the AR… segment in any adstransparency.google.com URL — grab it once and your scheduled monitoring never depends on name/domain matching.
Use cases
- Competitor ad monitoring — schedule a weekly run over your competitor list; diff creative IDs to catch new campaigns and retired ads automatically.
- Winning-ad detection — sort by
firstShownAt: ads that stay live for months are paying for themselves. - Search-ad copy research — decoded headlines/descriptions for every text ad in your category, ready for a swipe file.
- Creative swipe file — image/video preview URLs for competitor display and YouTube ads.
- Agency reporting — attach a client-vs-competitor Google Ads snapshot to monthly reports via the API.
Pricing (pay per event)
| Event | Price | Meaning |
|---|---|---|
ad-scraped | $0.002 | One ad record in the dataset |
Example: monitoring 20 competitors × 100 ads each = 2,000 ads = $4.00 per run. The Actor respects your maximum cost per run and stops cleanly when the limit is reached.
Fair use & limitations
- Only public Ads Transparency Center data is accessed — the same ad-transparency information Google shows any visitor, published by Google specifically for public scrutiny. No login, no personal data.
- Political ads carry extra fields in Google's UI (spend, impressions) that are not extracted in v1.
- Google's region filter is enforced loosely server-side for some advertisers; the
regionsoutput field is best-effort. - Video ads return Google's preview URL; final
googlevideo.comfile URLs are short-lived by design.
Integrations
Standard Apify platform features apply: export to JSON/CSV/Excel, API access, webhooks, and scheduled runs for continuous competitor monitoring.
Development
npm installnpm test # parses the saved RPC fixtures, 61 assertionsapify run # local run (uses ./storage)