Google Ads Transparency & Ad Library Scraper API – No Login
Pricing
from $0.60 / 1,000 ad scrapeds
Google Ads Transparency & Ad Library Scraper API – No Login
Get Google Ads Transparency Center ads for any domain, brand or advertiser ID, no login: format, dates, days shown, images, plus ad text, landing page, variations and EU impressions. Only-new-ads monitor for daily competitor alerts. Search, YouTube, Shopping, Maps, Play. 100 free/month.
Pricing
from $0.60 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer
K-Data Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Features
Share
Type a competitor's domain or brand, click Start, get every Google ad they run as a table. This actor reads the public Google Ads Transparency Center (Google's ad library): format, first and last shown dates, days shown, the ad image or preview and, with one add-on, the ad text, landing page, video, every variation and each country it ran in with EU impression ranges. Search, YouTube, Shopping, Maps and Play ads.
- ✅ No login, no cookies, no Google account: paste
nike.comorHubSpotand run - 💰 First 100 results every month free, then from $0.60 per 1,000 ads; ad text + landing page + countries for $1 per 1,000 more
- 🔔 Only-new-ads monitor: schedule it daily and get just the ads a competitor launched since the last run; ads you already have are skipped and never charged
- 🔌 Use it as an API: one HTTP call returns JSON, CSV or Excel; works with n8n, Make, Zapier and AI agents (MCP)
Example row (real ad, adidas.com, US, full details on):
| advertiserName | format | firstShown | lastShown | daysShown | variationCount | landingUrl |
|---|---|---|---|---|---|---|
| Adidas America, Inc | IMAGE | 2026-10-20 | 2026-10-23 | 4 | 3 | https://www.adidas.com/us/stan_smith |
Independent tool by K-Data Lab. Not affiliated with, endorsed or sponsored by Google. It reads only the public Ads Transparency Center (adstransparency.google.com), no login, and returns only what Google publishes there.
🔍 What does Google Ad Library Scraper do?
- Ads by domain:
nike.comreturns every advertiser's ads that point to nike.com (brand, resellers, agencies) - Ads by brand name:
HubSpotis matched to the verified advertiser with the most ads - Ads by advertiser ID or link: paste
AR…IDs or Transparency Center links (an advertiser page, a domain search or a single ad) - Filters: country shown in (243 countries), format (text / image / video), Google platform (Search, YouTube, Shopping, Maps, Play), date range
- Full ad details (optional): headline, description, display URL, texts, landing page URL, YouTube video ID or MP4, every variation, countries with first/last shown dates, EU impressions by platform, topic
- Only new ads (monitor mode): the actor remembers which ads each input line already returned and gives you only the new ones on the next run
- Advertisers only output: find advertiser IDs, verified countries and ad counts for a brand, or every advertiser running ads to a domain
💡 Why choose this actor?
- 💰 Lower price: ads from $0.60–0.90 per 1,000 and full details for $1 per 1,000, with 100 free results every month
- 📝 Ad text and landing page included in one add-on, not split into several paid extras
- 🌍 Per-country reach: each country the ad ran in, with dates and (in the EU) impression ranges by platform
- ⚡ Fast and light: plain HTTP, 256 MB, about 40 ads per request; Apify Proxy only when Google slows down
- 🛡️ Never charged twice: an ad found by two input lines is returned and charged once; with the monitor on, ads from earlier runs are skipped for free; empty queries cost nothing
📥 Input example
{"queries": ["nike.com", "HubSpot", "AR16735076323512287233"],"region": "US","format": "ALL","platform": "ALL","dateFrom": "2026-09-01","maxAdsPerQuery": 200,"includeDetails": true}
| Field | What it does |
|---|---|
queries | Domains, brand names, advertiser IDs (AR…) or Transparency Center links, one per line |
region | Country the ads were shown in (anywhere = all) |
format | ALL, TEXT, IMAGE, VIDEO |
platform | ALL, GOOGLE_SEARCH, YOUTUBE, GOOGLE_SHOPPING, GOOGLE_MAPS, GOOGLE_PLAY |
dateFrom / dateTo | Only ads shown in this period (YYYY-MM-DD) |
maxAdsPerQuery | Stop after this many ads per line |
includeDetails | Ad text, landing page, video, variations, countries, impressions, topic |
onlyNewAds | Monitor mode: return only ads no earlier run of this line (same filters) returned; maxAdsPerQuery = ads checked per line |
advertisersPerName | Max advertisers per brand name (default 1 for ads, 10 for advertisers mode). Whole-word name matches only; the brand's own account first (Nike → Nike, Inc.), then most ads |
mode | ads or advertisers (advertiser lookup only) |
🧪 Ready-made inputs
| Goal | Input |
|---|---|
| Every ad pointing to a website (brand, resellers, affiliates) | {"queries": ["nike.com"], "maxAdsPerQuery": 500} |
| A brand's YouTube video ads in the UK | {"queries": ["Spotify"], "region": "GB", "platform": "YOUTUBE", "format": "VIDEO"} |
| Ad copy and landing pages of Search ads | {"queries": ["hubspot.com"], "platform": "GOOGLE_SEARCH", "includeDetails": true} |
| Daily alert of a rival's new ads (schedule it) | {"queries": ["shopify.com", "wix.com"], "onlyNewAds": true, "maxAdsPerQuery": 300} |
| Ads shown since a date | {"queries": ["shopify.com"], "dateFrom": "2026-10-24"} |
| Find the exact advertiser IDs for a brand | {"queries": ["Samsung"], "mode": "advertisers"} |
📤 Output example
One row per ad (the Ads view shows the image, advertiser, dates and links). A real record with full details:
{"adId": "CR07054792377080217601","advertiserId": "AR14017378248766259201","advertiserName": "Adidas America, Inc","domain": "adidas.com","format": "IMAGE","firstShown": "2026-10-20T17:44:06Z","lastShown": "2026-10-23T23:43:41Z","daysShown": 4,"imageUrl": null,"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&…","adUrl": "https://adstransparency.google.com/advertiser/AR14017378248766259201/creative/CR07054792377080217601?region=US","query": "adidas.com","region": "US","variationCount": 3,"regions": [{"countryCode": "US", "country": "United States", "firstShown": null, "lastShown": "2026-10-23","impressionsMin": null, "impressionsMax": null, "impressionsByPlatform": []}],"adText": {"texts": ["Explore The Latest Shoes, Clothing & Accessories On", "adidas.com.","The Stan Smith sneaker is a timeless design", "inspired by the tennis legend", "Place Your Order Today"],"landingUrls": ["https://www.adidas.com/us/stan_smith"],"headline": null, "youtubeVideoId": null, "videoUrl": null},"landingUrl": "https://www.adidas.com/us/stan_smith"}
For ads shown in the EU, regions also carries Google's impression ranges by platform (real adidas.de ad):
"regions": [{"countryCode": "DE", "country": "Germany", "firstShown": "2023-03-01", "lastShown": "2026-10-23","impressionsMin": 10000000, "impressionsMax": null,"impressionsByPlatform": [{"platform": "GOOGLE_SEARCH", "impressionsMin": 10000000, "impressionsMax": null},{"platform": "GOOGLE_SHOPPING", "impressionsMin": 1500000, "impressionsMax": 1750000},{"platform": "YOUTUBE", "impressionsMin": 70000, "impressionsMax": 80000}]}]
Field notes:
daysShown: number of days Google showed the ad (from the Transparency Center)imageUrl: image ads and older text ads are archived by Google as images;previewUrlis Google's preview script for HTML and video adsimpressionsMin/impressionsMax: Google publishes impression ranges for ads shown in the EU (and political ads);impressionsMax: nullmeans "or more"adText.headline/description/displayUrl: for search text ads with a live preview; other ads list their visibletextspartialDetails: true: Google has no public detail record for a few live ads (its own ad page shows nothing either). You still get the text and landing page when the ad has a preview;regionsis only the country you searched, impressions are empty, and the details charge is skipped- Run summary (key-value store
RUN_SUMMARY): per input line, the advertisers used, how many ads Google reports for your filters, and a status (OK,NO_ADS,NO_NEW_ADS,NO_ADVERTISER_FOUND,INVALID_QUERY,ERROR)
⚠️ When a line returns nothing
NO_ADVERTISER_FOUND: no verified advertiser name has every word you typed as a whole word (Nikematches Nike, Inc. and NIKE SRL, not Nikesh), and the brand's own website shows none either. Use the website domain instead (brand.com), orAdvertisers onlymode to see the exact advertiser names.NO_ADS: the advertiser or domain has no ads for these filters (country, format, platform, dates).NO_NEW_ADS(monitor mode): every ad checked was already returned by an earlier run. The summary showscheckedandalreadySeen.INVALID_QUERY: a Transparency Center link without an advertiser, ad or domain in it.
Nothing is charged for a line that returns nothing.
💰 How much does it cost to scrape Google ads?
| Event | Price |
|---|---|
| Ad scraped | $0.0009 (Free plan) · $0.0008 (Bronze) · $0.0007 (Silver) · $0.0006 (Gold and up) |
| Ad details (only with Full ad details on) | $0.001 per ad |
| Advertiser found (Advertisers only) | $0.0005 |
| Actor start | $0.005 per run |
The first 100 results each calendar month are free, details included. Examples: 1,000 ads ≈ $0.90; 1,000 ads with full details ≈ $1.90. Set Maximum cost per run in the run options and the actor stops cleanly at that limit.
🚀 How to scrape Google Ads Transparency Center (step by step)
- Open the actor and click Try for free.
- Paste competitor domains or brand names into Advertisers, brands or domains.
- Pick a country, format, platform or dates if you need them.
- Turn on Full ad details for ad text, landing pages and countries.
- Click Start, then download the results as Excel, CSV or JSON.
📊 Popular use cases
- Competitor ad research: which messages, offers and landing pages a rival is testing right now
- Ad creative swipe files for agencies and copywriters
- Market entry checks: which countries a competitor advertises in, since when, and how much (EU)
- Brand protection: find resellers, affiliates and look-alike advertisers bidding on your domain
- Lead lists for agencies: which companies are actively advertising (advertiser names and IDs, no personal contact data)
- Monitoring: turn on Only new ads, schedule a daily run and send the new rows to Slack, Sheets or email through an Apify integration
🔌 Integrations & API
Run it from your code with the Apify API or client libraries:
from apify_client import ApifyClientclient = ApifyClient('<YOUR_APIFY_TOKEN>')run = client.actor('k-data-lab/google-ad-library-scraper').call(run_input={'queries': ['nike.com'], 'region': 'US', 'maxAdsPerQuery': 100, 'includeDetails': True})for ad in client.dataset(run['defaultDatasetId']).iterate_items():print(ad['advertiserName'], ad['format'], ad['lastShown'], ad.get('landingUrl'))
curl -X POST "https://api.apify.com/v2/acts/k-data-lab~google-ad-library-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H 'Content-Type: application/json' -d '{"queries": ["hubspot.com"], "maxAdsPerQuery": 50}'
It also connects to Google Sheets, Slack, Zapier, Make, n8n and webhooks through Apify integrations, and works as an MCP tool for AI agents.
💡 Tips
- A domain finds more ads than a brand name: big brands advertise under several legal entities (e.g. Nike, Inc. and Nike Retail BV).
- Leave Full ad details off for fast, cheap lists; turn it on for the ads you want to study.
- Use Advertisers only first to get exact advertiser IDs, then scrape those IDs.
- Google reports totals as ranges (e.g. 70,000–80,000 ads); the run summary shows them per query.
🤖 Use it from AI agents (MCP)
Give Claude, ChatGPT, Cursor, VS Code or n8n a ready-made google-ad-library-scraper tool through Apify's MCP server: the agent reads the input schema, runs this actor and gets the dataset back.
- This actor only:
https://mcp.apify.com?tools=actors,docs,k-data-lab/google-ad-library-scraper - Google set (Google Play + Google Ads Transparency):
https://mcp.apify.com?tools=actors,docs,k-data-lab/google-play-scraper,k-data-lab/google-ad-library-scraper
Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=actors,docs,k-data-lab/google-ad-library-scraper"
Claude Desktop: Settings → Connectors → Add custom connector, paste the same URL.
Cursor / VS Code (.cursor/mcp.json; in .vscode/mcp.json use "servers" and add "type": "http")
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=actors,docs,k-data-lab/google-ad-library-scraper","headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }}}}
Try asking
- "Show me the 30 latest video ads that point to nike.com in the US, with landing pages."
- "Which advertisers are running Google ads for hubspot.com, and how many ads does each have?"
- "Monitor HubSpot's Google ads in Germany and tell me only the new ones since the last run."
❓ FAQ
Is it legal to scrape the Google Ads Transparency Center? The Transparency Center is a public library Google publishes so anyone can see who advertises what. This actor reads only that public data, without login, at a polite rate. You are responsible for how you use the data; check your local laws and Google's terms for your use case.
Does it return personal data? No contact data at all. Advertiser names are the verified names Google itself publishes for each advertiser; some advertisers are verified individuals, so treat names as you would any public record.
Why is there no text for some ads? Google archives many text ads as images; the actor then returns the imageUrl.
Ads with a live preview get their text and landing page with Full ad details.
How far back does it go? As far as the Transparency Center does (several years for many advertisers).
Can I get only new ads? Yes. Turn on Only new ads (monitor mode) and schedule the actor. Each run returns only
ads that earlier runs of the same input line and filters did not return, each marked isNew: true, and skipped ads cost
nothing. The memory is a key-value store named k-data-lab-google-ads-seen in your own Apify account; delete it to
start over. For a fixed window instead, set dateFrom.
🧰 More from K-Data Lab
- Amazon ASIN Rating & Review Count Scraper: star rating, review count, 5★–1★ breakdown, price and Best Sellers Rank for ASINs on 19 Amazon marketplaces
- Amazon Seller Central Review Scraper & Monitor: export and monitor your brand's customer reviews from Seller Central (US, EU, JP, IN), with order ID and photos; you sign in yourself
- Google Play Scraper API: app details, reviews and search results from Google Play, no login; pairs with the Play ads above
- Agoda Scraper: hotel prices, room offers and guest reviews from Agoda
- Korean Music Chart API: Melon, Genie, Bugs, FLO and VIBE charts in one table, with all-kill detection
- Single-platform K-pop chart actors: Melon · Genie · Bugs · FLO · VIBE
💬 Feedback
Missing a field or found a wrong value? Open an issue on the actor's Issues tab.
Tags: google ads transparency, competitor ad monitoring, new ads alert, google ads transparency center api, google ads library, google ad library scraper, competitor ads, ad spy tool, google ads scraper, youtube ads, google shopping ads, ad creatives, ppc competitor research, advertiser lookup