Google Ads Library & Transparency Center Scraper avatar

Google Ads Library & Transparency Center Scraper

Pricing

from $1.99 / 1,000 ads

Go to Apify Store
Google Ads Library & Transparency Center Scraper

Google Ads Library & Transparency Center Scraper

See every ad your competitors run on Google. Ads Library & Transparency Center scraper, no API key, 30 ads in about 8 s: text, image and video ads for any brand or domain, with first and last shown dates, variations, impressions and regions. Only-new mode. $1.99 per 1,000 ads.

Pricing

from $1.99 / 1,000 ads

Rating

0.0

(0)

Developer

Quiet Harvest

Quiet Harvest

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

This Google Ads Transparency Center scraper pulls the ads a brand or domain runs on Google (text, image, video). No API key, no login.

$1.99 per 1,000 ads. Details add $1.00 per 1,000.

Quick start

Runs as-is with this input (the same input Apify tests daily):

{
"queries": [
"nike.com"
]
}

Main output fields: advertiser_name, format, first_shown, last_shown, domain, image_url, ad_url, impressions_max, region_count.

Price: Ad: $1.99 per 1,000; Ad details: $1 per 1,000. Pay only for results delivered.

Run it from code and get the results in one call: POST https://api.apify.com/v2/acts/reportable_broth~google-ads-transparency-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN with the input above as the JSON body.

What does the Google Ads Transparency Scraper do?

  • Search by brand name, domain, advertiser ID (AR...) or a Transparency Center URL. Filter by country, format and date.
  • Each ad has first and last shown dates, the domain it points to and an image of the ad.
  • With details on: every variation of the creative, the impressions range, and the countries it ran in.
  • Only-new mode remembers what you already got, so a scheduled run only returns ads a competitor just launched.
  • Google shows a captcha after a few dozen requests per IP, so each page and retry uses a fresh residential IP.

How do I use it?

  1. Click Try for free. You need a free Apify account.
  2. Type a brand or domain under Brands or domains, e.g. nike.com. Set a region if you only want one country.
  3. Click Start.
  4. Wait. 30 ads take about 8 seconds.
  5. Open the Output tab and download the ads as JSON, CSV or Excel.

What can I use it for?

  • See what a competitor is running on Google right now, and since when.
  • Spot ads that have run for months. If a brand keeps paying for an ad that long, it's probably working.
  • Check a list of domains to see which companies advertise on Google in a country.
  • Collect ad images for a swipe file or creative research.
  • Find out when a competitor launches something new (schedule + only-new mode).

Examples

{ "queries": ["nike.com"], "region": "US", "maxAdsPerSearch": 200 }

Watch an advertiser for new ads (run it on a schedule):

{ "advertiserIds": ["AR18378488041124659201"], "includeDetails": true, "onlyNewAds": true }

Input

FieldDefault
queriesBrand names or domains. Anything that looks like a domain is searched as one
domains[]Exact domains, all advertisers pointing there
advertiserIds[]IDs starting with AR
startUrls[]Pages from adstransparency.google.com
regionANYWHERECountry code, e.g. US, GB, JP
adFormatALLTEXT, IMAGE, VIDEO
startDate, endDateYYYY-MM-DD. Keeps ads running at any point in the range
maxAdsPerSearch100Per target, up to 10,000
maxAdvertisersPerQuery3Accounts per brand name (best matches first), up to 20
includeDetailsfalseOne extra request per ad
onlyNewAdsfalseSkip ads returned in earlier runs with the same input
monitorStoreNameStore for onlyNewAds. Empty = default
proxyConfigurationresidentialKeep residential
concurrency5Parallel detail requests

What data do I get?

One row per ad:

{
"advertiser_id": "AR18378488041124659201", "advertiser_name": "Nike Retail BV",
"creative_id": "CR04918732594763268097", "format": "TEXT",
"first_shown": "2025-10-24T10:57:39Z", "last_shown": "2026-09-24T06:29:44Z",
"domain": "nike.com",
"image_url": "https://tpc.googlesyndication.com/archive/simgad/4025281590245195688",
"ad_url": "https://adstransparency.google.com/advertiser/AR18378488041124659201/creative/CR04918732594763268097?region=anywhere",
"impressions_min": 300000, "impressions_max": 350000, "region_count": 17,
"regions": [{ "region": "PL", "impressions_min": 300000, "impressions_max": 350000, "first_shown": "2025-10-24", "last_shown": "2026-09-23" }]
}

Also included: preview_url, and with details on variation_count, variations. ad_url opens the ad on Google's own site if you want to check it.

Limits

  • Impressions are ranges, and Google only publishes them for ads shown in the EU. A US-only ad has dates and regions but no impressions. In a 120-ad sample for nike.com in the US, 10 had them.
  • Big brands run several advertiser accounts. If some are missing, raise maxAdvertisersPerQuery or search the domain.
  • Text ads come as images. That's how Google stores them.

How much does it cost?

$1.99 per 1,000 ads, plus $1.00 per 1,000 with includeDetails. There's no separate compute bill on top.

Example: 10 competitors, 100 ads each, is 1,000 ads. That's $1.99, or $2.99 with details. Apify's free plan gives you $5 of credit a month, which covers about 2,500 ads without details.

With onlyNewAds on, ads you already got are dropped before charging, so a weekly check only costs what's new.

Scheduling it

Save your input as a Task, add a Schedule (daily or weekly is plenty) and turn on onlyNewAds. Send the results to Slack, Google Sheets, Make, Zapier or n8n, or call it from the Apify API or MCP.

FAQ

Do I need a Google account or API key? No. It reads the public Transparency Center, the same pages you'd see in a browser.

Should I search a brand name, a domain or an advertiser ID? A domain is the simplest and catches every account pointing at that site. A brand name gets matched to advertiser accounts, so a common word can pick up the wrong one. An AR ID is exact, use it once you know which account you want.

Why do most ads have no impressions? Google only publishes impressions for ads shown in the EU. There's nothing to scrape for the rest.

Will I pay again for ads I already got? Not with onlyNewAds on. It remembers up to 100,000 ad IDs per set of targets, format and region.

Other scrapers I made

Found a bug or need a field? Open an issue on the Issues tab.


Only collects public data from Google's Ads Transparency Center. You're responsible for how you use it (Google's terms, local law).