Google Ads Transparency Scraper: Ads by Advertiser or Domain
Pricing
from $0.80 / 1,000 ads
Google Ads Transparency Scraper: Ads by Advertiser or Domain
Every ad an advertiser or website runs on Google Search, YouTube, Shopping, Maps and Play, from the Ads Transparency Center: format, first/last shown, days running, image or YouTube video, ad text. Filter by country, platform, format and date. Pay only for ads you get.
Pricing
from $0.80 / 1,000 ads
Rating
0.0
(0)
Developer
T3 Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
A Google Ads Transparency Center API alternative with no login, no cookies and no API key. Enter a brand name, a website or an advertiser ID and get every ad they run on Google Search, YouTube, Shopping, Maps and Play: format, first and last shown, days running, the ad image or YouTube video, and ad text where Google provides it, filtered by country, platform, format and date. You only pay for ads you get: advertisers without ads are free.
| 💲 Price | $2 per 1,000 ads. Preview details (text, video) are included. |
| ⚡ Speed | 300 ads with details in ~7 seconds; 31 brands and domains (600 ads) in ~25 seconds |
| 📥 Input | Brand names, domains (nike.com), advertiser IDs (AR…), or Ads Transparency Center links |
| 📤 Output | One row per ad: advertiser, format, dates, days shown, image or YouTube video, text (when available), Transparency Center link |
| 🌍 Filters | Country (all 243 regions Google lists, or anywhere), platform (Search, YouTube, Shopping, Maps, Play), format (text, image, video), date range |
What people use it for
- Competitor ad intelligence: what a rival runs right now, in which format, and for how long
- Creative research and swipe files: collect image and video ads at scale for inspiration or analysis
- Lead generation: check which companies actively advertise on Google (and roughly how much)
- Agency pitches: show a prospect their competitors' live ads in minutes
- Brand protection: find who advertises with your brand name or domain
- Long-running ads:
daysShownreveals the ads that keep running, usually the ones that convert
How to use it
- Add brand names, domains, advertiser IDs or Transparency Center links, one per line.
- Pick a country (or anywhere), and optionally a format and date range.
- Click Start, then download the results as JSON, CSV or Excel, or fetch them through the API.
For AI agents and automations
- One job: get the ads a company or website runs on Google (Search, YouTube, Display), with dates, format, image or video and ad text. Minimal input:
{ "advertisers": ["nike.com"], "maxAdsPerAdvertiser": 50 } - Fast enough for a single tool call: one advertiser with 50–100 ads finishes in about 5–10 seconds; ~300 ads with details in ~10 seconds, which fits inside the Apify MCP server's default 30-second wait for small inputs. For big jobs, start the run asynchronously and read the dataset when it finishes.
- Where the results are: dataset items (fields below). A run summary is in the key-value store record
OUTPUT:status(SUCCEEDED,PARTIAL,STOPPED_AT_SPEND_LIMIT,ABORTED,NO_RESULTS,SOURCE_UNAVAILABLE),results,errorsByCodeand a plain-Englishmessage. - Predictable billing: pay per event. Only successful ads are charged; error rows are free.
- Respects "Max cost per run": it never starts work your budget can't pay for, then stops cleanly with status
STOPPED_AT_SPEND_LIMIT. Everything fetched up to that point is kept. - Graceful on abort and restarts: partial results are always kept, and a platform restart resumes without duplicates or double charges.
- Honest failures: if the source blocks every request or changes its format, the run fails with a clear message and you pay $0, instead of quietly returning empty results.
- Works with the Apify MCP server (Claude, Cursor, other agents), agentic payments, and the API.
Input examples
The newest 200 US ads of two brands:
{ "advertisers": ["Nike, Inc.", "Adidas"], "region": "US", "maxAdsPerAdvertiser": 200 }
Every YouTube ad a website ran in the UK since July:
{ "advertisers": ["hellofresh.co.uk"], "region": "GB", "platforms": ["YOUTUBE"], "dateFrom": "2026-07-01", "maxAdsPerAdvertiser": 1000 }
Quick check of which companies advertise (10 ads each, no preview details):
{ "advertisers": ["canva.com", "notion.so", "monday.com", "AR16735076323512287233"], "maxAdsPerAdvertiser": 10, "includeAdDetails": false }
Output
One item per ad. From a real run, a video ad with details:
{"status": "ok","input": "HelloFresh","advertiserCountry": "DE","advertiserVerified": false,"advertiserId": "AR17410177287600472065","advertiserName": "HelloFresh SE","creativeId": "CR01471839147210571777","format": "VIDEO","firstShown": "2024-01-31T12:59:47.000Z","lastShown": "2026-01-15T16:05:56.000Z","daysShown": 716,"imageUrl": null,"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&...","adUrl": "https://adstransparency.google.com/advertiser/AR17410177287600472065/creative/CR01471839147210571777?region=US","region": "US","headline": "Get mealtimes sorted.","description": "Cook with fresh, pre-measured ingredients","displayUrl": null,"adTexts": ["HelloFresh", "Get mealtimes sorted.", "HelloFresh SE", "Cook with fresh, pre-measured ingredients", "delivered to your door."],"landingUrl": "https://play.google.com/store/apps/details?id=com.hellofresh.androidapp","videoId": "ScCF2Gs3HRo","videoUrl": "https://www.youtube.com/watch?v=ScCF2Gs3HRo","images": []}
A search text ad (Google shows these as a rendered image):
{"status": "ok","input": "Booking.com","domain": "booking.com","advertiserId": "AR02934798844673654785","advertiserName": "Booking.com","creativeId": "CR17328202588306276353","format": "TEXT","firstShown": "2026-08-19T09:38:59.000Z","lastShown": "2026-10-16T16:46:24.000Z","daysShown": 59,"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/13415141303128408515","imageWidth": 348,"imageHeight": 180,"previewUrl": null,"adUrl": "https://adstransparency.google.com/advertiser/AR02934798844673654785/creative/CR17328202588306276353?region=US","region": "US"}
| Field | Meaning |
|---|---|
advertiserName, advertiserId, advertiserCountry, advertiserVerified | Who paid for the ad (verified = Google-verified identity) |
creativeId, adUrl | The ad's ID and its page in the Ads Transparency Center |
format | TEXT, IMAGE or VIDEO |
firstShown, lastShown, daysShown | When the ad first and last ran, and on how many days |
imageUrl, imageWidth, imageHeight | The ad image (for text ads, Google's rendering of the ad) |
videoId, videoUrl | The YouTube video of a video ad (in our tests 50 of 57 video ads had one; the rest are Google-made animations with no YouTube video) |
headline, description, displayUrl, adTexts | Ad text pulled from the preview (all visible text in adTexts). Only for ads Google shows as a live preview: in our tests about half of image ads, and few text ads (see FAQ) |
landingUrl | Where the ad sends people. Google rarely includes it (under 1% of ads in our tests) |
images | All images found in the preview |
domain, matchedBy | For domain searches, the domain searched; for name searches, how the name was matched (brandDomain, exactName, closestName) |
Cost examples
| Job | Ads | Cost |
|---|---|---|
| Latest 100 ads for 10 competitors | 1,000 | $2.00 |
| Every video ad of one big brand in a year | ~3,000 | ~$6.00 |
| Ad check for 500 companies (10 ads each) | ≤5,000 | ≤$10 |
Set Max cost per run to cap any run, and the actor stops cleanly at the limit.
Integrations
- API:
client.actor("t3data/google-ads-transparency").call({ advertisers: [...] })(JS), orclient.actor("t3data/google-ads-transparency").call(run_input={"advertisers": [...]})(Python). Full snippets are on the API tab. - AI agents (MCP): available as a tool through the Apify MCP server.
- No-code: Make, Zapier, n8n, Google Sheets, Slack and webhooks, through Apify integrations. Use Schedules to watch competitors weekly.
- Export: JSON, CSV, Excel, XML, HTML or RSS.
Error codes (never charged)
| Code | Meaning |
|---|---|
NO_ADS | The advertiser or domain has no ads with these filters (try another region or "anywhere") |
ADVERTISER_NOT_FOUND | No advertiser matches the name or ID |
INVALID_INPUT | Not a name, domain, advertiser ID or Transparency Center link |
INVALID_REGION / INVALID_PLATFORM | Unknown country code or platform name |
SOURCE_UNAVAILABLE (run status) | Every request was blocked, or the source changed its format. The run fails with $0 charged; retry later |
BLOCKED | Google kept refusing after every retry (rare; try again) |
FAQ
How does a brand name get matched? In this order: the brand's own website (e.g. adidas.com for "Adidas", which covers every account that advertises that site), then an advertiser account with exactly that name (ignoring "Inc.", "LLC" and the like), then the closest name with the most ads. Each row's matchedBy says which one was used. For a precise result, use the domain or the advertiser ID from the Transparency Center link.
Why do most text ads have no headline? For most search text ads, Google's Transparency Center stores only a picture of the ad, not the text, so there is no text to extract; you get the picture (imageUrl), which shows the full ad. The row still has the advertiser, dates, days shown and link, which is what most people use it for. If you only want ads with text or video, set Ad format to Image or Video, or skip rows without headline. Each row is charged once either way, whether or not Google provides text.
Why does Google say "7000–8000 ads"? Google only reports a range. Set Max ads per advertiser as high as you need; newest ads come first.
Can I filter by platform? Yes: Search, YouTube, Shopping, Maps and Play, alone or combined, the same filter as on the Transparency Center website.
Do I need a Google account, proxy or API key? No. Proxies and retries are built in and included in the price.
Is it legal? The Ads Transparency Center is a public Google service built so anyone can see who advertises. This actor reads that public data.
Something broke? Open an issue on the Issues tab with your input. Fixes usually ship within a day.
Limits
- Most search text ads come as images only (Google's limit).
- Landing pages are rarely available from Google.
- Google keeps detailed date filtering for roughly the last year.
- Brand-name matching is best effort; domains and advertiser IDs are exact.
More from T3 Data
- YouTube Transcripts: full transcripts, SRT and AI-ready chunks for videos, playlists and channels
- YouTube Comments Scraper: comments and replies with likes, pinned and creator-hearted flags
- YouTube Channel & Shorts Scraper: channel info plus every video and Short with exact views, likes and dates
- Google News Scraper: news by keyword, topic or location, with real article URLs and full text
- Google Trends Scraper: interest over time, by region, related queries, and trending now
- Google Hotels Scraper: hotel prices, ratings and booking-site prices for any city and dates
This Actor is an independent tool. It is not affiliated with, endorsed by, or sponsored by Google. It only accesses publicly available data from the Google Ads Transparency Center.