Google Ads Transparency Center Scraper & API
Pricing
from $2.00 / 1,000 ad results
Google Ads Transparency Center Scraper & API
Scrape ads from the Google Ads Transparency Center by brand, domain or advertiser. Get creatives, dates, days active and per-country reach. No login.
Pricing
from $2.00 / 1,000 ad results
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Google Ads Transparency Center Scraper
Extract every ad a company runs through Google — Search, YouTube, Shopping, Maps and Play — straight from the Google Ads Transparency Center. Search by brand name, exact domain, or advertiser ID and get clean creative data: image/video previews, first- and last-shown dates, days active, advertiser identity, and per-region activity.
No login / no cookies — no Google account required.
Why this ad-transparency scraper?
| Typical scrapers | This actor |
|---|---|
| Need a logged-in session or cookies | No login, no cookies, no Google account |
| Return just creatives | Two modes: full ad creatives or one-row advertiser summaries (ad-check) |
| Single input type | Target by brand name, exact domain, advertiser ID, or pasted start URLs |
| Flat list of ads | Built-in monitor mode that returns only newly-launched ads on a schedule |
| Image-only data | Optional full creative detail — every A/B variation plus per-country reach |
| Vague filtering | Filter by platform, format, region, and date window |
Use cases
- Competitive ad intelligence — see exactly what creatives a competitor is running right now, on which Google surfaces, and how long each has been live via
shownForDays. - Ad-check & lead generation — feed a list of companies in
advertisersmode to find out which ones actively run Google Ads (and roughly how many), in one cheap pass. - Creative & messaging research — pull image and video ad previews at scale for swipe files, trend analysis, or model training.
- Geographic reach analysis — turn on full creative detail to map the full list of countries each ad ran in, each with its own last-shown date.
- Brand & compliance monitoring — track when an advertiser launches or retires ads in a given country.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Google Ads Transparency Center Scraper, fill in the inputs you need, and click Start.
- Watch results stream into the dataset table as each record is parsed.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
You can target ads four ways and mix them freely: free-text queries, exact domains, advertiserIds, or pasted startUrls.
{"queries": ["Nike"],"domains": ["hellofresh.com"],"resultType": "ads","region": "US","platforms": ["YOUTUBE", "SEARCH"],"adFormat": "VIDEO","startDate": "2026-01-01","endDate": "2026-06-01","maxAdsPerSearch": 200,"includeDetails": false,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
queries— free-text brand names (e.g.Nike) or bare domains (e.g.nike.com), resolved to matching advertisers/domains via the Transparency Center's autocomplete.domains— exact domains; returns every advertiser account whose ads point at that domain.advertiserIds— specific advertiser IDs that start withAR, found on an advertiser's Transparency Center page URL.startUrls— paste advertiser, creative, or domain-search URLs copied from the website; they are parsed automatically.resultType—ads(individual creatives, default) oradvertisers(one summary row per advertiser with approximate ad counts — ideal for ad-checks).region— two-letter ISO country code (e.g.US,GB,DE) orANYWHERE. Platform filters only apply to ads shown on/after 2023-09-04.platforms— any ofSEARCH,YOUTUBE,SHOPPING,MAPS,PLAY; leave empty for all.adFormat—ALL,TEXT,IMAGE, orVIDEO.startDate/endDate—YYYY-MM-DDdate window.maxAdsPerSearch(default 100) andmaxAdvertisersPerQuery(default 5) — cap collection per target and per brand-name query.includeDetails— fetch full creative detail (every variation plusregionsShown); slower and billed per ad. Tune parallelism withdetailConcurrency(default 6).
Output
In ads mode, each ad creative is one dataset item:
{"creativeId": "CR09405416287280037889","advertiserId": "AR16735076323512287233","advertiserName": "Nike, Inc.","domain": "nike.com","format": "IMAGE","firstShown": "2022-11-30T15:26:06.000Z","lastShown": "2026-06-10T00:00:00.000Z","shownForDays": 898,"previewType": "image","imageUrl": "https://tpc.googlesyndication.com/archive/simgad/15682570092434089175","previewUrl": null,"width": 380,"height": 467,"googleCreativeId": "761207694135","googleCustomerId": "1287649103","adGroupId": "181405790069","versionId": null,"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR09405416287280037889?region=US","region": "US"}
shownForDaysis a strong "this ad is working" longevity signal for competitive analysis.googleCreativeId/googleCustomerId/adGroupId/versionIdare stable internal IDs parsed from the preview (present for text/video/rich ads;nullfor plain image ads). UsegoogleCustomerIdto group ads from the same ad account, oradGroupIdto cluster ads from the same campaign.imageUrlis a direct CDN link for image ads; text, video and rich-media ads expose a Google-hostedpreviewUrlinstead of a raw asset URL.
With includeDetails on, each ad also carries every A/B variation and the full per-country reach:
{"variationCount": 2,"variations": [{ "type": "image", "imageUrl": "https://...", "width": 380, "height": 467, "googleCreativeId": "761207694135", "adGroupId": "181405790069" }],"regionsShown": [{ "region": "US", "lastShownDate": "2026-06-10" },{ "region": "CA", "lastShownDate": "2026-06-10" },{ "region": "PR", "lastShownDate": "2026-05-19" }]}
In advertisers (ad-check) mode, each row is an advertiser summary:
{"advertiserId": "AR16735076323512287233","name": "Nike, Inc.","countryCode": "US","approxAdCountLow": 10000,"approxAdCountHigh": 20000,"legalName": "Nike, Inc.","verified": true,"matchedQuery": "Nike","advertiserUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US","region": "US"}
Notes: ad counts shown by Google are approximate ranges and are surfaced as-is. Data comes from Google's public Transparency Center and reflects whatever Google currently publishes there. Set includeRawData to attach the raw decoded API objects to each result for debugging.
Monitoring — get only new ads
Turn on onlyNewAds to output only ads not seen in previous runs. The actor remembers every creative ID it has seen in a named key-value store, so a scheduled (daily/weekly) run returns just newly-launched ads — ideal for competitor new-ad alerts.
- The first run returns everything and seeds the memory; later runs return only genuinely new ads (and are cheaper, since you're billed only for new ads).
- Set
monitorStoreName(defaultads-transparency-monitor) to a distinct name per monitoring target so their histories don't mix. - Pair it with Apify Schedules and a notification integration to turn the actor into a standing watch on any brand's, domain's, or advertiser's Google ad activity.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it on a cron to keep your data fresh.
- Webhooks — trigger downstream actions the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/google-ads-transparency-scraper').call({queries: ['Nike'],resultType: 'ads',region: 'US',platforms: ['YOUTUBE', 'SEARCH'],adFormat: 'VIDEO',maxAdsPerSearch: 200,onlyNewAds: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} records`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new records straight into your CRM or sheet.
- Slack — get notified when a run finds something new.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find every YouTube video ad Nike is currently running in the US and how long each has been live" and let it run this scraper for you.
More scrapers from scrapesage
Need data from other sources? Try these:
- Facebook Ad Library Scraper — Meta/Instagram competitor ad intelligence.
- Bark Listing Scraper — Bark.com service-provider directory listings.
- Bark Scraper — Bark.com provider profiles & leads.
- SAM.gov Scraper — US federal contract opportunities & contacts.
- Eventbrite Scraper — events plus organizer leads with contacts.
- LinkedIn Jobs Scraper — filter-based LinkedIn job postings, no login.
- Telegram Scraper — channels, messages, media & search.
Tips
- For large or repeated runs, keep the default residential
proxyConfiguration— it is recommended for reliable access at scale. - Use
advertisersmode for a fast, cheap ad-check across many companies before deciding which ones to pull full creatives for. - Enable
includeDetailsonly when you need A/B variations or per-countryregionsShown— it adds one extra (separately billed) request per ad. RaisedetailConcurrencyto speed those detail runs up. - For monitoring, give every target its own
monitorStoreNameso seen-ID histories don't mix, then schedule a daily or weekly run withonlyNewAdson. - Remember platform filtering only covers ads shown on or after 2023-09-04; narrow with
region,adFormat, and thestartDate/endDatewindow for tighter results.
FAQ
Which Google surfaces are covered? Search, YouTube, Shopping, Maps and Play — filter to specific ones via platforms, or leave it empty for all.
Do I need to log in or supply a Google account? No. The actor reads the public Google Ads Transparency Center — no login, no cookies, no account.
How is it billed? Pay-per-event: a fee per ad creative returned, a separate fee per advertiser record in ad-check mode, and an extra per-ad fee only when full creative detail is on. You pay for the data you actually receive, and monitor mode only charges for new ads.
Why are some ID fields null? googleCreativeId, adGroupId and similar IDs are present for text/video/rich ads but are null for plain image ads. Image ads still return a direct imageUrl.
Is the data accurate and complete? It reflects exactly what Google currently publishes in its Transparency Center, including approximate ad-count ranges, which are surfaced as-is.
What export formats can I get? JSON, CSV, Excel, XML, or RSS from the dataset, or programmatically via the Apify API.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.