Google Ads Transparency Center Scraper avatar

Google Ads Transparency Center Scraper

Pricing

from $1.14 / 1,000 ad creative records

Go to Apify Store
Google Ads Transparency Center Scraper

Google Ads Transparency Center Scraper

Scraper for public Google Ads Transparency Center creatives by domain or advertiser, with a detail lookup mode. No API key or login.

Pricing

from $1.14 / 1,000 ad creative records

Rating

0.0

(0)

Developer

Leonardo Santos

Leonardo Santos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Search Google's public Ads Transparency Center by advertiser domain, company name, or AR advertiser id. Each ad becomes a typed row with advertiser and creative ids, preview URL, format, first/last shown dates, region and a stable detail URL. Detail mode resolves one AR/CR creative URL and counts its variants. No Google API key or login is required.

Why this actor?

  • Direct public-data transport — calls the same JSON RPC surface as the Transparency Center instead of running a browser.
  • Two useful modes — discover creatives with search, then resolve one creative with detail.
  • Typed, null-safe rows — optional fields are explicit null; IDs and dates are normalized for data pipelines and agents.
  • Bounded billingmaxResults is enforced locally. Every successful row is pushed before its event is charged; errors and empty searches are free.

Input

{
"mode": "search",
"query": "nike.com",
"region": "US",
"maxResults": 20
}

query accepts a domain, advertiser name, or AR… id. In detail mode, pass creativeUrl containing both the AR… advertiser id and CR… creative id. Supported region presets are US, GB, CA, AU, DE, FR, BR, IN and JP; anywhere removes the region filter. The hard result cap is 100 rows.

Output

One row per public ad creative:

{
"recordType": "ad",
"mode": "search",
"query": "nike.com",
"advertiser_id": "AR16735076323512287233",
"advertiser_name": "Nike, Inc.",
"advertiser_domain": "nike.com",
"creative_id": "CR09057905879155736577",
"format": "image",
"preview_url": "https://tpc.googlesyndication.com/archive/simgad/…",
"preview_width": 348,
"preview_height": 282,
"first_shown": "2023-11-17T…Z",
"last_shown": "2026-09-07T…Z",
"advertiser_total_ads_min": 100000,
"advertiser_total_ads_max": 200000,
"variation_count": null,
"region": "US",
"detail_url": "https://adstransparency.google.com/advertiser/AR…/creative/CR…?region=US",
"error": null,
"scraped_at": "2026-09-07T…Z"
}

Detail rows populate variation_count; fields Google does not return on that RPC remain explicit null.

FieldMeaning
recordTypead on successful rows; null on free error rows.
modeRequested search or detail mode.
querySearch query, or the detail URL in detail mode.
advertiser_idGoogle's public AR… advertiser identifier.
advertiser_namePublic advertiser name returned by Google.
advertiser_domainNormalized advertiser domain when available.
creative_idGoogle's public CR… creative identifier.
formatimage, text, video, or unknown.
preview_urlPublic creative preview or media URL.
preview_widthPreview width in pixels when supplied upstream.
preview_heightPreview height in pixels when supplied upstream.
first_shownEarliest public display timestamp when available.
last_shownLatest public display timestamp when available.
advertiser_total_ads_minLower bound of Google's advertiser-result estimate.
advertiser_total_ads_maxUpper bound of Google's advertiser-result estimate.
variation_countNumber of creative variants in detail mode.
regionRequested region code or anywhere.
detail_urlStable Transparency Center URL for the creative.
errorFree per-run error message; null on successful rows.
scraped_atISO 8601 time when the row was assembled.

Pricing

Pricing

Pay per event, and the platform usage is on us — the price you see is the price you pay, with no compute bill on top.

EventPriceWhat one charge buys
Ad creative record$0.00175Charged once per delivered public ad creative row. Rows are pushed before charging. Missing or invalid input, no-match searches, unsupported regions, upstream blocks, 5xx responses and timeouts are free error items and never charged.
Actor Start$0.002One run, whatever it returns.

Higher Apify subscription tiers pay less on every event (Silver −20%, Gold −35%).

Use cases

  • Monitor when a competitor launches or retires creative variants.
  • Build an image/text creative swipe file with stable advertiser and creative IDs.
  • Compare ad formats and activity dates across regions.
  • Feed normalized public-ad metadata into an LLM, MCP tool or warehouse.

FAQ

Does this use the Google Ads API? No. It reads the public Ads Transparency Center. No Google account, API key, or advertiser access is used.

What happens when no ads match? The actor delivers one free error row. A missing field, malformed creative URL, unsupported region, upstream block, server error or timeout is also free and never charged.

Does it download media or scrape personal data? No. It returns public advertiser and creative metadata plus preview links; it does not download ad media, collect contacts, log in, or access private campaign performance.


Independent tool; not affiliated with, endorsed by, or sponsored by Google LLC.