Google Ads Transparency Center Scraper - Reliable avatar

Google Ads Transparency Center Scraper - Reliable

Pricing

Pay per event

Go to Apify Store
Google Ads Transparency Center Scraper - Reliable

Google Ads Transparency Center Scraper - Reliable

Scrape Google Ads Transparency Center (Google Ads Library): ads by domain, advertiser name, ID or URL with format, first/last shown, countries, EU impressions, images, YouTube videos. Residential proxy, auto-retries.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Christian Machon

Christian Machon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Get every Google ad an advertiser runs - by domain, advertiser name, advertiser ID or Transparency Center URL - without failed runs. For each ad you get the advertiser, ad ID, format (text / image / video), first and last shown dates, the countries it ran in (with impression ranges in the EU), the creative image, the YouTube video for video ads, and the ad copy where Google provides it as text.

Built for reliability: Google answers automated traffic with "unusual traffic" blocks very quickly. This Actor uses residential IPs, rotates sessions, retries with backoff and switches connection automatically. In our last 50 test runs (2,393 ads, 25+ countries, all formats) 50 of 50 runs succeeded and every run ended with a per-input status report. No run returned an empty dataset without saying why.

What can you use it for?

  • Competitor ad research - see which ads a competitor runs now and since when, in which countries and in which formats.
  • Creative inspiration and swipe files - download ad images and YouTube video links in bulk.
  • Market entry and geo analysis - see where a brand advertises, with EU impression ranges.
  • Agencies and brand safety - monitor a client's or an impersonator's ads on a schedule.
  • Political and regulatory research - collect ads from verified advertisers.
  • AI agents and automations - clean flat JSON for Make, Zapier, n8n, LangChain or the Apify MCP server.

Why this scraper?

This Actor
Blocks / "unusual traffic"Residential IPs by default, a fresh session per block, exponential backoff, automatic fallback (residential -> datacenter -> direct, then cycling back)
Measured reliability50 / 50 test runs succeeded, from 1 ad to 400 ads per run
InputsDomain (nike.com), advertiser name (Netflix), advertiser ID (AR...) or any Transparency Center URL (advertiser, creative or ?domain= search, including its region)
FiltersRegion (any country), format (text / image / video), last-shown date range
Empty resultsNever silent: every input gets a status (SUCCEEDED, PARTIAL, NO_DATA, FAILED) and a reason. When a name doesn't match an advertiser, it falls back to the matching domain (Grammarly -> grammarly.com) or lists the closest advertisers
Honest outputFixed columns on every row. Fields Google doesn't provide are null, never guessed (see "What data you get")
Speed and costPure HTTP, no browser, 256 MB. About 1 s per fully enriched ad, or around 400 ads in 35 s with details off

How to use it

  1. Click Try for free.
  2. Enter one or more search terms: domains, advertiser names, AR... IDs or Transparency Center URLs.
  3. Optionally choose a region, format and date range.
  4. Click Start, then download results as JSON, CSV or Excel, or fetch them via API.

Input example

{
"searchTerms": ["nike.com", "Netflix", "AR16735076323512287233",
"https://adstransparency.google.com/?region=FR&domain=temu.com"],
"region": "DE",
"format": "ALL",
"dateFrom": "2026-09-01",
"maxAdsPerSearch": 100,
"includeAdDetails": true,
"includeCreativeContent": true
}
FieldDescription
searchTermsDomains, advertiser names, advertiser IDs (AR…) or Transparency Center URLs (up to 200). Anything that looks like a domain (including Booking.com) is searched as a domain.
regionCountry code (US, DE, …) or empty for anywhere. A region inside a pasted URL is used for that URL.
formatALL, TEXT, IMAGE or VIDEO.
dateFrom / dateToKeep ads shown within this range (YYYY-MM-DD, inclusive). Results are newest first, so a dateFrom also makes runs faster.
maxAdsPerSearchMaximum ads per search term (default 100).
advertiserNameMatchFor names: best (the matching advertiser with the most ads), all (every advertiser whose name contains the term, up to maxAdvertisersPerName) or exact.
includeAdDetailsPer-ad lookup for countries, regional dates, impressions and all variation images (default on). Turn it off for fast ad lists.
includeCreativeContentLoads the ad preview to get YouTube video IDs and text/shopping ad copy (default on).
proxyConfiguration, proxyFallback, maxRetries, maxConcurrency, failOnNoDataReliability controls. The defaults are good.

What data you get

One row per ad. These fill rates were measured over 1,883 fully enriched ads in our tests:

FieldFilledNotes
advertiserId, advertiserName, creativeId, format, lastShown, adUrl, advertiserUrl100%adUrl opens the ad in the Transparency Center
firstShown~100%ISO timestamp, globally
regionCodes, regionCount, regions[]100% (details on)Each region has its own firstShown/lastShown dates; per-region firstShown is sometimes null
targetDomain~87%Domain the advertiser is verified for/advertises
imageUrl~77%Image ads, text ads archived as images, shopping product images. imageWidth/imageHeight only for archived images
variationImageUrls, variationCount57% / 100%All image variations of the ad
videoId, videoUrl~90% of video adsYouTube video for video ads
headline~24% overallMostly shopping product titles and some responsive search/local ads
description, displayUrl~3%Only for the rare text ads Google stores as text
impressionsMin, impressionsMaxEU/EEA regions onlyGoogle publishes impression ranges only for ads shown in the EU (DSA). null elsewhere
searchInput, searchType, regionFilter, scrapedAtRun metadata

Important, applies to every scraper: Google archives most text (search) ads as an image of the ad, not as text. For those, the ad copy is visible in imageUrl but headline/description are null. We don't OCR or invent text. Dynamic keyword insertion ads may show templates such as {Keyword:Nike sandals} exactly as Google stores them.

Output example

{
"searchInput": "tesla.com", "searchType": "domain", "regionFilter": "DE",
"advertiserId": "AR17828074650563772417", "advertiserName": "Tesla Inc.",
"creativeId": "CR18431297936794058753", "format": "VIDEO",
"firstShown": "2026-07-13T13:27:47.000Z", "lastShown": "2026-10-26T13:19:11.000Z",
"adUrl": "https://adstransparency.google.com/advertiser/AR17828074650563772417/creative/CR18431297936794058753?region=DE",
"targetDomain": "tesla.com",
"videoId": "TOnJMLfOZCs", "videoUrl": "https://www.youtube.com/watch?v=TOnJMLfOZCs",
"headline": null, "variationCount": 3,
"regionCount": 1, "regionCodes": ["DE"],
"regions": [{ "regionCode": "DE", "regionName": "Germany", "firstShown": "2026-07-13", "lastShown": "2026-10-26", "impressionsMin": 15000, "impressionsMax": 20000 }],
"impressionsMin": 15000, "impressionsMax": 20000
}

The Output tab has three views: Overview, Creatives and Reach (regions and impressions).

Run summary

Each run stores a summary in the key-value store record OUTPUT. It includes per-input status, the advertisers that were matched, Google's estimated total ad count, errors, notes (for example "no advertiser named X, searched domain x.com instead"), and connection stats (requests, retries, blocks, the connection that worked). Use it in pipelines to detect partial results.

Pricing

Pay per event, with everything included: details, video IDs, ad copy and residential proxy.

EventPrice
Actor start$0.003 per run
Ad returned$0.0015 per ad (= $1.50 per 1,000 ads)

You pay only for ads that are actually returned. There are no extra fees for details, assets or proxy. Example: 100 ads with full details costs $0.153. Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached.

FAQ

Is it legal? The Ads Transparency Center is a public Google service, and this Actor reads only what is publicly shown there. Make sure your use complies with Google's terms and the laws that apply to you.

Why is the ad text empty for most text ads? Google stores them as images (see above). The imageUrl shows the full ad.

Why no impressions for my US ads? Google publishes impression ranges only for EU/EEA regions.

Can I filter by platform (Search, YouTube, Shopping, Maps)? Not yet. Google's platform filter isn't reliable enough for us to expose honestly.

How do date filters work? An ad is kept if it was shown at any time within your range (its first-to-last-shown period overlaps it).

Name search found the wrong company? Use advertiserNameMatch: "all" to see every candidate, or paste the advertiser ID or URL from the Transparency Center.

Do I need a proxy? No. Residential proxy is used by default and included. You can supply your own proxies.

Limits

  • Up to 10,000 ads per search term (Google's own result paging applies).
  • Impression ranges: EU/EEA only. Ad copy as text: only where Google stores it as text.
  • No platform or political-topic filter. Google's search by advertiser name is fuzzy, so prefer domains or IDs for exact results.