Google Ads Transparency & Ad Library Scraper - Competitor Ads
Pricing
from $1.50 / 1,000 ad results
Google Ads Transparency & Ad Library Scraper - Competitor Ads
Scrape the Google Ads Transparency Center (Google Ad Library) by brand, domain or advertiser ID. Get every Search, image and YouTube ad a competitor runs, with ad copy, run dates, countries and daily new/stopped-ad alerts. $1.50 per 1,000 ads.
Pricing
from $1.50 / 1,000 ad results
Rating
0.0
(0)
Developer
Kendall Sorenson
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Share
Google Ads Transparency Center Scraper & Google Ad Library API
Scrape every Google ad a competitor runs (Search/text, image and YouTube/video) from the public Google Ads Transparency Center, also called the Google Ad Library. Enter brand names, website domains or advertiser IDs and get clean JSON, CSV or Excel. Each ad comes with its format, first and last shown dates, days running, image preview, text-ad copy and per-country details. Schedule it to get new and stopped ad alerts. There's no official Google Ads Transparency Center API; this Actor works as one.
Try it: the prefilled input (HubSpot, nike.com, 50 ads each) finishes in under 20 seconds for less than $0.20.
Why use this Google Ads Transparency scraper
- Search by brand name, domain or
AR…advertiser ID, with a match-quality score so you know you got the right company. - Text-ad copy (headline, display URL, description) when Google serves it.
- Change tracking: daily
NEW_AD/STOPPED_ADalerts for ad spy monitoring. - EU impression ranges and per-country last-shown dates.
- Pay-per-result pricing, with proxies included: $1.50 per 1,000 ads.
What you can do with it
- Competitor ads research: see every creative a rival is running right now and how long each has run (long-running ads are usually the winners).
- Ad spy monitoring: schedule it daily with
previousRunDatasetIdto getNEW_AD/STOPPED_ADalerts. - Agency pitches and audits: export a brand's full Google ad library in one click.
- Market and regional analysis: filter by country and format.
Input
| Field | What it does |
|---|---|
queries | Brand names (HubSpot) or domains (nike.com). Names are fuzzy-matched; see matchQuality in the summary. |
advertiserIds | Exact AR… IDs (most precise). |
region | Country filter (US, GB, DE, …) or anywhere. |
format | ALL, TEXT, IMAGE, VIDEO. |
dateFrom / dateTo | Keep ads active in this window. |
maxAdsPerAdvertiser | Cap per advertiser (newest first). |
extractAdText | Pull headline / display URL / description for text ads (when Google serves an HTML preview). |
includeRegionDetails | Per-country last-shown dates and EU impression ranges (one extra lookup per ad). |
previousRunDatasetId | Turns on change tracking against an earlier run. |
How to use the Google Ads Transparency Center scraper
- Enter one or more competitors under Advertiser names or domains (e.g.
nike.com,HubSpot), or pasteAR…advertiser IDs. - Optionally choose a Region, an Ad format and a date window.
- Click Start. A 2-advertiser, 50-ad run finishes in about 10–20 seconds and costs under $0.20.
- Download the Ads, Advertiser summaries and Changes views as JSON, CSV or Excel, or pull them through the API.
- Ad spy mode: schedule a daily run and set
previousRunDatasetIdto the previous run's dataset to get only NEW_AD / STOPPED_AD alerts. You can push those alerts to Slack, Google Sheets or email with Apify integrations (Zapier, Make, n8n).
Use it from AI agents (MCP)
This Actor works with the Apify MCP server. Ask your agent, for example: "Find all Google ads Nike ran in Germany this month." The agent can search for this Actor, read its input schema and call it, with a spending cap set through maxTotalChargeUsd.
FAQ
Is scraping the Google Ads Transparency Center legal? The Transparency Center is a public library that Google publishes so anyone can inspect ads. This Actor only collects that public information. Check your local rules for how you use the data.
How much does it cost? $1.50 per 1,000 ads, $0.01 per advertiser summary and $0.005 per change alert. Proxies and compute are included.
Why does a name return the wrong company? Brand names are ambiguous. Use the domain (canva.com) or the AR… ID from the advertiser's Transparency Center URL.
Can I get impressions and spend? Google publishes impression ranges only for ads shown in the EU. Turn on Include per-region details to get them.
Something broke? Open an issue on the Issues tab. We monitor it daily.
Output
The dataset holds three record types (type field), each with its own view: Ads, Advertiser summaries and Changes.
Example ad:
{"type": "ad","advertiserId": "AR16735076323512287233","advertiserName": "Nike, Inc.","creativeId": "CR06830598236735012865","format": "TEXT","firstShown": "2023-11-16","lastShown": "2026-10-30","daysShown": 911,"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/2387327144059582008","previewUrl": null,"adText": null,"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR06830598236735012865","regions": [{ "region": "US", "regionGeoId": 2840, "lastShown": "2026-10-30", "impressionsMin": null, "impressionsMax": null }],"variantCount": 5,"query": "nike.com","region": "US","scrapedAt": "2026-10-30T21:25:42.434Z"}
Text ads with an HTML preview get adText, e.g. {"headline":"CRM for MedTech","displayUrl":"www.salesforce.com/","description":"Manage commercial processes, build provider relationships, and engage with patients."}.
Advertiser summary fields: totalAdsEstimate (Google's range), adsScraped, adsByFormat, activeLast48h, newestFirstShown, longestRunning (top 5), newAds, stoppedAds, matchQuality, alternativeAdvertisers.
Notes and limits
- Impression ranges exist only for ads shown in the EU (Google publishes them only there).
- Many text ads are archived as rendered images. For those,
imageUrlis set andadTextis empty. stoppedAdsis reported only when the advertiser's full list was scraped (it is not capped bymaxAdsPerAdvertiser).- Uses residential proxies with automatic session rotation and retries.
Pricing
Pay per result: $1.50 per 1,000 ads, $0.01 per advertiser summary and $0.005 per change alert.
Code examples (Python, Node.js, API)
Ready-to-run scripts, including a daily new-ads alert, are on GitHub: https://github.com/kendallcoding202/google-ads-transparency-api-examples.
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("crunchy_galaxy_qcr/google-ads-transparency-scraper").call(run_input={"queries": ["nike.com"], "region": "US", "maxAdsPerAdvertiser": 50})for ad in client.dataset(run["defaultDatasetId"]).iterate_items():print(ad.get("format"), ad.get("firstShown"), ad.get("adUrl"))
Related
- AI Brand Visibility Tracker: see whether ChatGPT and Gemini recommend your competitors instead of you.