Google Ads Transparency Scraper
Pricing
from $1.50 / 1,000 ad creative scrapeds
Google Ads Transparency Scraper
Scrape Google Ads Transparency Center ads by advertiser name, domain or ID: creatives, ad text, image/video URLs, first/last shown, regions, impressions, topic. No login.
Pricing
from $1.50 / 1,000 ad creative scrapeds
Rating
0.0
(0)
Developer
Romas Jurevicius
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Google Ads Transparency Scraper
Google Ads Transparency Scraper exports ads from the Google Ads Transparency Center as clean JSON. Give it an advertiser name, a website domain or an advertiser ID (AR...) and it returns one record per ad creative: the advertiser and whether Google verified its identity, the ad format (text, image, video), the preview, image and YouTube URLs, the ad text where Google renders it, the landing domain, first and last shown dates, every region the ad ran in, impression ranges where Google publishes them, the topic Google labelled the ad with, and a link back to the ad's Transparency Center page. No Google account, cookie or API key is needed.
Typical uses: competitor ad research (what is Walmart, Nike or your rival running on Search, Shopping and YouTube right now), creative inspiration libraries, monitoring brand impersonation (who else points ads at your domain), agency reporting, ad-spend estimation from impression ranges in the EU, and feeding AI agents that analyze ad copy.
How to scrape the Google Ads Transparency Center
- Open the Actor in Apify Console and click Try for free.
- Add Advertisers, one per line. Each entry can be:
- a website domain such as
walmart.com(or a full URL) - every ad that lands on that site, from all advertiser accounts. This is the most complete option for big brands, which often run several accounts. - an advertiser ID such as
AR07091023166411112449, or anadstransparency.google.com/advertiser/...URL. - an advertiser name such as
Walmart Inc.- matched against the Center's own advertiser search; all accounts with exactly that name are included.
- a website domain such as
- Pick Regions (ISO codes, default
US;anywherefor no filter), optionally Shown from / until dates and an Ad format. - Set Max creatives per advertiser (default 20) and turn on Include creative details for regions, impressions, topic and ad text (off by default for speed).
- Click Start. Results land in the Output tab and can be downloaded as JSON, CSV or Excel or read through the API.
How it works
The Actor talks to the same JSON endpoints the Transparency Center web app uses, over plain HTTPS (no headless browser, so runs are fast and cheap): SearchService/SearchSuggestions to match advertiser names, LookupService/GetAdvertiserById for verification status and country, SearchService/SearchCreatives for the paginated ad list (up to 100 per page, filtered by region, date range and format), and LookupService/GetCreativeById for the per-creative detail page. Ad text, product images and YouTube IDs are read from Google's own ad preview script. Requests go through Apify Proxy with a concurrency cap and retries on rate limits.
Google Ads Transparency Scraper pricing
Pay per event, no subscription:
- Ad creative scraped: $0.002 per creative ($2 per 1,000 ads), with or without creative details.
- Advertiser lookup: $0.001 per Advertisers entry that resolved to an advertiser or a domain search.
- Actor start: Apify's small synthetic start fee.
Entries that match nothing produce a free not_found record. The default run (one domain, 20 ads) costs about $0.04; 1,000 ads cost about $2. Set Maximum cost per run to cap spending; the Actor stops cleanly at the limit and keeps everything scraped so far.
Input example
{"advertisers": ["walmart.com", "AR07828854790737100801", "Nike, Inc."],"regions": ["US", "GB"],"dateFrom": "2026-09-01","dateTo": "2026-10-12","format": "all","maxCreativesPerAdvertiser": 200,"includeCreativeDetails": true,"proxyConfiguration": { "useApifyProxy": true }}
| Field | Type | Default | Description |
|---|---|---|---|
advertisers | array of strings | ["walmart.com"] | Domains, advertiser IDs, Transparency Center URLs or advertiser names. |
regions | array of ISO codes | ["US"] | Ads shown in any of these countries; anywhere disables the filter. |
dateFrom / dateTo | YYYY-MM-DD | none | Ads shown at some point in this window (inclusive). |
format | all / text / image / video | all | Google's format classification. |
maxCreativesPerAdvertiser | integer | 20 | Cap per Advertisers entry (max 10,000). Most recently shown ads come first. |
includeCreativeDetails | boolean | false | Regions, per-region dates and impressions, topic, audience flags, ad text, video ID. |
proxyConfiguration | object | Apify Proxy | Standard Apify proxy settings. |
Output example
One record per creative (captured 2026-10-12, trimmed):
{"recordType": "creative","query": "AR07828854790737100801","queryType": "advertiserId","advertiserId": "AR07828854790737100801","advertiserName": "Eastern RED Tech Limited","advertiserVerified": true,"advertiserCountry": "HK","creativeId": "CR05831720218145062913","format": "text","previewUrl": null,"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/9066546823614426027","html5Url": "https://tpc.googlesyndication.com/archive/sadbundle/$csp%3Darchive$/10475215587204032752/index.html","videoUrl": null,"adText": null,"landingDomain": null,"firstShown": "2025-01-22T11:21:12.487Z","lastShown": "2026-10-12T07:33:51.268Z","daysShown": 610,"searchedRegions": [],"regions": [{ "region": "FR", "criterionId": 2250, "firstShown": "2025-03-17", "lastShown": "2026-03-05","impressionsMin": 0, "impressionsMax": 1000,"impressionsByPlatform": [{ "platform": "Google Search", "impressionsMin": 0, "impressionsMax": 1000 }] }],"regionCount": 75,"impressionsMin": 600000,"impressionsMax": 700000,"impressionsSince": "2025-03-01","topic": "Internet & Telecom","audienceSelection": { "demographics": { "included": true, "excluded": true }, "geographicLocations": { "included": true, "excluded": true }, "contextualSignals": { "included": true, "excluded": true } },"variationCount": 1,"detailsFetched": true,"transparencyUrl": "https://adstransparency.google.com/advertiser/AR07828854790737100801/creative/CR05831720218145062913?region=anywhere","scrapedAt": "2026-10-12T08:49:15.389Z"}
Field notes:
adTextcomes from Google's ad preview: Search ads give advertiser, headline and description lines, Shopping ads the product title and merchant, Maps ads the business lines. Many Search ads are archived only as a screenshot (imageUrlontpc.googlesyndication.com/archive/simgad/...); those have no machine-readable text andadTextisnull.landingDomainis exact for domain searches; for ID and name searches it is the display domain read from the preview, when there is one.- Impressions and topic are only published by Google for some regions, mainly EU/EEA countries (Digital Services Act) and political ads. US commercial ads show region and last-shown date only. Ranges are Google's buckets (
0 - 1K,10K - 15K, ...). daysShownis the Center's per-creative day counter as returned by its listing endpoint.audienceSelectionmirrors the Center's "Audience selection" panel: whether demographic, location and contextual criteria were included and/or excluded.- Per-advertiser summaries (resolved accounts, verification, approximate total ads) are saved in the
ADVERTISERSkey-value record. Entries that matched nothing, matched no ads or failed are also pushed to the dataset as freerecordType: "advertiser"records with astatusand amessage.
Integrations
- API: run with the Apify API or the JavaScript/Python clients;
run-sync-get-dataset-itemsreturns the ads in one call. - MCP / AI agents: available through the Apify MCP server at
https://mcp.apify.com, so Claude, ChatGPT, Cursor or any MCP client can call it with the same input. - n8n, Make, Zapier: use the Apify node, pass the input JSON and map the dataset items.
- Schedules and webhooks: run weekly per competitor and push new creatives to Slack, Google Sheets or a database.
Limitations
- Only data the Transparency Center shows publicly is returned. Spend, clicks, targeting details and exact impressions are not published by Google.
- Advertiser-name matching uses Google's suggestion list (top 10). Brands with many similarly named accounts are best searched by domain or ID.
- The date filter selects ads shown at some point in the window;
firstShown/lastShownremain the ad's overall dates. - Policy-removal notices are not mapped to fields yet.
- The endpoints are internal to Google's web app and can change without notice; the Actor is tested against captured responses and reports failures as
errorrecords instead of returning bad data.
Google Ads Transparency Scraper FAQ
Do I need a Google account or API key?
No. The Transparency Center is public and the Actor uses only its unauthenticated endpoints.
Why is adText empty for some ads?
Google archives many Search text ads as screenshots. The image URL is returned, but there is no text to read without OCR. Shopping, Maps, video and many Search ads have a rendered preview and do return text.
How do I get every ad for a brand?
Search by domain (nike.com). It covers every advertiser account whose ads land on that site, including resellers and agencies, and each record names the account that ran it.
Can I get impression numbers for US ads?
Not for commercial ads: Google only publishes impression ranges for EU/EEA regions and for political ads. Set regions to EU countries (DE, FR, IT) to see them.
How many ads can one run return?
Up to 10,000 per Advertisers entry. The default 20-ad run without details finishes in seconds; with creative details on, expect roughly two minutes per 50 ads.
Related actors
Same author, same pay-per-event model, no login:
- Telegram Channel Scraper - posts, views, media and links from public Telegram channels.
- Substack Scraper - posts, authors, likes and comments from Substack publications.
- Economic Calendar Scraper - macro events with actual, forecast and previous values.
- Prediction Market Odds Scraper - Polymarket and Kalshi odds, volume and orderbooks.
- Product Hunt Scraper - leaderboards, launches, votes and makers.
- Bilibili Scraper - Bilibili videos by keyword, BV id, uploader or trending list with views, likes, coins and danmaku.
Legal and compliance
This Actor only reads information Google publishes on the public Ads Transparency Center for transparency purposes; it does not log in, bypass access controls or collect personal data of end users. Ad creatives are the property of their advertisers, and the Center is subject to Google's Terms of Service. You are responsible for how you use the data, including copyright in ad creatives, data-protection law and any rules on redistribution. Read Apify's article on the legality of web scraping if unsure. This Actor is independent and not affiliated with or endorsed by Google.
Support
Missing a field, wrong parsing, or need political-ad or platform filters? Open an issue on the Actor's Issues tab with the input JSON and the creative ID; fixes usually ship within days.