Google Ads Transparency Scraper: Competitor Ads by Advertiser
Pricing
from $1.00 / 1,000 ad creatives
Google Ads Transparency Scraper: Competitor Ads by Advertiser
Google Ads Transparency Center scraper with a new-ads-only mode: schedule it weekly and get only the ads first seen since your last run. Search by name, domain or advertiser ID. $1.40 per 1,000 ads; lookups, empty results and failed requests are free. No login or cookies.
Pricing
from $1.00 / 1,000 ad creatives
Rating
0.0
(0)
Developer
Fulox
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Type a competitor's name, domain or Google advertiser id and get every ad creative Google's Ads Transparency Center lists for it, as flat rows with format, first and last shown dates, an image or preview link and the ad page link. For performance marketers, agencies and competitive-intel teams who check what a competitor runs on Google every week or before a pitch.
What you get
- New-ads-only mode: turn on
onlyNewSinceLastRunand a weekly run returns only the ads first seen since your last run, each flaggedisNew; the first run of an advertiser is the baseline. - One input for name, domain or id: type
nike,nike.comorAR16735076323512287233; a domain returns every ad that links to that website (Google's own website filter, sonike.comgets Nike's ads, not a look-alike name); a name resolves to the largest matching advertiser, and the other matches are listed in a free advertiser record so you can pick another. - $1.40 per 1,000 ads, 30% under the Store leader, and advertiser lookups, empty results and failed requests are free.
- One flat row per ad: advertiser, creative id, format (
image,text,videoorunknown), first and last shown date, image URL with width and height, preview URL and a link to the ad on adstransparency.google.com. No login, no cookies, no API key.
Example output
An ad row (charged):
{"type": "ad","input": "nike","advertiserId": "AR16735076323512287233","advertiserName": "Nike, Inc.","creativeId": "CR14279383245370949633","format": "image","formatCode": 2,"firstShown": "2023-11-16","lastShown": "2026-10-17","imageUrl": "https://tpc.googlesyndication.com/archive/simgad/4454334368022254950","previewUrl": null,"width": 348,"height": 455,"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR14279383245370949633","isNew": true,"runAt": "2026-10-18T09:00:00.000Z"}
Each input entry also gets one free advertiser row, written after its ads: status (ok, not_found, invalid, duplicate, error or skipped), the matched advertiser and country, Google's estimated ad count (estimatedAdsMin, estimatedAdsMax), the other matches in alternatives, how many ads were fetched, delivered and new, whether the run was the baseline, and a reason for anything but ok. If nothing could be written at all, one free run row says why, so the dataset is never empty.
How to use it
- Enter one or more advertisers: a name, a domain or an id (up to 50 per run).
- Pick how many ads per advertiser you want and click Start.
- Download the dataset as JSON, CSV or Excel, or connect it to Google Sheets, Make, Zapier or n8n. To watch a competitor, schedule the Actor weekly with
onlyNewSinceLastRunon.
Input
| Field | What it does | Default |
|---|---|---|
advertisers | Names, domains or ids (AR followed by 20 digits), one per advertiser, up to 50 | ["hubspot.com"] |
maxAdsPerAdvertiser | Ads to fetch per advertiser, 1 to 2,000, in pages of 40 | 40 |
onlyNewSinceLastRun | Deliver and charge only ads not seen in an earlier run of this account | off |
format | all, image or text | all |
resetState | Forget earlier runs for these advertisers, so every ad counts as new once | off |
proxyConfiguration | Apify Proxy settings; datacenter by default, residential if runs get blocked | Apify Proxy on |
A run makes at most 200 requests in total. Names use one lookup request each, and each page of 40 ads is one request.
Pricing
$1.40 per 1,000 ads ($0.0014 per ad row). Volume discounts apply on higher Apify plans: $1.20 per 1,000 on Silver, $1.00 per 1,000 on Gold and above. You pay only for ad rows delivered. Advertiser lookups, advertiser and run rows, empty results, entries that are not found, invalid or skipped, and failed requests are free. The default run (40 ads) costs $0.056. A weekly new-only check of a quiet advertiser costs nothing. Set a maximum cost per run to stay in control: the run stops when it is reached, its status message says Stopped early: user_budget, and advertisers not yet processed get no rows and cost nothing.
Limitations
- New-ads-only mode compares the first
maxAdsPerAdvertiserads Google returns. Google does not list ads newest first and the order is not by date, so for an advertiser with more ads than that limit, new ads beyond it appear when you raise the limit. TheestimatedAdsMaxfield shows how many ads Google reports for the advertiser. The first run of an advertiser returns all fetched ads, flaggedisNew, as the baseline. - A domain returns ads from every advertiser that links to it (resellers and agencies too); each ad row has its own
advertiserId. Names resolve to the advertiser with the most ads. If that is not the one you meant, take an id fromalternativesand run again. Names of private persons are returned exactly as Google publishes them; nothing else is joined to them. - Google's endpoint can stall requests from a single address. The Actor waits at most 20 seconds per request, paces itself at one request per second, and routes requests through Apify Proxy by default. If Google stops answering three times in a row, the run stops with an explanation in a
runrow and nothing is charged for ads it did not deliver; try again later or switch the proxy group to residential. - Video ads come out as
videoand other formats asunknownwith Google'sformatCode; they are returned only withformatset toall. - Region and date filters are not offered yet. Data is what Google's public Ads Transparency Center shows; this Actor is not affiliated with Google.
FAQ
Do I need a Google account or API key? No. The Actor reads the public Ads Transparency Center, with no login.
Does it download the ad images? No. It returns the image URL and the preview link; you can open or download them from there.
How is the new-ads memory kept? In a named key-value store of your Apify account, one entry per advertiser with the creative ids already delivered. Turn on resetState to start over.
What if two inputs are the same advertiser? The second one gets a free duplicate row.
What does a failed request cost? Nothing. Only delivered ad rows are charged.
Changelog
- 1.0.5 (2026-10-24): fixed swapped ad formats. Google's code 1 is text and 2 is image; the Actor had them the other way round, so
format: imagereturned and charged text ads. Video ads are now labelledvideo. - 1.0.4 (2026-10-21): a domain now uses Google's website filter. Before,
nike.comcould match a look-alike advertiser name. With "Only ads new since the last run" on, a domain's first run on 1.0.4 is a new baseline, so its current ads are delivered (and charged) once more. - 1.0 (2026-10-18): first release. Name, domain and id lookup, new-ads-only mode, format filter, Apify Proxy support, pay per ad.