Google Ads Library & Transparency Center Scraper
Pricing
from $1.99 / 1,000 ads
Google Ads Library & Transparency Center Scraper
See every ad your competitors run on Google. Ads Library & Transparency Center scraper, no API key, 30 ads in about 8 s: text, image and video ads for any brand or domain, with first and last shown dates, variations, impressions and regions. Only-new mode. $1.99 per 1,000 ads.
Pricing
from $1.99 / 1,000 ads
Rating
0.0
(0)
Developer
Quiet Harvest
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
This Google Ads Transparency Center scraper pulls the ads a brand or domain runs on Google (text, image, video). No API key, no login.
$1.99 per 1,000 ads. Details add $1.00 per 1,000.
Quick start
Runs as-is with this input (the same input Apify tests daily):
{"queries": ["nike.com"]}
Main output fields: advertiser_name, format, first_shown, last_shown, domain, image_url, ad_url, impressions_max, region_count.
Price: Ad: $1.99 per 1,000; Ad details: $1 per 1,000. Pay only for results delivered.
Run it from code and get the results in one call: POST https://api.apify.com/v2/acts/reportable_broth~google-ads-transparency-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN with the input above as the JSON body.
What does the Google Ads Transparency Scraper do?
- Search by brand name, domain, advertiser ID (
AR...) or a Transparency Center URL. Filter by country, format and date. - Each ad has first and last shown dates, the domain it points to and an image of the ad.
- With details on: every variation of the creative, the impressions range, and the countries it ran in.
- Only-new mode remembers what you already got, so a scheduled run only returns ads a competitor just launched.
- Google shows a captcha after a few dozen requests per IP, so each page and retry uses a fresh residential IP.
How do I use it?
- Click Try for free. You need a free Apify account.
- Type a brand or domain under Brands or domains, e.g.
nike.com. Set a region if you only want one country. - Click Start.
- Wait. 30 ads take about 8 seconds.
- Open the Output tab and download the ads as JSON, CSV or Excel.
What can I use it for?
- See what a competitor is running on Google right now, and since when.
- Spot ads that have run for months. If a brand keeps paying for an ad that long, it's probably working.
- Check a list of domains to see which companies advertise on Google in a country.
- Collect ad images for a swipe file or creative research.
- Find out when a competitor launches something new (schedule + only-new mode).
Examples
{ "queries": ["nike.com"], "region": "US", "maxAdsPerSearch": 200 }
Watch an advertiser for new ads (run it on a schedule):
{ "advertiserIds": ["AR18378488041124659201"], "includeDetails": true, "onlyNewAds": true }
Input
| Field | Default | |
|---|---|---|
queries | Brand names or domains. Anything that looks like a domain is searched as one | |
domains | [] | Exact domains, all advertisers pointing there |
advertiserIds | [] | IDs starting with AR |
startUrls | [] | Pages from adstransparency.google.com |
region | ANYWHERE | Country code, e.g. US, GB, JP |
adFormat | ALL | TEXT, IMAGE, VIDEO |
startDate, endDate | YYYY-MM-DD. Keeps ads running at any point in the range | |
maxAdsPerSearch | 100 | Per target, up to 10,000 |
maxAdvertisersPerQuery | 3 | Accounts per brand name (best matches first), up to 20 |
includeDetails | false | One extra request per ad |
onlyNewAds | false | Skip ads returned in earlier runs with the same input |
monitorStoreName | Store for onlyNewAds. Empty = default | |
proxyConfiguration | residential | Keep residential |
concurrency | 5 | Parallel detail requests |
What data do I get?
One row per ad:
{"advertiser_id": "AR18378488041124659201", "advertiser_name": "Nike Retail BV","creative_id": "CR04918732594763268097", "format": "TEXT","first_shown": "2025-10-24T10:57:39Z", "last_shown": "2026-09-24T06:29:44Z","domain": "nike.com","image_url": "https://tpc.googlesyndication.com/archive/simgad/4025281590245195688","ad_url": "https://adstransparency.google.com/advertiser/AR18378488041124659201/creative/CR04918732594763268097?region=anywhere","impressions_min": 300000, "impressions_max": 350000, "region_count": 17,"regions": [{ "region": "PL", "impressions_min": 300000, "impressions_max": 350000, "first_shown": "2025-10-24", "last_shown": "2026-09-23" }]}
Also included: preview_url, and with details on variation_count, variations. ad_url opens the ad on Google's own site if you want to check it.
Limits
- Impressions are ranges, and Google only publishes them for ads shown in the EU. A US-only ad has dates and regions but no impressions. In a 120-ad sample for nike.com in the US, 10 had them.
- Big brands run several advertiser accounts. If some are missing, raise
maxAdvertisersPerQueryor search the domain. - Text ads come as images. That's how Google stores them.
How much does it cost?
$1.99 per 1,000 ads, plus $1.00 per 1,000 with includeDetails. There's no separate compute bill on top.
Example: 10 competitors, 100 ads each, is 1,000 ads. That's $1.99, or $2.99 with details. Apify's free plan gives you $5 of credit a month, which covers about 2,500 ads without details.
With onlyNewAds on, ads you already got are dropped before charging, so a weekly check only costs what's new.
Scheduling it
Save your input as a Task, add a Schedule (daily or weekly is plenty) and turn on onlyNewAds. Send the results to Slack, Google Sheets, Make, Zapier or n8n, or call it from the Apify API or MCP.
FAQ
Do I need a Google account or API key? No. It reads the public Transparency Center, the same pages you'd see in a browser.
Should I search a brand name, a domain or an advertiser ID?
A domain is the simplest and catches every account pointing at that site. A brand name gets matched to advertiser accounts, so a common word can pick up the wrong one. An AR ID is exact, use it once you know which account you want.
Why do most ads have no impressions? Google only publishes impressions for ads shown in the EU. There's nothing to scrape for the rest.
Will I pay again for ads I already got?
Not with onlyNewAds on. It remembers up to 100,000 ad IDs per set of targets, format and region.
Other scrapers I made
Found a bug or need a field? Open an issue on the Issues tab.
Only collects public data from Google's Ads Transparency Center. You're responsible for how you use it (Google's terms, local law).