Google Ads Transparency Scraper: Ads by Advertiser or Domain avatar

Google Ads Transparency Scraper: Ads by Advertiser or Domain

Pricing

from $0.80 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper: Ads by Advertiser or Domain

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

T3 Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

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.
⚡ Speed300 ads with details in ~7 seconds; 31 brands and domains (600 ads) in ~25 seconds
📥 InputBrand names, domains (nike.com), advertiser IDs (AR…), or Ads Transparency Center links
📤 OutputOne row per ad: advertiser, format, dates, days shown, image or YouTube video, text (when available), Transparency Center link
🌍 FiltersCountry (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: daysShown reveals the ads that keep running, usually the ones that convert

How to use it

  1. Add brand names, domains, advertiser IDs or Transparency Center links, one per line.
  2. Pick a country (or anywhere), and optionally a format and date range.
  3. 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, errorsByCode and a plain-English message.
  • 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"
}
FieldMeaning
advertiserName, advertiserId, advertiserCountry, advertiserVerifiedWho paid for the ad (verified = Google-verified identity)
creativeId, adUrlThe ad's ID and its page in the Ads Transparency Center
formatTEXT, IMAGE or VIDEO
firstShown, lastShown, daysShownWhen the ad first and last ran, and on how many days
imageUrl, imageWidth, imageHeightThe ad image (for text ads, Google's rendering of the ad)
videoId, videoUrlThe 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, adTextsAd 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)
landingUrlWhere the ad sends people. Google rarely includes it (under 1% of ads in our tests)
imagesAll images found in the preview
domain, matchedByFor domain searches, the domain searched; for name searches, how the name was matched (brandDomain, exactName, closestName)

Cost examples

JobAdsCost
Latest 100 ads for 10 competitors1,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), or client.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)

CodeMeaning
NO_ADSThe advertiser or domain has no ads with these filters (try another region or "anywhere")
ADVERTISER_NOT_FOUNDNo advertiser matches the name or ID
INVALID_INPUTNot a name, domain, advertiser ID or Transparency Center link
INVALID_REGION / INVALID_PLATFORMUnknown 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
BLOCKEDGoogle 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


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.