Google Ads Transparency Scraper: Competitor Ads by Advertiser avatar

Google Ads Transparency Scraper: Competitor Ads by Advertiser

Pricing

from $1.00 / 1,000 ad creatives

Go to Apify Store
Google Ads Transparency Scraper: Competitor Ads by Advertiser

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

Fulox

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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 onlyNewSinceLastRun and a weekly run returns only the ads first seen since your last run, each flagged isNew; the first run of an advertiser is the baseline.
  • One input for name, domain or id: type nike, nike.com or AR16735076323512287233; a domain returns every ad that links to that website (Google's own website filter, so nike.com gets 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, video or unknown), 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

  1. Enter one or more advertisers: a name, a domain or an id (up to 50 per run).
  2. Pick how many ads per advertiser you want and click Start.
  3. 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 onlyNewSinceLastRun on.

Input

FieldWhat it doesDefault
advertisersNames, domains or ids (AR followed by 20 digits), one per advertiser, up to 50["hubspot.com"]
maxAdsPerAdvertiserAds to fetch per advertiser, 1 to 2,000, in pages of 4040
onlyNewSinceLastRunDeliver and charge only ads not seen in an earlier run of this accountoff
formatall, image or textall
resetStateForget earlier runs for these advertisers, so every ad counts as new onceoff
proxyConfigurationApify Proxy settings; datacenter by default, residential if runs get blockedApify 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 maxAdsPerAdvertiser ads 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. The estimatedAdsMax field shows how many ads Google reports for the advertiser. The first run of an advertiser returns all fetched ads, flagged isNew, 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 from alternatives and 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 run row 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 video and other formats as unknown with Google's formatCode; they are returned only with format set to all.
  • 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: image returned and charged text ads. Video ads are now labelled video.
  • 1.0.4 (2026-10-21): a domain now uses Google's website filter. Before, nike.com could 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.