Google Ads Scraper — Ads Transparency by Domain or Advertiser
Pricing
from $0.60 / 1,000 ad results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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:
| advertiserName | format | firstShown | lastShown | regions | landingDomain | previewUrl |
|---|---|---|---|---|---|---|
| Nike, Inc. | text | 2022-11-30 | 2026-10-19 | US | nike.com | https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR00144196208338927617 |
| INITIATIVE MEDIA B.V. | video | 2023-10-17 | 2026-10-19 | FR, BE, DE, IT, ES, … | nike.com | https://adstransparency.google.com/advertiser/AR11154049584043393025/creative/CR03397377851928870913 |
| Hubspot, Inc. | text | 2025-11-03 | 2026-10-19 | US, DE, FR, IN, BR, … | hubspot.com | https://adstransparency.google.com/advertiser/AR10072600183532683265/creative/… |
| Argos Limited | text | 2025-… | 2026-10-19 | GB | argos.co.uk | https://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.
| Event | Price | Charged | Worked example |
|---|---|---|---|
ad-result | $0.0006 | per ad delivered | 100 ads = $0.06; 1,000 ads = $0.60; a daily monitor returning ~20 new ads = $0.012 a day |
ad-detail | $0.001 | per 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.00005 | per run per GB of memory (platform start fee) | One run at 256 MB = $0.0000125 |
Input options
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
domains | array | no | — | 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. |
advertiserNames | array | no | [] | 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. |
advertiserIds | array | no | [] | Google advertiser IDs (AR… from an adstransparency.google.com/advertiser/AR… link). |
regions | array | no | [] | Only ads shown in these countries, as two-letter codes (US, GB, DE, FR…). Empty = anywhere. |
dateFrom | string | no | — | Only ads shown on or after this date (YYYY-MM-DD). |
dateTo | string | no | — | Only ads shown on or before this date (YYYY-MM-DD). |
formats | array | no | [] | Only these formats. Empty = all formats (text covers Search ads; image and video cover Display, YouTube and Shopping creatives). |
maxAdsPerAdvertiser | integer | no | 100 | How many ads to read for each domain, advertiser name or advertiser ID, newest first as the Transparency Center lists them. |
maxResults | integer | no | 1000 | Stop after this many ads across all searches. You pay per ad delivered ($0.60 per 1,000). |
includeDetails | boolean | no | false | One 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). |
onlyNewSinceLastRun | boolean | no | false | Remember 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. |
monitorName | string | no | "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. |
proxyConfiguration | object | no | {"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.
Related ActorForge actors
- Google Ads Transparency Scraper — Competitor Ads | $0.60/1K — the same actor and data under its Transparency Center name
- Website Change Monitor — watch competitors' landing pages change
- Tech Stack Detector — see which ad and analytics tags a competitor runs
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.