Google Ads Transparency Scraper avatar

Google Ads Transparency Scraper

Pricing

from $20.00 / 1,000 results

Go to Apify Store
Google Ads Transparency Scraper

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

Alkausari M

Maintained by Community

Actor stats

1

Bookmarked

138

Total users

41

Monthly active users

6 days ago

Last modified

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

  1. Go to your Apify Console → find or open this Actor
  2. Click Try for free or Run
  3. Switch to the Input tab
  4. Paste your JSON configuration (see examples below)
  5. Click Start
  6. Monitor progress in the run log
  7. 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 SpeedRecommended Value
Fast (Less Costly)15002000 ms
Slow (Stable)20003500 ms
Very Slow (Higher Cost)35005000 ms

Domain Input Notes

  • Domains are case-insensitiveKars4kids.Org and kars4kids.org are treated identically.
  • Leading www. is stripped before matching, so www.example.com and example.com resolve 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&region=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

FieldDescription
domainThe input domain that was checked.
ads_ever"Yes" if the domain has run Google Ads, "No" if confirmed none, null if the run errored.
adsCountAd count as shown on the site (e.g. "~300K", "1,432"). null if none.
date_of_last_runningWhen the most recent ad was last shown (e.g. "Apr 24, 2026").
type_of_adFormat of the most recent ad (e.g. "Video", "Image", "Text").
ads_linkDirect URL to the domain's ad detail on the Transparency Center.
errorError 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.