Google Ads Scraper — Ads Transparency by Domain or Advertiser avatar

Google Ads Scraper — Ads Transparency by Domain or Advertiser

Pricing

from $0.60 / 1,000 ad results

Go to Apify Store
Google Ads Scraper — Ads Transparency by Domain or Advertiser

Google Ads Scraper — Ads Transparency by Domain or Advertiser

Google Ads scraper for competitor research: every Search, YouTube, Display and Shopping ad a domain or advertiser runs, read from the public Google Ads Transparency Center. Format, first/last shown, regions, impressions, ad copy, images, video. $0.60 per 1,000 ads.

Pricing

from $0.60 / 1,000 ad results

Rating

0.0

(0)

Developer

ActorForge

ActorForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Google Ads scraper for competitor research: every Search, YouTube, Display and Shopping ad a domain or advertiser runs, read from the public Google Ads Transparency Center. Format, first/last shown, regions, impressions, ad copy, images, video. $0.60 per 1,000 ads.

A Google Ads scraper for competitor research: give it a competitor's domain (nike.com), an advertiser name (HubSpot) or a Google advertiser ID, and get one clean row for every ad Google lists for them: Search (text), YouTube (video), Display and Shopping (image) ads. Each row has the advertiser (company name, ID, country), creative ID, format, first and last shown dates, days running, countries, impression ranges, best-effort ad copy (headline and description), image and video URLs, landing domain and a link to the ad's public page. Filter by country, date range and format.

Where the data comes from: the public Google Ads Transparency Center (adstransparency.google.com), Google's own ad library. It is the same source every "Google Ads Scraper" on the Store reads. It is not a scraper of live Google search results pages: it shows which ads an advertiser runs and where, not the ad positions for a keyword.

Monitor competitors' new ads: switch on Only new ads since the last run, schedule it daily, and each run returns just the ads that appeared since the previous run. Already-seen ads are skipped and never charged.

Honest and polite by design: plain HTTP with an honest user agent naming this actor, no browser imitation, no proxy rotation, at most 2 requests at a time. If Google answers with a CAPTCHA or its "unusual traffic" page, the run stops at once, keeps the ads already delivered, and charges nothing for blocked requests. If that happens before any ad is delivered, the dataset gets one free status row saying so ("Google temporarily rate-limited; no ads delivered, nothing charged").

$0.60 per 1,000 ads, about a third of the leading Google Ads scrapers ($1.48 to $1.90 per 1,000). 256 MB, no browser.

What data does it return?

Every run outputs clean, schema-validated rows like these:

advertiserNameformatfirstShownlastShownregionslandingDomainpreviewUrl
Nike, Inc.text2022-11-302026-10-19USnike.comhttps://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR00144196208338927617
INITIATIVE MEDIA B.V.video2023-10-172026-10-19FR, BE, DE, IT, ES, …nike.comhttps://adstransparency.google.com/advertiser/AR11154049584043393025/creative/CR03397377851928870913
Hubspot, Inc.text2025-11-032026-10-19US, DE, FR, IN, BR, …hubspot.comhttps://adstransparency.google.com/advertiser/AR10072600183532683265/creative/…
Argos Limitedtext2025-…2026-10-19GBargos.co.ukhttps://adstransparency.google.com/advertiser/AR08556219150266007553/creative/CR07375270183734083585

How much does it cost?

Transparent pay-per-event pricing — you only pay for what you get, and the actor always respects your run budget: set a maximum total charge and it stops cleanly at the cap instead of overrunning.

EventPriceChargedWorked example
ad-result$0.0006per ad delivered100 ads = $0.06; 1,000 ads = $0.60; a daily monitor returning ~20 new ads = $0.012 a day
ad-detail$0.001per ad, only when 'Include ad details' is on (one extra lookup: regions, impressions, ad copy)100 ads with details = $0.06 + $0.10 = $0.16
apify-actor-start$0.00005per run per GB of memory (platform start fee)One run at 256 MB = $0.0000125

Input options

FieldTypeRequiredDefaultDescription
domainsarrayno—Competitor websites, e.g. nike.com. Returns the ads Google lists for that domain in the Ads Transparency Center (Search, YouTube, Display and Shopping), from the brand itself and from agencies or resellers advertising it.
advertiserNamesarrayno[]Company names as shown in the Ads Transparency Center, e.g. HubSpot, Argos Limited. Exact name matches are used (a brand's several legal entities are all kept); otherwise the closest advertiser with the most ads.
advertiserIdsarrayno[]Google advertiser IDs (AR… from an adstransparency.google.com/advertiser/AR… link).
regionsarrayno[]Only ads shown in these countries, as two-letter codes (US, GB, DE, FR…). Empty = anywhere.
dateFromstringno—Only ads shown on or after this date (YYYY-MM-DD).
dateTostringno—Only ads shown on or before this date (YYYY-MM-DD).
formatsarrayno[]Only these formats. Empty = all formats (text covers Search ads; image and video cover Display, YouTube and Shopping creatives).
maxAdsPerAdvertiserintegerno100How many ads to read for each domain, advertiser name or advertiser ID, newest first as the Transparency Center lists them.
maxResultsintegerno1000Stop after this many ads across all searches. You pay per ad delivered ($0.60 per 1,000).
includeDetailsbooleannofalseOne extra lookup per ad: countries shown, impression ranges and first/last shown per country, plus best-effort headline/description text. Charged as ad-detail ($1 per 1,000).
onlyNewSinceLastRunbooleannofalseRemember every ad delivered in a named key-value store (ads-seen-<monitor name>) and return only ads not seen before. Schedule the actor daily to get a feed of competitors' new ads; already-seen ads are skipped and never charged.
monitorNamestringno"default"Name of the seen-ads memory used by 'Only new ads'. Use one name per schedule (e.g. uk-competitors) so separate watch lists don't share state.
proxyConfigurationobjectno{"useApifyProxy":false}Not needed: the Transparency Center is public. Leave off unless you have your own reason to route requests through a proxy. The actor never rotates proxies to get around a block.

Limits & honest notes

  • Source: the public Google Ads Transparency Center only. This actor does not scrape live Google search results pages (no keyword ad positions, no SERP ads) and does not use the Google Ads API (no spend, clicks or keywords).
  • No CAPTCHA solving and no protection bypass. If Google serves a CAPTCHA or its "unusual traffic" page (or keeps answering 429/403), the run stops at once, keeps the ads already delivered, and says so in the status message and RUN_SUMMARY. Blocked requests are never charged; a run stopped before any ad is delivered returns one free status row. Google can do this to automated traffic from busy IP ranges, so re-run later.
  • Requests use an honest user agent naming this actor, with no browser imitation and no proxy rotation. You can set your own proxy for your own reasons; the default is none. Data comes from the same keyless JSON calls the public Transparency Center page makes (its robots.txt has no rules), paced at most 2 at a time, 0.8-2 s apart, with backoff on errors.
  • Ad copy (headline/description) needs 'Include ad details' and is best-effort: many Google text ads are published only as a rendered snapshot image (returned as previewImageUrl), and image ads have no text.
  • There is no ad-text keyword search in the Transparency Center: search by domain, advertiser name or advertiser ID. A domain search returns ads from every advertiser that advertises that domain (agencies and resellers included).
  • Advertiser country is filled for advertiser-name searches (from Google's advertiser search); domain and ID searches leave it empty.
  • Advertisers are businesses. Where Google lists a verified individual as the advertiser, only the name Google itself publishes is returned. No other personal data is collected.
  • 'Max ads per domain / advertiser' counts ads read, newest first, so a daily monitor stays fast and cheap. Already-seen ads (monitoring), filtered-out formats and errors are never charged.
  • Respects your run budget: set a maximum total charge and the actor stops cleanly at the cap.

Changelog

  • 2026-10-22 — Initial release as a separate Google Ads Scraper listing over the Ads Transparency actor: search by domain, advertiser name or ID; region, date and format filters; ad details; only-new-ads monitoring; hard stop on CAPTCHA with a free status row when no ads are delivered.

Built and maintained by ActorForge. Reliability first: every actor in the portfolio is monitored by an automated nightly self-test, and breakages are typically fixed the same day.