Google Ads Transparency Scraper — Competitor Ads & Creatives avatar

Google Ads Transparency Scraper — Competitor Ads & Creatives

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Google Ads Transparency Scraper — Competitor Ads & Creatives

Google Ads Transparency Scraper — Competitor Ads & Creatives

Scrape the Google Ads Transparency Center: every ad an advertiser, domain, or keyword is running across Search, Shopping, Display & YouTube. Filter by region, date & format. Streams results live (no waiting for the end). Clean JSON/CSV, company-level only.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

mochi

mochi

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

6

Monthly active users

3 days ago

Last modified

Share

Google Ads Transparency Scraper — Competitor Ad Library & Ad Intelligence API

See every ad your competitors are running on Google. Pull any advertiser's live ads from the Google Ads Transparency Center into clean, structured JSON/CSV — searchable by advertiser, domain, or keyword, filterable by region, date, and ad format. Built for competitor ad research, google ads spy, ad library scraping, ad transparency monitoring, and competitor ad intelligence across Google Search, Shopping, Display & YouTube.

Streams results live — ads land in your dataset as they're found, page by page; you never wait until the end of a run, and an interrupted run keeps everything collected so far. Reliable completion with automatic retries and residential-IP rotation, so long advertiser runs (hundreds of pages) finish cleanly.

Who it's for

  • Marketers / agencies — spy on competitor ad creatives and messaging before a launch.
  • Growth / performance teams — monitor a rival's active ads and creative-refresh cadence over time.
  • Analysts / researchers — build a structured ad-intelligence dataset for BI or an LLM pipeline.

What you get per ad

FieldDescription
advertiserNameThe advertiser (company / organisation)
advertiserDomainThe advertiser's verified domain, e.g. shopify.com (domain-mode searches; null otherwise)
advertiserIdStable Google advertiser ID (AR...)
creativeIdUnique creative ID (CR...)
adFormattext, image, or video
variantCountRelative breadth signal — how many served variants/placements Google reports for this creative. Use it to rank which creatives an advertiser is running hardest. (A breadth proxy, not impressions or spend — the public Center exposes neither.)
firstShown / lastShownWhen the ad's active window starts / ends (ISO 8601 UTC)
firstShownTs / lastShownTsThe same timestamps as unix seconds — a stable numeric key for sorting / de-duping across runs
previewUrlDirect URL to the rendered creative (interactive / JS formats)
imageUrlDirect image URL for image creatives (extracted from the ad markup); null for text / video
adLibraryUrlDeep link back to the ad on Google's Transparency Center
regionRegion the results were scoped to
advertiserCountryAdvertiser's country (ISO-2), when resolved via keyword mode; null otherwise
advertiserAdCountGoogle's total ad count for that advertiser, when resolved via keyword mode; null otherwise
matchedQuery / searchModeThe query and mode that produced the row

All data is company / advertiser-level only — no personal data (PDPA / GDPR-friendly by design).

Each run also writes a RUN_SUMMARY to the key-value store — adsReturned, resultCapReached (true = more ads exist; raise maxResults), complete (a clean, exhaustive run), plus the filters used — so you always know whether a result set is complete or capped, never a silent partial.

Three ways to search (set searchMode)

  1. domain (default) — free-text / brand-domain search. Best for a brand or site, e.g. ["nike.com", "shopify.com"].
  2. keyword — give a keyword; the actor resolves the matching advertisers (and domains) and pulls their ads, e.g. ["running shoes"]. Tune breadth with maxAdvertisersPerKeyword.
  3. advertiser — give exact advertiser IDs (AR...) to get every ad for that advertiser, e.g. ["AR16735076323512287233"].

Filters

  • region — country name or code (US, United Kingdom, DE, …) or anywhere for global. Unknown values safely fall back to global (never a wrong-country result).
  • dateFrom / dateToYYYY-MM-DD; keeps ads whose active window overlaps your range.
  • adFormats — any of text, image, video.
  • maxResults — cap total creatives (0 = unlimited).

Example 1 — a competitor's image & video ads in the US

Input:

{
"searchMode": "domain",
"queries": ["nike.com"],
"region": "US",
"dateFrom": "2025-01-01",
"adFormats": ["image", "video"],
"maxResults": 1000
}

Output (one record):

{
"advertiserName": "Nike, Inc.",
"advertiserDomain": "nike.com",
"advertiserId": "AR16735076323512287233",
"creativeId": "CR03002423070389436417",
"adFormat": "image",
"variantCount": 466,
"firstShown": "2021-10-26T07:00:00.000Z",
"lastShown": "2026-05-24T23:54:27.000Z",
"firstShownTs": 1635231600,
"lastShownTs": 1779663267,
"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?...",
"imageUrl": "https://s0.2mdn.net/9309096/…_300x250_EN.jpg",
"adLibraryUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR03002423070389436417",
"region": "US",
"advertiserCountry": null,
"advertiserAdCount": null,
"matchedQuery": "nike.com",
"searchMode": "domain"
}

Example 2 — every advertiser bidding on a keyword

Input:

{
"searchMode": "keyword",
"queries": ["running shoes"],
"maxAdvertisersPerKeyword": 5,
"region": "anywhere",
"maxResults": 500
}

Returns the top advertisers Google associates with "running shoes", then every ad each one is running — one flat row per creative, ready to pivot by advertiserName and adFormat.

Example 3 — an advertiser's full ad history by ID

Input:

{
"searchMode": "advertiser",
"queries": ["AR16735076323512287233"],
"region": "anywhere",
"maxResults": 0
}

Pulls every creative Google currently surfaces for that advertiser (maxResults: 0 = no cap) — the exhaustive option when you already know the advertiser and want their complete live library.

Why this actor

  • All three search angles — advertiser, domain, and keyword in one actor.
  • Incremental streaming — see results immediately; no "0 results until it finishes".
  • Reliable at scale — automatic retries with backoff and residential proxy IP rotation, so long advertiser runs (hundreds of pages) finish cleanly.
  • Clean, consistent schema — every row has the same flat fields, ready for CRM, BI, or LLM pipelines (JSON, CSV, Excel).
  • Company-level only — safe to use, no personal data.

Pricing

Pay per result (per ad creative returned). No subscription — you only pay for the data you pull.

Notes & limits

  • Only ads currently surfaced by Google's public Ads Transparency Center are returned (Google shows ads active within roughly the last year for most regions; political/election ads have longer retention).
  • keyword mode depends on Google's own advertiser/domain suggestions for that keyword; very generic terms may resolve to fewer advertisers — for exhaustive coverage of a known brand, use domain or advertiser mode.
  • Reads only public, advertiser-level transparency data; use responsibly and in line with Google's terms.