Google Ads Transparency Scraper: Ad Library & EU Reach
Pricing
from $0.35 / 1,000 ads
Google Ads Transparency Scraper: Ad Library & EU Reach
Google Ads Transparency Center scraper: get ads any advertiser runs on Google Search, YouTube, Shopping, Maps and Play. Search by domain, brand or advertiser ID. Format, first/last shown, days shown, previews, EU impressions, targeting and topic. $0.50 per 1,000 ads. Export CSV/JSON or use the API.
Pricing
from $0.35 / 1,000 ads
Rating
0.0
(0)
Developer
ASide Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What is Google Ads Transparency Scraper?
Google Ads Transparency Scraper extracts ads from the Google Ads Transparency Center (the public Google ad library) for any website domain, advertiser or brand name, or advertiser ID. For every ad you get the advertiser, ad (creative) ID, format (text, image or video), first shown and last shown dates, the number of days the ad was shown, a preview image or preview link and a direct link to the ad in the Transparency Center.
Filter by country, Google platform (Search, YouTube, Shopping, Maps, Play), ad format and date range. Turn on ad details to also get every ad variation (A/B version), the countries where the ad ran, the legal advertiser name and topic, and — for ads shown in the EU — the number of times the ad was shown (impressions) and the advertiser's audience targeting.
Use it for competitor ad research, ad creative inspiration, monitoring new ads of competitors, agency pitches and audits, brand protection and market research. Run it in Apify Console, on a schedule, or from Python, JavaScript, Make, Zapier, n8n or an AI agent (MCP).
Why this Google Ads Transparency scraper
- 💸 $0.50 per 1,000 ads. One of the lowest prices for Google Ads Transparency data. Ads with full details are $1.00 per 1,000. Failed and blocked requests are free.
- 🔎 Search by domain, brand name or advertiser ID. Type
nike.com,NikeorAR16735076323512287233, or paste an Ads Transparency Center URL. A brand name is matched to the advertiser with the most ads, not just the first suggestion (for "Nike" that is Nike Retail BV with 70,000+ ads, not a small advertiser called "Nikey"). Set 'Advertisers per name' to 2 or more to also get the next ones, such as Nike, Inc. - 🇪🇺 EU reach and targeting. For EU countries the details include the impressions range (e.g. 5K–6K), split by platform (Search, YouTube, Shopping), and whether the advertiser targeted demographics, locations, contextual signals, customer lists and interests.
- 📅 Dates that match the Transparency Center. First and last shown dates use the same calendar day as the Google
page, plus
daysShown(how many days the ad actually ran). - 🧹 No duplicates. When a domain search and an advertiser search return the same ad, it is saved and charged once.
- ⚡ Fast and light: plain HTTP requests, no browser, 100 ads per request. In our tests 12,000 ads (6 domains × 2,000) took about 40 seconds.
What Google Ads data can you extract?
| Group | Fields |
|---|---|
| Search | searchTerm, searchType (domain, advertiser or name), region, platform, position, totalAdsMin, totalAdsMax |
| Ad | advertiserId, advertiserName, creativeId, format, firstShown, lastShown, daysShown, adUrl |
| Preview | previewImageUrl, previewWidth, previewHeight (image and most text ads), previewUrl (video and script ads) |
| Details (optional) | legalName, topic, topicId, variationCount, variations, regions (country, first/last shown) |
| EU reach (optional) | impressionsMin, impressionsMax, impressionsByPlatform, regions[].impressionsMin/Max, audienceSelection |
| Run | detailsIncluded, complete, scrapedAt |
How to scrape the Google Ads Transparency Center
- Click Try for free and open the Actor input.
- Enter one or more domains, advertiser names or IDs — e.g.
booking.com,Nike,AR16735076323512287233or anadstransparency.google.com/advertiser/...URL. - Choose the Region (a country code such as
US,GB,DE, oranywhere), and optionally the Google platform, Ad format and dates. - Set Max ads per search and, if you need variations, regions, EU impressions and targeting, turn on Include ad details.
- Click Start and download the ads as JSON, CSV or Excel, or read them via the API.
Input example
{"searchTerms": ["zalando.de", "Nike", "AR16735076323512287233"],"region": "DE","platform": "all","format": "all","dateFrom": "2026-09-01","maxAdsPerSearch": 500,"includeDetails": true}
Output example
A text ad shown in Germany, with details:
{"searchTerm": "zalando.de","searchType": "domain","advertiserId": "AR15589870916631265281","advertiserName": "Zalando SE","creativeId": "CR11206823616735870977","format": "text","firstShown": "2024-06-12","lastShown": "2026-10-15","daysShown": 485,"adUrl": "https://adstransparency.google.com/advertiser/AR15589870916631265281/creative/CR11206823616735870977?region=DE","previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/15597456861372316862","previewWidth": 348,"previewHeight": 160,"previewUrl": null,"region": "DE","platform": "all","position": 1,"totalAdsMin": 10000,"totalAdsMax": 20000,"legalName": "Zalando SE","topic": "Apparel","topicId": 10021,"variationCount": 3,"variations": [{"previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/15597456861372316862", "previewWidth": 348, "previewHeight": 160},{"previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/9246078059442420531", "previewWidth": 348, "previewHeight": 180},{"previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/7315893545847657116", "previewWidth": 348, "previewHeight": 200}],"regions": [{"country": "DE","firstShown": "2024-06-12","lastShown": "2026-10-15","impressionsMin": 5000,"impressionsMax": 6000,"impressionsByPlatform": [{"platform": "google-search", "impressionsMin": 5000, "impressionsMax": 6000},{"platform": "youtube", "impressionsMin": 0, "impressionsMax": 1000}]}],"impressionsMin": 5000,"impressionsMax": 6000,"impressionsByPlatform": [{"platform": "google-search", "impressionsMin": 5000, "impressionsMax": 6000},{"platform": "youtube", "impressionsMin": 0, "impressionsMax": 1000}],"audienceSelection": {"demographics": "included","geographicLocations": "included and excluded","contextualSignals": "included and excluded"},"detailsIncluded": true,"scrapedAt": "2026-10-16T09:00:00+00:00","complete": true}
Without Include ad details, each ad has the fields up to totalAdsMax plus scrapedAt and complete.
How much does it cost to scrape Google Ads Transparency data?
$0.50 per 1,000 ads, or $1.00 per 1,000 ads with details, on the Free plan. Lower prices apply on higher Apify plans (see the pricing panel). Blocked and failed requests are free, and duplicate ads are not charged. Set Max ads in total or a maximum total charge to cap any run.
| You scrape | You pay (Free plan) |
|---|---|
| 1 domain, 100 ads | ~$0.05 |
| 10 competitors × 500 ads | ~$2.50 |
| 1,000 ads with details (variations, regions, EU reach) | ~$1.00 |
| 50,000 ads | ~$25.00 |
Google Ads Transparency data, explained
firstShown/lastShown— the first and the most recent day the ad was shown in the selected region (Pacific time calendar day, as on the Transparency Center page).daysShown— the number of days the ad was actually shown. It can be lower than the span between the two dates when an ad was paused.format—text,imageorvideo. Many text ads are archived by Google as an image, so they also have apreviewImageUrl.position— the order in which the Transparency Center lists the ads for your search (most recently shown first).totalAdsMin/totalAdsMax— the rounded total number of ads Google reports for the search (e.g. 400,000–500,000).impressionsMin/impressionsMax— times shown in the EU, as a range.impressionsMinis0for "≤ 1K". Google publishes impressions and audience selection only for ads shown in the EU (Digital Services Act), so these fields arenullfor other regions.audienceSelection— for each criterion (demographics, geographic locations, contextual signals, customer lists, topics of interest):included,excluded,included and excludedornone.
Use cases
- Competitor ad research — see every ad a competitor runs, which formats they use and which ads have run the longest (long-running ads are usually the ones that work).
- Creative inspiration — collect preview images and video links of ads in your industry.
- Monitor new ads — schedule a daily run with Shown from set to recent dates and get alerted when a competitor launches new campaigns.
- Agency pitches and audits — show a prospect what their competitors run on Search, YouTube and Shopping.
- EU market analysis — compare impressions ranges and targeting choices of brands in EU countries.
- Brand protection — check which advertisers run ads pointing to your domain.
Use the Google Ads Transparency API
Python (apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("jaaylee/google-ads-transparency-scraper").call(run_input={"searchTerms": ["booking.com"], "region": "US", "maxAdsPerSearch": 300})for ad in client.dataset(run["defaultDatasetId"]).iterate_items():print(ad["advertiserName"], ad["format"], ad["firstShown"], ad["lastShown"], ad["daysShown"])
Find a competitor's longest-running YouTube video ads:
run = client.actor("jaaylee/google-ads-transparency-scraper").call(run_input={"searchTerms": ["temu.com"], "platform": "youtube", "format": "video", "maxAdsPerSearch": 1000})ads = list(client.dataset(run["defaultDatasetId"]).iterate_items())for ad in sorted(ads, key=lambda a: -(a["daysShown"] or 0))[:10]:print(ad["daysShown"], ad["firstShown"], ad["adUrl"])
JavaScript / Node.js (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('jaaylee/google-ads-transparency-scraper').call({searchTerms: ['zalando.de'],region: 'DE',includeDetails: true,maxAdsPerSearch: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((ad) => console.log(ad.creativeId, ad.impressionsMin, ad.impressionsMax, ad.audienceSelection));
cURL (synchronous run that returns the ads):
curl -X POST "https://api.apify.com/v2/acts/jaaylee~google-ads-transparency-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"searchTerms": ["nike.com"], "maxAdsPerSearch": 100}'
Export to CSV from the command line:
$curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&view=overview&token=<YOUR_APIFY_TOKEN>" -o google-ads.csv
Integrations: Google Sheets, Make, Zapier, n8n, webhooks and schedules
- Schedules: run daily or weekly from Apify Console → Schedules to follow competitors' new ads.
- Google Sheets: export each run to a sheet with the Apify Google Sheets integration.
- Make, Zapier, n8n: start runs and read results with the official Apify apps and nodes.
- Webhooks: get notified when a run finishes and push new ads to Slack, email or your database.
Use with AI agents (MCP)
This Actor works with the Apify MCP server. An AI agent can find it with a query like "Google ads transparency", read its input schema and call it to list a competitor's current Google ads — for example to summarize a brand's ad strategy or compare the ads of several competitors in one conversation.
More scrapers by the same developer
- AliExpress Search Scraper — AliExpress search results with rank, price, exact sold count, store and ship-from country in any currency.
- Walmart Search Scraper — Walmart search and category results with rank, price, was-price, ratings, seller and stock.
- Amazon Search Scraper — Amazon search results with rank, price, "bought in past month" and delivery dates for any US ZIP code.
- Amazon ASIN Scraper — full Amazon product details by ASIN: price, BSR, stock, delivery date by ZIP, variants, specs, images.
- Amazon Best Sellers Scraper — top 100 Best Sellers and New Releases for any Amazon category and subcategory.
Tips for accurate Google Ads Transparency data
- Use the domain for complete results. A domain search returns ads from every advertiser account that points to the site (brands often run several accounts and agencies). Use the advertiser ID when you want exactly one account.
- Use names for convenience, IDs for precision. A name is matched to the advertiser with the most ads whose name contains every word you typed. Raise Advertisers per name to include more matching accounts; the log shows which advertisers were used.
- Pick the region. Ads and dates depend on the country. Use
anywherefor a global view; EU countries are needed for impressions and targeting. - Date filters cover about the last year. The Transparency Center supports date filtering for roughly the last 12 months; older ranges return no ads.
- Cap the cost. Set Max ads per search, Max ads in total or a maximum charge per run; the Actor stops cleanly and you only pay for ads saved before that.
- Monitor with failure alerts. For scheduled monitoring tasks, turn on Fail run on low data quality so that a run with mostly blocked requests shows up as failed and triggers your Apify notifications.
Limitations
- The Transparency Center does not publish ad spend, clicks or the ad's landing page URL, so these fields are not available. Impressions and audience targeting are published only for ads shown in the EU.
- The ad text of text ads is shown by Google as an image (
previewImageUrl); the Actor does not run OCR on it. Video and some text ads have apreviewUrl(Google's preview script) instead of an image. - Preview URLs are hosted by Google and can expire for old ads; download the images you want to keep.
- Google's "unusual traffic" checks (CAPTCHAs) are never solved; blocked requests are retried on fresh sessions and, if still blocked, skipped for free.
- This is an independent tool and is not affiliated with or endorsed by Google.
FAQ
Is it legal to scrape the Google Ads Transparency Center?
The Ads Transparency Center is a public library that Google publishes so anyone can see who is advertising. This Actor only reads publicly visible data without logging in and does not collect personal data. You are responsible for using the data in line with applicable laws and Google's terms. If in doubt, consult a lawyer.
What is the difference between a domain search and an advertiser search?
A domain search (nike.com) returns ads from all advertiser accounts whose ads point to that website. An advertiser
search (AR… ID or a name) returns ads from one verified advertiser account, wherever they point.
Where do I find an advertiser ID?
Open the advertiser in the Ads Transparency Center; the ID starting with AR is in the page URL. You can also paste
the whole URL into searchTerms.
Why are impressions empty for my ads?
Google publishes impressions ranges and audience selection only for ads shown in the European Union. Set Region to
an EU country (for example DE, FR, ES, IT, NL) and turn on Include ad details.
Can I get only new ads?
Set Shown from to a recent date to get ads shown since then, and schedule the run. firstShown tells you when each
ad started, so you can keep only ads that started after your last run.
Found a bug or need a field?
Open an issue on the Issues tab with the domain or advertiser and what you expected.