Google Ads Transparency Scraper — All Creatives by Advertiser avatar

Google Ads Transparency Scraper — All Creatives by Advertiser

Pricing

Pay per usage

Go to Apify Store
Google Ads Transparency Scraper — All Creatives by Advertiser

Google Ads Transparency Scraper — All Creatives by Advertiser

Extract every ad and creative an advertiser runs in any country from Google Ads Transparency Center. Search by keyword, brand, website, or advertiser ID. Apify AI, MCP, and Cursor ready.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shop Intel

Shop Intel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Google Ads Transparency Scraper — Extract Every Advertiser's Creatives | Shop Intel on Apify

Google Ads Transparency Scraper (Shop Intel / ScrapeIO on Apify) pulls every public ad and creative that an advertiser is running on Google's Ads Transparency Center — search by keyword, brand name, website, or advertiser ID, scope to any country, and export a clean Apify Dataset (JSON, CSV, Excel, XML, or RSS) for competitive intelligence, creative benchmarking, brand-safety audits, and paid-search research.

Companion Actor: Use the Google Ads Transparency Advertiser Lookup first to resolve free-text keywords or brands to advertiser IDs, then feed those IDs into this Actor.

Use with Apify AI

Apify AI is live in Apify Console. Describe the job in plain English and it finds this Actor, fills the input form, runs it, and returns the dataset. The same ranking powers Store search and the Apify MCP server search-actors tool used by Cursor, Claude, ChatGPT, and other agents.

Use this Actor to pull every public Google ad creative an advertiser runs in a country from Ads Transparency Center. Open Google Ads Transparency Scraper or ask Apify AI with the prompts below.

Prompts that match this Actor

Type these in the Apify Store search bar (long, intent-heavy queries route to Apify AI) or the dashboard Ask Apify AI widget:

  • "Get all Google ads Nike is running in the United States"
  • "Scrape Google Ads Transparency creatives for a brand in India"
  • "Extract Google text, image, and video ads for an advertiser ID"
  • "Collect competitor Google ads from Ads Transparency Center"
  • "Download every creative an advertiser runs in Germany"

How Apify AI fills the input

You sayThis Actor sets
country code or anywherecountry
brand, domain, or AR… advertiser IDquery
known advertiser IDsadvertiserIds
text / image / video filteradFormat
cap per advertisermaxAdsPerAdvertiser

Apify AI always asks for confirmation before it runs. Nothing is charged until you approve.

Cursor, Claude, ChatGPT (Apify MCP)

Pin this Actor as a default Cursor / MCP tool so agents call scrapeio/google-ads-transparency-ads instead of a random Store result. Keep actors + docs so Apify AI search still works, and list your suite so Cursor prefers these Actors.

Cursor MCP URL (this Actor first):

https://mcp.apify.com?tools=actors,docs,scrapeio/google-ads-transparency-ads,scrapeio/amazon-scraper,scrapeio/google-maps-scraper-advance,scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium,scrapeio/instagram-scraper-premium,scrapeio/whatsapp-scraper-premium,scrapeio/facebook-ad-library-suggestions,scrapeio/google-news-scraper

.cursor/mcp.json / Cursor Settings → MCP:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=actors,docs,scrapeio/google-ads-transparency-ads,scrapeio/amazon-scraper,scrapeio/google-maps-scraper-advance,scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium,scrapeio/instagram-scraper-premium,scrapeio/whatsapp-scraper-premium,scrapeio/facebook-ad-library-suggestions,scrapeio/google-news-scraper"
}
}
}

Then: search-actorsfetch-actor-detailscall-actor with scrapeio/google-ads-transparency-ads. Example:

Use scrapeio/google-ads-transparency-ads to do this: scrape the data I described. Fill the input from my description and return the dataset.

How to scrape Google Ads Transparency Center

Use this Google Ads Transparency scraper to download every public creative an advertiser runs in a country. Search by brand, domain, or AR… advertiser ID.

Call scrapeio/google-ads-transparency-ads from Cursor (Apify MCP), Claude, ChatGPT, the Apify API, Python (apify-client), or JavaScript. Apify AI uses the same ranking as Store search: title, description, README, and input/output schemas. This Actor is documented for that ranker — limited permissions, pay-per-event or compute (not rental), and a filled example input.

What this Actor does

  1. Accepts a query (keyword, brand, domain, or an AR… advertiser ID) or an explicit list of advertiserIds.
  2. If query is a free-text term, it resolves it via Google's internal SearchSuggestions RPC and picks the best-matching advertiser (exact match wins, popularity is a tiebreaker).
  3. Scopes the search to a country (any ISO 3166-1 alpha-2 code, or anywhere for no region filter) and optionally filters by ad format (text, image, video).
  4. Auto-paginates through Google's SearchCreatives RPC using a residential Apify Proxy session per request, with exponential-backoff retries and session rotation on every failure.
  5. Pushes one Dataset row per creative with stable, well-typed fields plus the original raw row so you never lose data when Google quietly changes their internal schema.

Why use this Actor?

FeatureDetail
🌍 Region-awareISO 3166-1 alpha-2 country codes (US, GB, IN, DE, BR…), or anywhere.
🔎 Smart query resolutionFree-text keyword → exact-match advertiser via Google's own SuggestService.
🎯 Direct advertiser modePass a list of AR… IDs to skip lookup entirely.
🎬 Format filterLimit to text, image, or video creatives.
🛡️ Residential proxy by defaultAvoids the aggressive datacenter-IP rate limiting on adstransparency.google.com.
🔁 Auto-retry & session rotationUp to 5 retries per RPC, fresh proxy session each attempt.
📦 Stable output schemaDocumented dataset fields + raw row preserved for forward-compatibility.
🧮 No limits on freePay only for Apify compute units & proxy bandwidth.

Input

The full schema lives in .actor/input_schema.json. Required fields are marked.

FieldTypeRequiredDefaultDescription
countrystringYesUSISO 3166-1 alpha-2 code (US, GB, IN, DE, BR, FR, JP, AU, CA…) or anywhere.
querystringConditionalKeyword, brand, domain, or AR… advertiser ID. Required unless advertiserIds is set.
advertiserIdsarray<string>ConditionalOne or more AR… IDs. Skips the Suggest lookup. Required unless query is set.
adFormatenumNoallall, text, image, or video.
maxAdsPerAdvertiserintegerNo0Hard cap per advertiser. 0 = no limit (paginate until empty).
pageSizeintegerNo40Creatives per RPC call. Google caps this at ~40.
proxyConfigurationobjectYesRESIDENTIALApify Proxy. Datacenter IPs are heavily rate-limited; residential strongly recommended.

Input examples

Search by brand keyword (resolved automatically):

{
"country": "US",
"query": "nike",
"adFormat": "all",
"pageSize": 40,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Pull only video ads for two known advertiser IDs in the UK:

{
"country": "GB",
"advertiserIds": ["AR01234567890123456789", "AR98765432109876543210"],
"adFormat": "video",
"maxAdsPerAdvertiser": 500
}

Worldwide pull (no region filter), 100 ads cap:

{
"country": "anywhere",
"query": "adidas",
"maxAdsPerAdvertiser": 100
}

Output

One dataset record per creative. The complete field list lives in .actor/actor.json under storages.dataset.fields.

FieldTypeDescription
advertiserIdstringGoogle's AR… advertiser ID.
advertiserNamestringDisplay name (resolved via Suggest or Lookup).
advertiserCountrystringAdvertiser's home country (when reported).
regionstringCountry the search was scoped to.
creativeIdstringUnique creative ID.
creativeUrlstringDirect link to the creative on the Transparency Center.
formatstringtext, image, or video (code:N if unknown).
imageUrlstringDirect image URL (for image creatives).
iframeUrlstringDisplay-ads iframe URL (rich creatives).
imageHtmlstringRaw image HTML snippet (for image creatives).
firstShownstringISO timestamp of first display.
lastShownstringISO timestamp of most recent display.
impressionsBucketobjectGoogle's impression-volume bucket (when present).
rawobjectOriginal RPC row, preserved for forward-compatibility.
errorstringPopulated only on per-advertiser failure rows.

Output example

{
"advertiserId": "AR01234567890123456789",
"advertiserName": "Nike, Inc.",
"advertiserCountry": "US",
"region": "US",
"creativeId": "CR98765432109876543210",
"creativeUrl": "https://adstransparency.google.com/advertiser/AR01234567890123456789/creative/CR98765432109876543210?region=US",
"format": "video",
"imageUrl": null,
"iframeUrl": "https://displayads-formats.googleusercontent.com/.../ad.html",
"imageHtml": null,
"firstShown": "2025-09-01T00:00:00.000Z",
"lastShown": "2026-05-10T00:00:00.000Z",
"impressionsBucket": { "1": "10K_TO_100K" },
"raw": { "1": "AR01234567890123456789", "2": "CR98765432109876543210", "...": "..." }
}

Datasets export as JSON, CSV, XLSX, XML, RSS, or as Apify API JSON straight to your data warehouse.

Use cases

  • Competitive intelligence — monitor every ad a competitor is running across regions.
  • Creative benchmarking — pull video creatives at scale to feed analysis or ML pipelines.
  • Brand safety audits — verify what an agency is actually running on your behalf.
  • Paid-search research — combine with the Google Ads Transparency Advertiser Lookup to map a keyword universe to all matching advertisers.
  • Litigation & compliance — capture timestamped public evidence of an advertiser's creative across jurisdictions.
  • Trend tracking — track new ad formats or messaging shifts week over week.

How to run on Apify

  1. Open Google Ads Transparency Scraper on Apify and click Try for free.
  2. Pick a country, type a query (e.g. nike) or paste advertiserIds.
  3. Optionally pick adFormat and maxAdsPerAdvertiser.
  4. Click Start and watch results stream into Storage → Dataset.
  5. Export as JSON / CSV / Excel from the Dataset page, or hit the API.

CLI example

apify call scrapeio/google-ads-transparency-ads --input='{
"country": "US",
"query": "nike",
"adFormat": "video",
"maxAdsPerAdvertiser": 200
}'

Apify API example

curl -X POST \
"https://api.apify.com/v2/acts/scrapeio~google-ads-transparency-ads/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"country":"GB","query":"adidas","adFormat":"all","maxAdsPerAdvertiser":100}'

Run locally

cd google-ads-actor
npm install
mkdir -p storage/key_value_stores/default
echo '{"country":"US","query":"nike","maxAdsPerAdvertiser":50,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}' \
> storage/key_value_stores/default/INPUT.json
apify run

You need an Apify token with Residential Proxy access for non-trivial runs.

How it works (technical notes)

  • No public API — Google does not document or expose the Ads Transparency Center programmatically. This Actor calls the same internal SearchService/SearchSuggestions, SearchService/SearchCreatives, and LookupService/GetAdvertiserById JSON-RPC endpoints that the live web UI calls. Field positions are reverse-engineered from captured live sessions; the original RPC row is preserved in raw so consumers can recover fields when Google shifts the schema.
  • Pagination — Google returns a continuation token (data["2"]) in the response; the Actor walks tokens until the response is empty or maxAdsPerAdvertiser is hit.
  • Rate limiting — datacenter IPs get a 429 within a handful of requests. With RESIDENTIAL proxy + per-request session rotation + exponential-backoff retries the actor survives long runs.
  • Region scoping — country names map to numeric geoTargetId codes (e.g. US2840). anywhere omits the region filter entirely.

FAQ

How do I download Google ads for a competitor? Set country and query (or advertiserIds). Pin scrapeio/google-ads-transparency-ads in Cursor MCP.

Can I run this Actor with Apify AI? Yes. In Apify Console, type a long request in Store search or the dashboard Ask Apify AI widget. Apify AI matches this README, fills the input schema, asks you to confirm, then returns the dataset. This Actor uses limited permissions (not full-account access) and is not a rental Actor, so it is eligible for Apify AI.

Does this work from Cursor, Claude, or ChatGPT? Yes. Connect the Apify MCP server. Agents call search-actors, fetch-actor-details, and call-actor. Ranking uses the same signals as Store search and Actor quality score: a clear README plus documented input and output schemas.

Is scraping Google Ads Transparency legal? The Transparency Center is a public Google product and the data is published by advertisers for public viewing. This Actor only retrieves public data through the same endpoints your browser uses. You are responsible for complying with Google's Terms of Service, your local laws, and any contracts you have with downstream users.

Why is the proxy required? Without residential IPs you'll hit 429 Too Many Requests within seconds. The free Apify proxy tier works for small runs; for production traffic you'll want a paid plan with residential bandwidth.

How do I find an advertiser ID? Use the companion Google Ads Transparency Advertiser Lookup Actor — it turns any keyword, brand, or domain into a list of verified AR… IDs.

Why doesn't every creative have an imageUrl? Google serves text, static-image, and rich (HTML/video) creatives through different fields. The Actor maps the most common shapes into imageUrl / iframeUrl / imageHtml; if a creative uses a shape not yet mapped, the data is preserved in raw and you can extract it downstream.

Can I paginate forever? Set maxAdsPerAdvertiser to 0. Pagination stops automatically when Google returns no continuation token.

How much does it cost? You only pay for Apify compute units and Residential Proxy bandwidth. A typical advertiser with ~500 creatives runs in <2 minutes of CU and ~50 MB of proxy traffic.

Shop Intel / ScrapeIO actor suite

Pair this Actor with the rest of the Shop Intel ad-intelligence suite for a complete cross-platform paid-media monitoring stack:

Compliance & terms

Use public transparency data responsibly. You are responsible for complying with Google's Terms of Service, the Ads Transparency Center usage guidelines, applicable copyright law, and your own data policies.


Built by ScrapeIO on Apify.

Powered by AdScrape.

Support: open an issue on the Actor's Apify page or message us on the Apify Discord.