Google Ads Transparency Scraper · No Login · $0.2/1k
Pricing
from $0.20 / 1,000 ads
Google Ads Transparency Scraper · No Login · $0.2/1k
Google Ads Transparency Center scraper: ads of any advertiser or domain with format, dates, regions, previews, YouTube IDs and product titles. Filter by country, platform, format and date. No login or API key. $0.20/1k ads on Business or $0.30/1k on Free; details and media included, no start fee.
Pricing
from $0.20 / 1,000 ads
Rating
0.0
(0)
Developer
Alfalfa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Google Ads Transparency Scraper: every ad of any advertiser or website, no login
Google's Ads Transparency Center shows the ads every advertiser has run on Search, YouTube, Maps, Shopping and Play, but only 40 at a time in a browser and with no export. This Actor turns it into a table: give it advertiser names, website domains, advertiser IDs or Transparency Center URLs and get one row per ad with the advertiser, format, first and last shown dates, the regions it ran in, the preview, and for video ads the YouTube video. Export to Excel, CSV or JSON, or read it through the API.
$0.30 per 1,000 ads, no start fee, platform usage and proxies included.
What you get
| Field | Example |
|---|---|
advertiserId, advertiserName, advertiserLegalName, advertiserCountry, advertiserVerified | AR16735076323512287233, Nike, Inc., Nike, Inc., US, true |
advertiserDomain | nike.com, the website the advertiser's ads lead to (empty when Google lists none or the lookup is off) |
creativeId, url | CR00654803575712514049, the ad's page in the Transparency Center |
format | TEXT, IMAGE or VIDEO |
firstShown, lastShown | 2026-04-09, 2026-09-14 |
regions | [{"region": "US", "lastShown": "2026-09-01"}, …] (details on) |
previewImageUrl | screenshot of the ad as Google renders it (text ads) |
previewUrl, previewUrls, variantsCount | Google's preview pages of the ad and its variants |
videoId, videoUrl, thumbnailUrl | the YouTube video behind a video ad (media on) |
imageUrls, texts | image assets and texts of shopping and local ads: product titles, store names (media on) |
inputUrl | which advertiser, domain or URL the ad came from |
Three levels of detail, all included in the price:
- Listing only (details off): advertiser, format, dates and one preview per ad. Fastest, hundreds of ads a second.
- Details (default): plus every region with its last-shown date, all preview variants and the exact last-shown date. One small request per ad.
- Media and texts (option): reads the preview pages for the YouTube video id and thumbnail of video ads, image assets, and the texts of shopping and local ads. One larger request per preview.
Classic text ads are delivered by Google as a rendered screenshot, not as text. That is how the Transparency Center itself works; every scraper of it has the same limit. Video, shopping and local ads carry their texts, product titles and video ids in the preview, and those are extracted.
Sources
- Advertiser names:
Nike,Airbnb,Coca-Cola. The Actor asks Google's own suggestion box and takes the best matching advertiser account (exact name first, then by ad count). Several accounts can share a name; set Max advertisers per name to include more. - Website domains:
nike.com,booking.com. Every advertiser sending ads to that domain. - Advertiser IDs:
ARfollowed by digits, from the advertiser page URL. - URLs: advertiser pages and single ad pages copied from
adstransparency.google.com.
Filters: region (country the ads were shown in, two-letter code, or anywhere), platforms (Search, YouTube, Maps, Play, Shopping), formats (text, image, video), ad status (active / inactive), shown in the last 7, 30, 90 or 365 days, or shown after / before dates. Max ads per source caps each advertiser account or domain; Google pages 40 ads at a time and big advertisers have thousands. The same ad reached through two sources (a name and its ID, or a domain) is saved and charged once.
Active ads, inactive ads and date ranges
- Ad status (
adStatus):activekeeps only ads shown within the last 30 days,inactiveonly ads that have not been shown for more than 30 days, both judged by each ad'slastShownon the day of the run. Google's site has no such switch, so the Actor applies it to the ads as they come in. Google lists the most recently shown ads first, so aninactiverun of a big advertiser reads past the current ads before it finds the old ones (Nike US: 20 inactive ads in about 30 seconds). - Shown in the last (
datePreset):last7Days,last30Days,last90DaysorlastYearmeans the full days before the day of the run (UTC), exactly like the date picker on Google's site.startDate/endDate, when set, take precedence. Google's date filter is Google's: its data reaches back about a year and runs several days behind for text and image ads, solast7Daysfor a big advertiser can return just its newest video ads, the same as the site shows. - No ads for a query costs nothing. An unknown advertiser, a domain nobody advertises, or a filter that matches nothing does not add a row and is not charged. The run still ends as succeeded; its status message lists the queries with no ads (
No ads found for: advertiser "xyz" (no advertiser of this name)), and the run's key-value store holds aNO_ADS_FOUNDrecord with the same list for your integration to check.
Use cases
- Competitor research: all ads a rival ran this quarter, by platform and format, with the dates each one was live. Long-running ads are the ones that work.
- Creative inspiration: the video ads of the top brands in your niche, straight to YouTube links.
- Agency prospecting: which advertisers send traffic to a domain, how many ads, since when, verified or not.
- Monitoring: a weekly run per advertiser into Google Sheets; new creative IDs are new ads.
- Brand protection: who advertises on your brand's domain or name.
Examples
Every ad Nike ran in the US in the last 30 days, with video ids:
{ "advertisers": ["Nike"], "region": "US", "datePreset": "last30Days", "includeMedia": true, "maxAds": 500 }
Nike's ads that are no longer running (not shown for more than 30 days), listing only:
{ "advertisers": ["Nike"], "region": "US", "adStatus": "inactive", "scrapeDetails": false, "maxAds": 200 }
Everyone advertising booking.com, listing only, worldwide:
{ "domains": ["booking.com"], "region": "", "scrapeDetails": false, "maxAds": 1000 }
Only YouTube video ads of an advertiser ID:
{ "advertiserIds": ["AR16735076323512287233"], "platforms": ["youtube"], "formats": ["video"], "maxAds": 200 }
Output row (shortened):
{"advertiserId": "AR16735076323512287233","advertiserName": "Nike, Inc.","advertiserDomain": "nike.com","advertiserCountry": "US","advertiserVerified": true,"creativeId": "CR10652972250883424257","url": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR10652972250883424257?region=US","format": "VIDEO","firstShown": "2026-09-13","lastShown": "2026-09-14","regions": [{ "region": "US", "lastShown": "2026-09-14" }, { "region": "CA", "lastShown": "2026-09-14" }],"videoId": "vXMxDt7mYlw","videoUrl": "https://www.youtube.com/watch?v=vXMxDt7mYlw","thumbnailUrl": "https://i.ytimg.com/vi/vXMxDt7mYlw/hqdefault.jpg"}
Use it from code, n8n, Make, Zapier or an AI agent
- API:
POST https://api.apify.com/v2/acts/alfalfa~google-ads-transparency-scraper/run-sync-get-dataset-items?token=…with the JSON input above returns the rows directly (runs up to 5 minutes). Longer jobs: start the run, poll, read the dataset. Any Apify client library works. - n8n, Make, Zapier: add the Apify node, pick
alfalfa/google-ads-transparency-scraper, paste the same JSON input and read the run's dataset in the next step. See the Apify integrations docs. - AI agents and MCP (Claude, Cursor, VS Code, ChatGPT): connect the Apify MCP server with this Actor as a tool,
https://mcp.apify.com/?tools=alfalfa/google-ads-transparency-scraper, and the agent can pull an advertiser's ads by describing what it wants. See Apify MCP docs.
Pricing
| Event | Price |
|---|---|
| Ad | $0.30 per 1,000 ($0.27 / $0.24 / $0.20 on Starter / Scale / Business plans) |
| Details, media, start fee, platform usage, proxies | none, included |
Final price. The per-ad price is everything you pay: platform usage is included, there is no start fee and no per-run minimum. Some listings on the Store show a lower number and add platform usage on top; here the number on the listing is the number on your bill.
A run's Maximum total charge is honoured: the Actor stops before the budget, so the bill never exceeds it.
Limits and honesty
- The Transparency Center lists ads shown since May 2018 for verified advertisers, and only the ads Google chooses to publish. Political ads outside the countries with election-ad verification are not in it.
- Ad copy of text ads comes as a screenshot image. No OCR is done; the screenshot URL is in
previewImageUrl. - Search is by advertiser or domain, as on Google's site. There is no search by keyword inside the ad text.
- Counts of ads per advertiser are Google's approximations ("~9K"); the Actor collects what the pages return.
- Impressions, spend and targeting are shown by Google only for political ads and are not included in this version.
advertiserDomainis the website Google lists for the advertiser's ads. For domain searches it is the searched domain; for advertisers it is found through Google's own website suggestions and confirmed against the advertiser's ads, so it is empty for advertisers whose website Google does not list under their name. Look up advertiser website can be switched off for faster runs over many advertisers.- With details on, the exact last-shown date can move an ad across the 30-day line of Ad status; such ads are dropped (not saved, not charged), so a run can return a few ads fewer than Max ads per source.
- Date ranges use Google's date data, which reaches back about a year and trails a few days behind for text and image ads (see above).
FAQ
Is there a Google Ads Transparency API? No public one. The Center is a website; this Actor reads its public pages without a login and returns the fields as a table.
How current is the data? The same as the website: ads appear a few days after they start running and lastShown moves as they keep running.
What happens when an advertiser has no ads? Nothing is charged. The run succeeds with zero rows for that query, names it in the status message and in the NO_ADS_FOUND record of the run's key-value store, and carries on with the other queries.
Can I get the landing page URL? The preview links Google exposes go through its click tracker, so the final destination is not part of the public data. Shopping and local ads carry product and store names in texts.
Is this legal? The Transparency Center exists to be looked at. The Actor reads public pages without an account and stores nothing but the results in your dataset. Respect the advertisers' copyright when you reuse creatives.
Examples you can run in one click
Each example opens with its input already filled in and a sample of the results, so you can change any field and run it right away.
- All Google ads of an advertiser
- Export Google ads to CSV
- Google ads pointing to a website
- Google Ads Transparency API
- Google Shopping ads of a brand
- YouTube video ads of a brand
Need something the examples do not cover? Every field is on the Input tab, and any example input works unchanged in an API call or an n8n, Make or Zapier workflow.
Was this useful?
If this Actor saved you time, a short review on its Store page helps others find it and tells me what to improve next. Missing a field or stuck on an input? Open an Issue on the Actor page; issues are answered within a day.
Related Actors by the same author
| Actor | What it does | Price |
|---|---|---|
| Google Maps Scraper | places from any search and location with address, phone, website, rating and hours, plus reviews and website emails | $0.07 per 1,000 places |
| Amazon Product Scraper | products from searches, Best Sellers lists and ASINs in 22 Amazon stores with price, rating, BSR and details | $0.28 per 1,000 products |
| Facebook Ads Library Scraper | ads from the Meta Ad Library by keyword, advertiser page or URL, with creatives, dates, platforms and EU reach | $0.45 per 1,000 ads |
| YouTube Scraper | videos of a search, channel, playlist or URL list with views, likes, date, tags, plus transcripts and comments | $0.50 per 1,000 rows |
| LinkedIn Jobs Scraper | public LinkedIn job postings by keyword, location, date, company or URL | $0.30 per 1,000 jobs |
| LinkedIn Company Scraper | LinkedIn company pages from URLs, names, websites or a filtered keyword search with size, employee count, followers, offices and recent posts | $1 per 1,000 companies |
| Facebook Posts Scraper | posts of any public page or profile with reactions, comment counts, media, optional video transcripts | $2 per 1,000 posts |
| Facebook Comments Scraper | comments and replies of any public post | $0.30 per 1,000 comments |
| Facebook Pages Scraper | page details with email, phone, address, followers, rating, About text | from $2.50 per 1,000 pages |
| Facebook Events Scraper | events by search, page or URL with dates, venue, tickets and organizer email | $3 per 1,000 events |
Not affiliated with, endorsed by or connected to Google LLC or Apify.