Google Ads Transparency Scraper
Pricing
from $20.00 / 1,000 results
Google Ads Transparency Scraper
Designed for marketers, researchers, and business intelligence teams, this efficient tool scans a provided list of websites to determine which ones have ever run Google Ads—whether in the past or currently—by leveraging data from the Google Ads Transparency Center.
Pricing
from $20.00 / 1,000 results
Rating
0.0
(0)
Developer
Alkausari M
Maintained by CommunityActor stats
1
Bookmarked
138
Total users
41
Monthly active users
6 days ago
Last modified
Categories
Share
Overview
This Apify Actor quickly checks a list of website domains to determine whether they have ever run Google Ads — either currently active or at any point in the past.
It uses publicly available data from the official Google Ads Transparency Center
→ https://adstransparency.google.com/
Primary use cases
- Competitor advertising intelligence
- Lead generation for digital marketing agencies
- Market & trend analysis
- High-volume domain screening (100,000+ domains possible)
Performance
- Reliable batches of up to 1,000 domains per run
- Scales easily to very large lists via multiple executions
- Built with Playwright for stable browser automation
- Residential proxy support included (strongly recommended for >200 domains)
Key Features
- Batch processing of 1,000 domains per run
- Clear yes/no result + optional metadata per domain
- Ad count, last shown date, ad format, and direct link per domain
- Structured output (JSON, CSV, Excel compatible)
- Automatic retries and error handling
- Optional Apify residential proxies for high success rate
- Compliant with public data access guidelines
How to Run the Actor
- Go to your Apify Console → find or open this Actor
- Click Try for free or Run
- Switch to the Input tab
- Paste your JSON configuration (see examples below)
- Click Start
- Monitor progress in the run log
- When finished → go to Storage → Dataset → download results
Input Configuration
Provide input as a JSON object or paste a list of domains.
Minimal working example
{"domains": ["apple.com","tesla.com","shopify.com","kars4kids.org","columbusfoundation.org"]}
adsPageLoadDelay Tuning Guide
If ad details such as last run date or format are missing from the output, the results page may not have finished rendering before the scraper read it. Increase this value until data is consistently extracted.
| Connection Speed | Recommended Value |
|---|---|
| Fast (Less Costly) | 1500 – 2000 ms |
| Slow (Stable) | 2000 – 3500 ms |
| Very Slow (Higher Cost) | 3500 – 5000 ms |
Domain Input Notes
- Domains are case-insensitive —
Kars4kids.Organdkars4kids.orgare treated identically. - Leading
www.is stripped before matching, sowww.example.comandexample.comresolve to the same entry. - Duplicate domains in the list are processed individually and will produce duplicate rows in the output. Deduplicate your input list beforehand if needed.
- If Google's autocomplete returns no suggestions for a domain, or no suggestion exactly matches the input domain, the domain is recorded as
ads_ever: "No"and processing moves on.
Output
Results are saved to the default Apify Dataset, one record per domain. The dataset can be exported as JSON, CSV, Excel, or XML from the Apify Console.
Example Output
[{"domain": "apple.com","ads_ever": "Yes","adsCount": "~300K","date_of_last_running": "Apr 24, 2026","type_of_ad": "Video","ads_link": "https://adstransparency.google.com/advertiser/AR12345678/creative/CR98765432?authuser=0®ion=anywhere","error": null},{"domain": "unknowndomain.com","ads_ever": "No","adsCount": null,"date_of_last_running": null,"type_of_ad": null,"ads_link": null,"error": null}]
Data Fields
| Field | Description |
|---|---|
domain | The input domain that was checked. |
ads_ever | "Yes" if the domain has run Google Ads, "No" if confirmed none, null if the run errored. |
adsCount | Ad count as shown on the site (e.g. "~300K", "1,432"). null if none. |
date_of_last_running | When the most recent ad was last shown (e.g. "Apr 24, 2026"). |
type_of_ad | Format of the most recent ad (e.g. "Video", "Image", "Text"). |
ads_link | Direct URL to the domain's ad detail on the Transparency Center. |
error | Error message if the domain could not be scraped, otherwise null. |
Pricing / Cost Estimation
This Actor uses Playwright with residential proxies, which means each domain costs approximately 1–3 compute units depending on page load time. A run of 100 domains typically costs $0.50–$1.50.
Use maxDomainsPerRun to test with a small batch first and estimate costs before processing a large list.
FAQ, Disclaimers, and Support
Is this legal?
This Actor scrapes publicly available data from Google Ads Transparency Center, which is a public accountability tool provided by Google. No authentication is required, and no private data is accessed. Always comply with Google's Terms of Service and applicable laws in your jurisdiction.
Why is a domain showing "No" when I know it runs ads?
The Google Ads Transparency Center only shows ads that meet a minimum impressions threshold, and there can be a delay before new ads appear. Try increasing adsPageLoadDelay or running again later.
Why do I need residential proxies?
Google blocks requests from datacenter IPs on this site. Residential proxies make requests look like they come from real users. Apify Residential proxies are included and pre-configured by default.
Found a bug or need a custom solution?
Open an issue in the ../../issues or contact the author. Custom solutions for large-scale or enterprise use cases are available on request.