Google Ads Transparency Scraper: Payer, OCR Text, EU Reach avatar

Google Ads Transparency Scraper: Payer, OCR Text, EU Reach

Pricing

from $1.50 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper: Payer, OCR Text, EU Reach

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

Oswaldo Carabano

Maintained by Community

Actor 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 forWhat you get
Competitor ad monitoringevery ad a rival runs, when it started, whether it is still live, and only the new ones on each scheduled run
Ad copy researchthe actual headline and description of search ads, even the 96 % that Google only shows as a picture
Agency and media-buyer intelligencethe payer behind each ad — often an agency, not the brand
EU / DSA researchimpressions ranges per EU country and per platform, and the targeting criteria the advertiser used
Brand protectionevery 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):

FieldFilledNotes
creativeId, advertiserId, advertiserName, domain, format100 %stable Google IDs
firstShown, lastShown, daysServed, isActive100 %daysServed is Google's own count of days on air
advertiserVerified100 %4.9 % of ads come from unverified advertisers
archivedImageUrl + imageWidth/imageHeight50.4 %text ads 95.7 %, image 46.3 %, video 6.5 %
previewContentJsUrl49.6 %Google's preview for HTML5 and video ads
ad text (ocrText or headline/description)94.0 % of text adsn = 298 text ads in US, ES, BR and PT
displayUrl86.2 % of text ads
ocrConfidencemedian 92p10 84 (n = 276)
Shopping ads: productTitle, merchantName, productImageUrl86.3 % of image adsn = 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 adsn = 274 text ads, same sample
usesKeywordInsertion8.4 % of text adsthe headline shows the advertiser's default text
advertiserMatchesDomain100 % of domain searchestrue for 62.7 % — legal names often differ from the brand

Ads with details (outputType: "ad-detail", n = 132 detail pages):

FieldFilled
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
payerName78 % — different from the advertiser in 14 of 103
audienceSelection (demographics, geography, contextual signals, topics of interest, customer lists — each included/excluded)50.8 %
topicName, topicSource50.8 %
euImpressionsLow/High, euFirstShown/LastShown46–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 marketThis actor
Price per ad$0.002$0.002$0.0015
Filled data fields per ad rowat most 13at most 2123.5 on average (median 25)
Filled data fields per detailed ad row—at most 1737.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 platformpartial—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:

EventPrice
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.