Google Ads Transparency Scraper - Ads, Copy & Regions
Pricing
Pay per event
Google Ads Transparency Scraper - Ads, Copy & Regions
Every Google ad an advertiser runs, from the public Ads Transparency Center. Search by advertiser name, domain or ID; filter by country, format and date. Returns ad copy, images, YouTube video IDs, landing URLs, first/last shown dates and regions. No login or API key.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stephen Psaradellis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Google Ads Transparency Scraper - every ad a competitor runs on Google
Get every Google ad an advertiser is running or has run - Search text ads, display image ads and YouTube video ads - from Google's public Ads Transparency Center. Give it a company name, a website domain or an advertiser ID; get back one clean row per ad with the ad copy, image, YouTube video, landing URL, first and last shown dates and the countries it ran in.
No login, no Google account, no API key, no browser. It reads the same JSON the Transparency Center website loads, so runs are fast (about 1-2 seconds per 100 ads without details) and cheap.
What you can use it for
- Competitor ad research - see every ad a rival has run, which formats they use, how long each ad has been live (long-running ads are the ones that convert), and which countries they target.
- Ad creative swipe files - pull headlines, descriptions, images and YouTube videos for a whole category of advertisers into a spreadsheet.
- Lead generation for agencies - find businesses that are actively spending on Google Ads right now (
lastShown= today) and pitch them. - Brand and trademark monitoring - search by your domain to see every ad that lands on your site, including resellers, affiliates and agencies bidding on your brand.
- Market and political ad research - filter by country and date range; every ad comes with the regions it was shown in.
Input
| Field | What it does |
|---|---|
advertisers (required) | One per line. A domain (shopify.com) returns every ad that lands on that site, whoever paid for it. A name (Nike) is matched to the advertiser with the most ads. An advertiser ID (AR16735076323512287233) or a Transparency Center advertiser URL is read directly. |
region | Two-letter country code (US, GB, DE...) or anywhere (default). |
adFormat | ALL (default), TEXT, IMAGE or VIDEO. |
dateFrom / dateTo | YYYY-MM-DD. Keeps ads that ran at any time inside the range. |
maxAdsPerAdvertiser | Newest first, default 100, up to 10,000. |
includeAdDetails | Default on. Opens each ad for its copy, landing URL, regions and variations. |
Example:
{"advertisers": ["shopify.com", "Nike", "AR04545452743640219649"],"region": "US","adFormat": "ALL","maxAdsPerAdvertiser": 200,"includeAdDetails": true}
Output
One row per ad. Sample (a video ad, details on):
{"query": "shopify.com","queryType": "domain","advertiserId": "AR01625195283841286145","advertiserName": "Shopify Inc.","creativeId": "CR09563301432564645889","format": "VIDEO","firstShown": "2025-12-19","lastShown": "2026-10-14","landingDomain": "shopify.com","adUrl": "https://adstransparency.google.com/advertiser/AR01625195283841286145/creative/CR09563301432564645889","headline": "Time for Shopify","description": "See why millions of businesses start selling with Shopify.","callToAction": "Learn more","displayUrl": "shopify.com","landingUrl": "https://www.shopify.com/es-es/comienza?country=es&lang=en","videoId": "XySb72wRNu8","videoUrl": "https://www.youtube.com/watch?v=XySb72wRNu8","videoDuration": "0:17","channelName": "Shopify","regions": [{"code": "ES", "firstShown": "2025-12-19", "lastShown": "2026-10-14"}],"variationCount": 4}
All fields: query, queryType, advertiserId, advertiserName, creativeId, format, firstShown, lastShown, landingDomain, adUrl, imageUrl, imageWidth, imageHeight, previewUrl, headline, description, longHeadline, callToAction, displayUrl, landingUrl, videoId, videoUrl, videoDuration, channelName, thumbnailUrl, regions, variationCount, variationImageUrls, regionFilter, scrapedAt. Fields Google does not publish for an ad are null.
A RUN_SUMMARY record in the key-value store lists, per advertiser, the advertiser it resolved to, Google's own estimate of how many ads match your filters, how many were saved, and the events charged.
Pricing
Pay only for what you get - no monthly rental, no start fee:
| Event | Price |
|---|---|
| Advertiser resolved (per input entry) | $0.002 |
| Ad saved | $0.0012 |
| Ad details (copy, regions, landing URL) | $0.0018 |
1,000 ads with full details cost about $3.00; without details about $1.20. The run stops by itself before it would cross the maximum charge you set for the run.
FAQ
Why do some text ads have no headline? Google archives many older Search ads only as a rendered image. For those the row has the imageUrl of the ad (the text is in the image) but no separate headline field.
Does a name always find the right company? Names are matched without punctuation or suffixes ("Nike" = "Nike, Inc."), and the match with the most ads wins. For an exact advertiser, paste its AR... ID or Transparency Center URL, or use its domain.
Do I need proxies? No. If Google starts rate-limiting, the actor backs off and switches to Apify Proxy by itself.
Is this legal? The Ads Transparency Center is published by Google so that anyone can see who is advertising and what. This actor reads only that public data, at a polite rate, and collects no personal data.
Related
From the same developer: Website Contact & Lead Enricher (owner emails, tech stack and email DNS per domain) - pair it with this actor to turn active advertisers into leads.