Google Ads Transparency Scraper: Payer, OCR Text, EU Reach
Pricing
from $1.50 / 1,000 ads
Google Ads Transparency Scraper: Payer, OCR Text, EU Reach
Scrape Google Ads Transparency Center ads for any domain or advertiser: text, image and video ads with dates, archived image, ad text read by OCR, and per ad the payer, EU impressions by country and platform, targeting criteria and topic. Advertiser rows too. From $0.0015 per ad.
Pricing
from $1.50 / 1,000 ads
Rating
0.0
(0)
Developer
Oswaldo Carabano
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Share
Google Ads Transparency Scraper — every Google ad of a domain or advertiser, with the payer and the ad text
Extract ads from the Google Ads Transparency Center for any website or advertiser: text, image and video ads with first and last shown dates, days served, the archived image, the product and merchant of Shopping ads and the ad text itself — headline, display URL and description, read by OCR when Google only publishes the ad as an image. Turn on details and every ad also carries who paid for it, EU impressions by country and by Google platform, the audience selection (targeting criteria) and the topic. Advertiser rows give the legal name, verification, billing country, ad count and DUNS number when published.
$0.0015 per ad. No login, no cookies, no proxy setup — it is all included.
| Use it for | What you get |
|---|---|
| Competitor ad monitoring | every ad a rival runs, when it started, whether it is still live, and only the new ones on each scheduled run |
| Ad copy research | the actual headline and description of search ads, even the 96 % that Google only shows as a picture |
| Agency and media-buyer intelligence | the payer behind each ad — often an agency, not the brand |
| EU / DSA research | impressions ranges per EU country and per platform, and the targeting criteria the advertiser used |
| Brand protection | every advertiser sending traffic to your domain, verified or not |
What actually arrives in a row
Every percentage on this page was measured on 13 Oct 2026 against the live Transparency Center, with its sample size. A field whose fill rate we have not measured is not promised.
Ads (outputType: "ad", n = 2,369 ads across 22 domains in 10 countries):
| Field | Filled | Notes |
|---|---|---|
creativeId, advertiserId, advertiserName, domain, format | 100 % | stable Google IDs |
firstShown, lastShown, daysServed, isActive | 100 % | daysServed is Google's own count of days on air |
advertiserVerified | 100 % | 4.9 % of ads come from unverified advertisers |
archivedImageUrl + imageWidth/imageHeight | 50.4 % | text ads 95.7 %, image 46.3 %, video 6.5 % |
previewContentJsUrl | 49.6 % | Google's preview for HTML5 and video ads |
ad text (ocrText or headline/description) | 94.0 % of text ads | n = 298 text ads in US, ES, BR and PT |
displayUrl | 86.2 % of text ads | |
ocrConfidence | median 92 | p10 84 (n = 276) |
Shopping ads: productTitle, merchantName, productImageUrl | 86.3 % of image ads | n = 117 image ads, nike.com + zara.com in US and ES, 13 Oct 2026 |
locations (store addresses attached to the ad) | 11.7 % of text ads | n = 274 text ads, same sample |
usesKeywordInsertion | 8.4 % of text ads | the headline shows the advertiser's default text |
advertiserMatchesDomain | 100 % of domain searches | true for 62.7 % — legal names often differ from the brand |
Ads with details (outputType: "ad-detail", n = 132 detail pages):
| Field | Filled |
|---|---|
variations (every version of the ad) | 100 % (73.5 % have more than one) |
regions (every country, with first/last day) | 100 % — median 1 country, p90 14, max 129 |
payerName | 78 % — different from the advertiser in 14 of 103 |
audienceSelection (demographics, geography, contextual signals, topics of interest, customer lists — each included/excluded) | 50.8 % |
topicName, topicSource | 50.8 % |
euImpressionsLow/High, euFirstShown/LastShown | 46–50 % (ads shown in the EU) |
euPlatforms (impressions by Google Search, YouTube, Shopping, Maps, Play) | 42.4 % |
Impressions are ranges published by Google under the EU Digital Services Act, so they exist for EU/EEA countries only.
Advertisers (outputType: "advertiser", n = 40): name, disclosedName and
isVerified 100 %, legalName 97.5 %, nameType 92.5 %, billingCountry 100 %,
plus adCount from Google's search and dunsNumber when Google publishes it (rare).
Compared with the other Ads Transparency actors (14 Oct 2026)
Competitors read from each actor's input and dataset schema through the Apify API — not from their READMEs — on 13 Oct 2026 (10 actors, 2,726 users in the last 30 days). Our numbers are measured on 4,344 rows from 50 test runs on Apify on 14 Oct 2026 (50 of 50 succeeded, rows charged = rows delivered in all 50). For competitors we count every declared data field as always filled, which is their best case.
| Market leader (918 users / 30 d) | Best typed output in the market | This actor | |
|---|---|---|---|
| Price per ad | $0.002 | $0.002 | $0.0015 |
| Filled data fields per ad row | at most 13 | at most 21 | 23.5 on average (median 25) |
| Filled data fields per detailed ad row | — | at most 17 | 37.9 on average (median 41) |
| Payer of the ad | — | — | 94 % of detailed ads |
| Ad text (OCR or structured) | — | — | 85 % of all ad rows; 70 % read by OCR in English/Spanish/Portuguese |
| Product title and merchant of Shopping ads | — | — | yes (13 % of all ad rows) |
| EU impressions by country and platform | partial | — | 75 % of detailed ads |
| Audience selection (targeting) | — | — | 80 % of detailed ads |
| Only new ads (monitoring) | yes | — | yes |
| Same ad searched in several regions | — | — | delivered once, deduplicated |
| Charges error or empty rows | — | — | never |
No competitor in the measured set declares a payer field; only one runs OCR and only one exposes audience selection.
Input
{"outputType": "ad","domains": ["nike.com"],"regions": ["US"],"maxResults": 100}
- domains, advertiserIds (
AR+ 20 digits, or an advertiser page URL) and advertiserNames can be combined. A brand name usually maps to several legal entities; every one whose name contains all your words is included (up to 10). - regions: one search runs per region and the same ad is delivered once. Leave it empty to search anywhere. All 244 regions of the Transparency Center are available.
- formats (text, image, video), platforms (Google Search, YouTube, Shopping, Maps, Play) and dateFrom / dateTo narrow the search.
- onlyOwnAdvertiser keeps only ads whose advertiser name contains the domain brand. It is off by default because legal names often differ: zara.com advertises as Industria de Diseño Textil and mercadolibre.com.mx as Deremate.
- onlyNewAds remembers what earlier runs with the same input delivered and returns only new ads — schedule it daily for alerts.
- ocrText (on by default) reads the ad text. ocrAllFormats also reads banners.
- maxResults is a hard cap, split fairly across your queries and regions.
If you leave domains, advertiser IDs and advertiser names empty, the run uses
nike.com as an example, so a test run always returns data.
Output example (one ad)
{"outputType": "ad","creativeId": "CR01338187633339138049","advertiserId": "AR10072600183532683265","advertiserName": "Hubspot, Inc.","advertiserVerified": true,"domain": "hubspot.com","format": "text","firstShown": "2022-06-29","lastShown": "2026-10-13","daysServed": 1527,"isActive": true,"archivedImageUrl": "https://tpc.googlesyndication.com/archive/simgad/3060238887385681912","displayUrl": "www.hubspot.com/","adTextSource": "ocr","ocrText": "Sponsored HubSpot www.hubspot.com/ Free Email Signature Generator Create a free branded email signature for your business or team.","ocrConfidence": 92,"ocrLanguage": "eng","advertiserMatchesDomain": true,"region": "DE","query": "hubspot.com","matchedBy": "domain"}
With outputType: "ad-detail" the same row adds payerName, regions[] (with
impressions and platforms per EU country), euImpressionsLow/High, euPlatforms[],
audienceSelection, topicName and variations[].
Pricing
Pay per event, charged only after a row is delivered:
| Event | Price |
|---|---|
| Ad | $0.0015 |
| Ad with details | $0.004 |
| Advertiser | $0.002 |
| Actor start (platform minimum) | $0.00001 |
1,000 ads cost $1.50, OCR included. Error rows, empty results and anything that could not be delivered are never charged. Within a run the same ad is never delivered or charged twice; across runs, use onlyNewAds to pay only for new ads. If you set a maximum cost for the run, the actor stops cleanly when it is reached.
FAQ
Is the ad text exact? For about 4 % of text ads Google publishes the text as data and
you get it exactly (adTextSource: "content.js", with sitelinks). The rest are images and
the text is read by OCR (adTextSource: "ocr") with a confidence score; median confidence
was 92 out of 100 on 276 ads.
Why are impressions empty for US ads? Google publishes impression ranges only for ads shown in the EU/EEA (Digital Services Act). Dates and countries are published everywhere.
How far back does it go? The Transparency Center keeps about a year of history after an ad last ran.
What if a search finds nothing? You get one error row saying so, the run finishes green
and nothing is charged. Every problem is also listed in the run's ERRORS record.
Do I need a proxy? No. It is included in the price.
Privacy
Advertiser and payer names are published by Google by law. Turn on redactPersonNames
to replace names that look like a private individual with [person]. Phone numbers and
emails inside an ad are kept for companies and redacted when the advertiser looks like a
private person. To ask for data about you to be removed from this actor's outputs, write to
privacy@actorstack.dev.
Disclaimer
This actor reads publicly available data from the Google Ads Transparency Center, with no login, no cookies and no account. It is not affiliated with or endorsed by Google. You are responsible for how you use the data, including compliance with applicable law.