Google Ads Transparency Center Scraper (Pay-Per-Event) avatar

Google Ads Transparency Center Scraper (Pay-Per-Event)

Pricing

Pay per event

Go to Apify Store
Google Ads Transparency Center Scraper (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

Arnas

Maintained by Community

Actor 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

  1. Open the actor and go to the Input tab.
  2. Add one or more advertisers — e.g. Nike, AR01614014350098432001, nike.com, or a full adstransparency.google.com/advertiser/... URL.
  3. (Optional) Set a region (e.g. US, GB, DE) or leave it as anywhere, choose an ad format, and set Max ads.
  4. (Optional) Enable Scrape ad details for per-region impression ranges and every creative variant.
  5. 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

FieldTypeDescription
advertisersarrayRequired. Brand names, advertiser IDs (AR…), domains, or Transparency Center URLs — mix freely.
regionstringISO-2 country code (US, GB, DE, …) or anywhere (default). Applied server-side.
formatstringall (default), text, image, or video.
advertiserMatchstringWhen a name/domain matches many advertisers: top (default), verified, exact, or all.
maxAdvertisersPerQueryintegerCap how many advertisers a name/domain fans out to (default 1).
maxAdsintegerTotal ads across the whole run (default 100).
maxAdsPerAdvertiserintegerCap per advertiser (default 1000).
scrapeAdDetailsbooleanFetch per-region impressions, dates, surfaces and all variants (default false).
runTagstringOptional label copied onto every row.
customMapFunctionstringOptional JS to transform each row before it's saved.
proxyConfigurationobjectProxy 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

FieldDescription
advertiserId, advertiserNameThe advertiser behind the ad.
advertiserCountry, advertiserVerifiedRegistered country and Google-verified badge (for name queries).
advertiserUrl, adUrlPublic Transparency Center links to the advertiser and the specific ad.
creativeIdGoogle's creative identifier.
format, formatCodeimage, video, text, or html5 (plus Google's raw shape code).
firstShown, lastShownISO timestamps of the first and most recent time the ad was seen.
imageUrl, previewUrl, previewHtml, width, heightThe ad's image asset, the interactive preview (content.js) URL, and dimensions.
imageUrls, previewUrls, variantsCountAll creative variants (detail mode).
regionsServedCount, surfacesHow many regions the ad ran in, and which Google surfaces (Search, YouTube, Display, Shopping, Maps, Play) — detail mode.
impressionsMin, impressionsMax, regionStatsDisclosed impression ranges and per-region breakdown — detail mode (EU/political ads only).
query, queryType, region, scrapedAt, runTagProvenance 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 maxAdvertisersPerQuery at 1 (default) for the single best match, use advertiserMatch: "verified" or "exact" to tighten it, or pin an exact AR… ID from the RESOLVED_ADVERTISERS audit 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.