Google Ads Transparency Scraper
Pricing
Pay per event
Google Ads Transparency Scraper
Built to beat Google Ads Transparency Center Scraper & API: on the same 17 queries (Oct 2026) it matched 8 of 8 brands to the right company (theirs 3 of 8), reads text-ad copy from Google's pictures, and adds landing pages and EU impressions, at under half the cost. From $1 per 1,000 ads.
Pricing
Pay per event
Rating
0.0
(0)
Developer
TidyHarvest
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Ads Transparency Scraper: Ads, Copy, Landing Pages and Reach
Get every ad a company runs on Google (Search, YouTube, Shopping, Maps, Play) from the Google Ads Transparency Center. Search by brand name, website, advertiser ID or a link copied from the site. Each ad comes back with its format, first and last shown dates, days live, every variation, the countries it ran in, and, where Google exposes them, the headline, description, call to action, landing page and YouTube video. EU countries add impressions per country and per platform and the audience criteria the advertiser used.
Type a brand, get the brand. "Temu", "Shein" and "Ford" advertise under other legal names (ELEMENTARY INNOVATION, Roadget, Ford Motor Company). This actor returns the company that actually runs the brand's ads, tells you which account it matched, and lists the runners-up.
No login or API key. $1.00 per 1,000 ads, $1.80 with full details. Queries with no ads get a free row that says so.
Compared with Google Ads Transparency Center Scraper & API
We built this to beat Google Ads Transparency Center Scraper & API
(scrapesage/google-ads-transparency-scraper), the most-used Transparency Center actor on Apify Store. On
October 16, 2026 we ran both on the same 17 queries (8 brand names, 4 company websites, 4 small businesses, 1 ad
link), 10 ads each, all regions, theirs with includeDetails on and one advertiser per name.
| This actor | Google Ads Transparency Center Scraper & API | |
|---|---|---|
| Brand names matched to the right company | 8 of 8 | 3 of 8 (Temu, Shein, Natura, Ford and Mercado Libre returned other companies' ads) |
| Headline / landing page / YouTube id, where Google shows them | yes | not returned |
| Text-ad headline and description (Google keeps most text ads only as a picture) | read from the picture: 103 of 103 text ads in this test | not returned |
| Copy of each ad image you keep | yes (option) | not offered |
| Impressions per country and platform (EU) | yes | not returned |
| Advertiser country, legal name, verified | yes | not returned |
| Queries with no ads | a free row saying so | nothing |
| Run time | 104 s | 266 s |
| What the test cost, details on | $0.25 (141 ads) | $0.65 (141 ads) |
Why the cost differs: their card says $0.002 per ad plus $0.003 per ad for details (no cheaper tiers), which came to $4.62 per 1,000 ads in our test. This actor charges $1.00 per 1,000 ads plus $0.80 per 1,000 for details ($1.80 in all), with discounts on higher Apify plans. With details off on both, it is $1.00 against their $2.00.
Where it still does more: an "advertisers" mode that returns one row per advertiser (we put the site's ad count on every row and answer every company with a row instead), up to 5 advertisers per name (we return the best match and list the runners-up), several platforms per run, URL import from a file, and an optional raw-data dump.
How well it works
Measured in October 2026 on 88 real queries, the way people use it: 32 small-business websites from Google Maps in 8 countries, 30 SaaS and retail sites (US, UK, Germany, France, Brazil, India, Japan, Mexico, Canada, Australia), 20 brand names typed plainly ("Nike", "Temu", "Mercado Libre") and 6 ids and links copied from the site.
- Every brand name matched the brand's own advertiser: 20 of 20. Our previous version got 9 of 20 right.
- Every ad label matches the site (Text / Image / Video), and every query gets an answer: the 18 with no
ads return a free
no_adsrow. - All ads up to your cap (5,645 of 5,645 asked for), each with the countries it ran in and dates, and the advertiser's country, legal name and verification.
- YouTube video id on 81% of video ads (836 of 1,028).
- Text ads' words, even when Google keeps only a picture of the ad. With Read text from ad images on, every text ad
in our test came back with its headline (103 of 103), and on 43 ads we checked by eye against the picture the headline
was right on 42 (98%) and the description on 34 of 35 (97%), in English, German, French, Spanish and Portuguese ads.
Image ads add every word in the picture (
imageText). - Impressions per country and platform on 29% of ads (Google publishes them for EU countries).
- About 0.4 s per ad with details (100 ads in under a minute); turn details off for a plain list in seconds.
What you can do with it
- Competitor ad research: what a rival runs, on which platforms and countries, since when, with the copy and landing pages of their video and HTML ads.
- Does this company advertise on Google? Put a list of company names or websites in, set Max ads per query to 1,
and every company gets a row: an ad carrying the site's total ad count (
siteAdsMin/siteAdsMax), or a freeno_ads/not_foundrow. - Brand protection: search your own domain to see other advertisers whose ads point to your site.
- Monitoring: schedule a daily run with Only new ads on; you get (and pay for) only ads it hasn't seen before.
- EU reach research: impressions per country and per platform, from Google's own EU disclosures.
Input
| Field | What it does |
|---|---|
queries | Brand names (Nike), websites (nike.com: every ad pointing to it), advertiser ids (AR...), or links copied from adstransparency.google.com (advertiser page, single ad, or domain search; the link's region is used). |
region | Only ads shown in one country; all 243 regions the site offers. Empty = anywhere. |
format | all, text, image or video (the site's own labels). |
platform | all, search, youtube, shopping, maps or play. |
startDate / endDate | YYYY-MM-DD; keeps ads that ran at any point in the window. |
includeDetails | On by default: copy, landing page, video, variations, countries, impressions, audience. Off = a faster plain list. |
readAdText | Read the headline, description and display URL of text ads from Google's picture of the ad, and every word in image ads (imageText). Tip: run with 4096 MB memory for about 1 s per ad. |
saveImages | Keep a copy of each ad's picture in the run's storage (imageCopyUrl), so it survives Google's link expiring. |
keywords | Keep only ads whose advertiser, domain or copy contains one of these. |
onlyNewAds + monitorName | Return and bill only ads not returned before under this monitor name. |
maxItemsPerQuery | Ads per query (default 100). Big brands have tens of thousands. |
maxItems | Exact cap for the whole run, and so for your cost. |
includeEmptyResults | Free no_ads / not_found / error row per query that returned no ads (on by default). |
Example:
{ "queries": ["Temu", "allbirds.com"], "region": "DE", "format": "video", "maxItemsPerQuery": 50 }
Output
One row per ad (a real row from the October 2026 test, trimmed):
{"status": "ok","query": "https://adstransparency.google.com/advertiser/AR10072600183532683265/creative/CR14397395383158308865?region=US","creativeId": "CR14397395383158308865","advertiserId": "AR10072600183532683265","advertiserName": "Hubspot, Inc.","advertiserCountry": "US", "advertiserLegalName": "Hubspot, Inc.", "advertiserVerified": true,"format": "video","lastShown": "2026-10-17","headline": "Follow up faster. Close more deals.","longHeadline": "Everything your team needs to grow. Get started free with HubSpot Smart CRM.","description": "Get the context to close the deal. HubSpot keeps track of all your contact history.","callToAction": "Sign up","displayUrl": "hubspot.com","destinationUrl": "https://www.hubspot.com/crm/e010a", "landingDomain": "hubspot.com","videoId": "O_kS-H6v-s8", "youtubeUrl": "https://www.youtube.com/watch?v=O_kS-H6v-s8","videoDuration": "0:16", "youtubeChannel": "HubSpot Ads","variationCount": 4,"regionsShown": ["CA", "US"],"siteAdsMin": 1, "siteAdsMax": 1,"copyAvailable": "text", "copySource": "preview","url": "https://adstransparency.google.com/advertiser/AR10072600183532683265/creative/CR14397395383158308865"}
In EU countries regionStats also carries impressions, e.g. another HubSpot video ad in France:
{"region": "FR", "firstShown": "2025-09-11", "lastShown": "2026-10-16", "impressionsMin": 250000, "impressionsMax": 300000, "platforms": [{"platform": "youtube", "impressionsMin": 250000, "impressionsMax": 300000}]}.
A query with no ads adds one free row: {"query": "theplantguys.com", "status": "no_ads", "message": "..."}.
The run's SUMMARY record lists, per query, how it was read, the matched advertiser and runners-up, and the site's own
ad count (siteAdsMin / siteAdsMax).
Pricing
Pay per event, discounted on higher Apify plans:
| Event | Free plan price |
|---|---|
| Ad returned | $1.00 per 1,000 |
| Ad details (copy, landing page, countries, impressions, variations, audience) | $0.80 per 1,000 |
| Text read from an ad picture (only ads where words were read) | $1.00 per 1,000 |
| Ad image saved | $2.00 per 1,000 |
Rows for queries with no ads are free. maxItems caps the ads, and so the cost, exactly. |
Notes and limits
- Where the copy comes from. Video and HTML ads come with headline, description, landing page and video id where
Google shows them. Google keeps most text and image ads only as pictures (
imageUrl/imageUrls): turn on Read text from ad images to get their words (copySource: "image"). A few archives are blank layouts with placeholders; those saycopyAvailable: "template only". Local ads also list their storelocations, andkeywordInsertion: truemarks headlines that change with the searcher's keyword (the default text is shown). - Impressions are published by Google for EU countries (and political ads) only; elsewhere they are empty.
- The platform filter covers ads shown since September 4, 2023 (Google's own limit).
- Domain queries return ads from every advertiser pointing to that site (agencies, retailers), exactly as the site does.
Is it legal?
It reads the public Google Ads Transparency Center: the same ads anyone can open in a browser without logging in. It needs no account, solves no CAPTCHA and gets around no paywall. The data is advertisers' own published ads, with no personal profiles. Ad creatives belong to the advertisers, so check your own reuse of them against your local law.