Google Ads Transparency Center Scraper avatar

Google Ads Transparency Center Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Google Ads Transparency Center Scraper

Google Ads Transparency Center Scraper

Pull every ad an advertiser is running from Google's Ads Transparency Center by domain or advertiser ID. Returns each ad's preview, format, first/last shown dates, and optional per-country reach breakdown. Competitive ad intelligence with no login and no API key.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

See every ad a company is running on Google — Search, Display, and YouTube — straight from Google's own public Ads Transparency Center. Give the actor an advertiser's domain (like nike.com) or advertiser ID and it returns each ad's preview, format, and the dates it ran, plus an optional per-country reach breakdown.

It's a fast, no-cost way to watch a competitor's advertising: what they're promoting, where, and for how long. No account, no API key, no login.

Why use this actor

  • No account, no login, no API key — the data is Google's public transparency record.
  • Complete ad library per advertiser — every creative Google has on file for a domain or advertiser ID.
  • Ad previews — a direct preview link for every ad, plus all creative variants.
  • Run dates — when each ad was first and last shown.
  • Per-country reach (optional) — impression ranges per country, split by where the ad ran (Search, Display, YouTube).
  • Any market — pick the country you want to see ads for (US, GB, DE, JP, and more).
  • Clean, stable JSON ready for a spreadsheet, database, or competitive-intel pipeline. Export to JSON, CSV, or Excel, with automatic retries.

How it works

  1. You give it an advertiser domain (e.g. nike.com) or an advertiser ID, and a country.
  2. The actor looks up every ad that advertiser is running and pages through all of them.
  3. Optionally, it opens each ad for the full per-country reach breakdown and all variants.
  4. It returns one tidy record per ad.

You don't manage any scrapers, browsers, or blocks — just set the inputs and run.

Input

{
"domain": "nike.com",
"advertiserId": "",
"regionCode": "US",
"fetchDetail": true,
"maxCreatives": 100,
"maxConcurrency": 5
}
FieldTypeDescription
domainstringAdvertiser website domain to look up (e.g. nike.com). Use this or advertiserId.
advertiserIdstringA specific advertiser ID starting with AR (e.g. AR18378488041124659201). Use when you already know the exact advertiser; otherwise leave blank and search by domain.
regionCodestringCountry to see ads for, as a 2-letter code (US, GB, DE, JP, TH, …). Default US.
fetchDetailbooleanWhen on, enriches each ad with its per-country reach breakdown (impression ranges, surface split) and all creative variants. Slower — one extra lookup per ad. Default false.
maxCreativesintegerMaximum number of ads to return. Default 100.
maxConcurrencyintegerHow many detail lookups to run at once (only used when fetchDetail is on). Default 5.
proxyConfigurationobjectOptional. The country is chosen by regionCode, not by your IP, so a proxy is not required. Enable it only to spread request volume on large runs.

Output

One record per ad (creative). Real sample below — a Nike ad, with fetchDetail on, arrays truncated:

{
"_input": "nike.com",
"_source": "S1-search-detail",
"_scrapedAt": "2026-07-10T11:55:17Z",
"advertiserId": "AR18378488041124659201",
"creativeId": "CR17671898696104542209",
"advertiserName": "Nike Retail BV",
"domain": "nike.com",
"formatCode": 1,
"format": "TEXT",
"firstShownDate": "2025-10-22",
"lastShownDate": "2026-07-10",
"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&creativeId=779544926776&...",
"creativeUrl": "https://adstransparency.google.com/advertiser/AR18378488041124659201/creative/CR17671898696104542209",
"regions": [
{
"regionCode": 2380,
"impressionsMin": "100000",
"impressionsMax": "125000",
"firstShownDate": "2025-10-22",
"lastShownDate": "2026-07-10",
"surfaceSplit": [
{ "surfaceCode": 2, "surface": "SEARCH", "impressionsMin": null, "impressionsMax": "1000" },
{ "surfaceCode": 3, "surface": "DISPLAY", "impressionsMin": "100000", "impressionsMax": "125000" },
{ "surfaceCode": 4, "surface": "YOUTUBE", "impressionsMin": null, "impressionsMax": "1000" }
],
"raw": { "...": "raw numbered region object" }
},
{ "regionCode": 2724, "impressionsMin": "1000", "...": "1 more region" }
],
"variantPreviewUrls": [
"https://displayads-formats.googleusercontent.com/ads/preview/content.js?...&creativeId=779544926776&..."
],
"aggregate": { "2": "100000", "3": "125000", "...": "raw aggregate impressions" },
"raw": { "...": "raw numbered search object" },
"rawDetail": { "...": "raw numbered detail object" }
}
FieldTypeDescription
advertiserIdstringGoogle advertiser ID (starts with AR).
creativeIdstringUnique ad (creative) ID (starts with CR).
advertiserNamestringAdvertiser's verified legal name.
domainstringAdvertiser's website domain.
formatstringAd format: TEXT, IMAGE, or VIDEO.
formatCodeintegerRaw Google format code behind format.
firstShownDatestringDate the ad was first shown (YYYY-MM-DD).
lastShownDatestringDate the ad was last shown (YYYY-MM-DD).
previewUrlstringDirect link to Google's rendered preview of the ad.
creativeUrlstringHuman-readable Ads Transparency Center page for this ad.
regionsarray(fetchDetail only) Per-country reach: impression range, run dates, and a split by surface (Search / Display / YouTube).
variantPreviewUrlsarray(fetchDetail only) Preview links for every variant of the ad.
aggregateobject(fetchDetail only) Aggregate impression totals and date range across all countries.
rawobjectThe raw record for the ad, exactly as Google returned it (nothing dropped).
rawDetailobject(fetchDetail only) The raw detail record for the ad.

When fetchDetail is off, records carry only the fast search-level fields (through creativeUrl plus raw) and _source is S1-search.

About region codes

Reach in the regions array is reported using Google's internal country codes (e.g. 2840 = US, 2826 = GB, 2380 = Italy, 2724 = Spain). The code is the country's ISO numeric code plus 2000. You set the country you want with a simple 2-letter regionCode in the input.

Notes & limits

  • Domain or advertiser ID: give one or the other. A domain search returns every ad tied to that domain; an advertiser ID targets one specific advertiser.
  • Impression ranges, not exact counts: Google publishes reach as ranges (e.g. 100,000–125,000), not precise numbers. Values are passed through exactly as Google reports them; a sparsely-run ad may show null for one end of the range.
  • fetchDetail cost: turning it on adds one lookup per ad. For a quick inventory of what an advertiser is running, leave it off; turn it on when you need reach and variants.
  • Region is a parameter, not your location: you see a country's ads by setting regionCode, regardless of where the actor runs — no proxy needed.
  • Coverage: whatever Google publishes in its Ads Transparency Center. Advertisers with no verified ads return no records.

Other actors in this collection

ActorWhat it does
SEC Form D Funding TrackerUS private-placement funding rounds and the people behind them.
US Customs Bill-of-Lading (ImportYeti)US maritime import intelligence per company.
North Data CompaniesEuropean company registry and financial data.