Google Ads Transparency Scraper - Competitor Ad Library avatar

Google Ads Transparency Scraper - Competitor Ad Library

Pricing

$0.80 / 1,000 ad creatives

Go to Apify Store
Google Ads Transparency Scraper - Competitor Ad Library

Google Ads Transparency Scraper - Competitor Ad Library

Scrape every ad a company runs on Google Search, YouTube, Shopping, Maps and Play from the public Ads Transparency Center. Search by domain, brand name or advertiser ID. Get creative previews, first and last shown dates and days running. No login.

Pricing

$0.80 / 1,000 ad creatives

Rating

0.0

(0)

Developer

Crikit

Crikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

What is Google Ads Transparency Scraper?

This actor is an independent tool and is not affiliated with, endorsed by or sponsored by Google LLC. All trademarks are the property of their respective owners. "Google Ads Transparency Center" is named only to describe the public website this actor reads.

Google Ads Transparency Scraper lets you extract every ad a company is running across Google Search, YouTube, Google Shopping, Google Maps and Google Play, straight from Google's public Ads Transparency Center, helping you see a competitor's live creative, work out which messages they keep paying to run, and check whether a whole list of companies buys Google Ads at all.

  • ๐ŸŽฏ See a competitor's entire ad library: point it at a domain like nike.com and get back every creative Google has on file for it, image, text and video, with the exact first and last shown dates.
  • โฑ Find the ads that actually work: every row carries shownForDays, so the creative an advertiser has kept live for 900 days is one sort away.
  • ๐Ÿงญ Qualify accounts in bulk: ad-check mode returns one row per advertiser with Google's own approximate ad count, which tells you in a single cheap pass which companies on your prospect list are already spending.
  • ๐Ÿงฉ Reconstruct campaign structure: Google's internal ad account and ad group ids come back on every preview-backed ad, so ads from one campaign cluster without guessing.
  • ๐ŸŒ Compare markets: the Transparency Center is region-scoped, and this scraper runs any of 58 countries, so you can see what a brand runs in Germany that it does not run in the US.
  • ๐Ÿ”“ No login, no cookies, no Google account. The Transparency Center is public and this actor never asks you for a session.

Google's own Transparency Center gives you an infinite scroll and no export. There is no official API. This actor gives you the same data as a dataset you can sort, filter and push into a spreadsheet, at $0.80 per 1,000 ads, which is well under half what the other Transparency Center scrapers on the Store charge.

What data does Google Ads Transparency Scraper extract?

  • ๐Ÿ†” Creative ID and advertiser ID (creativeId, advertiserId)
  • ๐Ÿข Advertiser display name and the landing domain (advertiserName, domain)
  • ๐Ÿ–ผ Ad format: IMAGE, TEXT or VIDEO
  • ๐Ÿ“… First shown and last shown, as full ISO timestamps (firstShown, lastShown)
  • โณ How many days the ad has been running (shownForDays)
  • ๐Ÿ“ธ Direct CDN image URL, with width and height, for ads Google archived as a picture
  • ๐Ÿ”— Google-hosted preview URL for text, video and rich-media ads (previewUrl)
  • โœ๏ธ Ad headline, read out of the rendered preview (headline, opt-in, best effort)
  • ๐Ÿงพ Google ad account ID, ad group ID and internal creative ID (googleCustomerId, adGroupId, googleCreativeId)
  • ๐ŸŽž Every A/B variation of a creative (variations, opt-in)
  • ๐Ÿ” The Transparency Center page for that exact ad (adUrl)
  • ๐ŸŒ The region the ads were pulled for (region)

In ad-check mode each row is an advertiser instead: name, advertiser ID, country, verified badge, and the low and high bound of Google's approximate ad count.

How to use Google Ads Transparency Scraper

  1. Click Try for free and open the actor in Apify Console.
  2. Put one or more websites into Domains, for example nike.com. A domain is the most reliable input because a single company often runs several advertiser accounts.
  3. Pick the Region whose ads you want, and set Maximum ads to cap the run.
  4. Click Start and watch the rows stream into the dataset.
  5. Export as JSON, CSV, Excel or XML, or pull the results from the Apify API.

Input

Target ads four ways and mix them freely.

{
"domains": ["nike.com", "hellofresh.com"],
"advertiserNames": ["Squarespace"],
"advertiserIds": ["AR16735076323512287233"],
"startUrls": ["https://adstransparency.google.com/advertiser/AR16735076323512287233?region=GB"],
"resultType": "ads",
"region": "US",
"adFormat": "ANY",
"platforms": ["GOOGLE_SEARCH", "YOUTUBE"],
"maxItems": 500,
"extractAdCopy": false,
"includeVariations": false,
"proxyConfiguration": { "useApifyProxy": true }
}
  • domains exact landing domains. Scheme, www. and paths are stripped for you.
  • advertiserNames brand names, resolved through the Transparency Center's own advertiser directory. Matching is a prefix match on the registered legal name, so Nike finds Nike, Inc. but nike.com does not.
  • advertiserIds the AR... id from an advertiser page URL.
  • startUrls advertiser or domain-search URLs pasted from the site. The region in the URL wins for that target.
  • resultType ads for creatives, advertisers for one summary row per advertiser.
  • adFormat ANY, IMAGE, TEXT or VIDEO.
  • platforms any of GOOGLE_SEARCH, YOUTUBE, GOOGLE_SHOPPING, GOOGLE_MAPS, GOOGLE_PLAY.
  • maxItems 0 means everything Google will serve, which for a large brand is tens of thousands of ads.
  • extractAdCopy fetches each ad's rendered preview and reads the headline out of it.
  • includeVariations attaches every A/B variation Google holds for the ad.

Output

One ad per row.

{
"creativeId": "CR06029231865573933057",
"advertiserId": "AR16735076323512287233",
"advertiserName": "Nike, Inc.",
"domain": "nike.com",
"format": "IMAGE",
"firstShown": "2023-04-25T20:04:55.635Z",
"lastShown": "2026-09-16T00:37:16.475Z",
"shownForDays": 1098,
"previewType": "image",
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/3520373571186011087",
"previewUrl": null,
"width": 348,
"height": 229,
"headline": null,
"googleCustomerId": null,
"adGroupId": null,
"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR06029231865573933057?region=US",
"region": "US"
}

The dataset ships with three table views: Ads for the creative list, Ad account & campaign for the Google-internal ids, and Advertisers for ad-check runs.

How much does it cost to scrape the Google Ads Transparency Center?

One flat price per ad, $0.0008, which is $0.80 per 1,000 ads. No platform usage on top, no per-run start fee.

AdsCost
1,000$0.80
10,000$8.00
100,000$80.00

Advertiser summary rows in ad-check mode are charged at the same flat rate, so screening 1,000 companies for whether they run Google Ads costs $0.80.

The other Google Ads Transparency scrapers on the Apify Store charge between $2.00 and $3.00 per 1,000 ads, and some add a per-run start fee on top.

Measured coverage

Measured 2026-09-16 against live data through the Apify datacenter proxy, on a 2,000 ad platform run plus a 560 ad sample spread across seven large advertisers.

FieldCoverage
creativeId, advertiserId, advertiserName, domain100%
format, firstShown, lastShown, shownForDays100%
adUrl, region100%
An image URL or a preview URL100%
imageUrl (image-archived ads)72% of all ads
previewUrl (text, video and rich media)28% of all ads
headline with extractAdCopy onroughly 55% of preview-backed ads

Format mix across the 560 ad multi advertiser sample: 73% image, 16% text, 11% video. A single advertiser can sit far from that average, so filter by format rather than assuming a mix.

Throughput on the platform: 2,000 ads in 89 seconds at 1 GB, all 2,000 unique, no proxy rotation needed.

Limits

  • There is no date filter. Google's endpoint does not expose one to the public client, so filter on firstShown and lastShown after the run instead.
  • A platform filter hides old ads. Google only recorded the serving surface from 2023-09-04 onwards, and says so in its own interface, so selecting any platform drops everything older.
  • Ad counts are ranges. Google publishes "roughly 8,000 to 9,000 ads", never an exact number, and this actor passes that through as approxAdCountLow and approxAdCountHigh rather than inventing a figure.
  • Ad copy is best effort. Only text, video and rich-media ads carry a readable preview, and the headline comes back on roughly half of those. The field is null rather than wrong when the markup cannot be read.
  • Political ads are a separate archive. This actor reads the main Transparency Center, not the political ads library.
  • The region matters. An advertiser with 8,000 ads in the US may have 500 in India. Pick the region you actually care about.

FAQ

The Ads Transparency Center is a public archive Google publishes deliberately, under its own ad transparency commitments. This actor reads only that public page, uses no login or cookie, and collects no personal data. You are responsible for using the results in line with Google's terms and with the law where you operate, particularly if you republish creative assets that belong to somebody else.

Do I need a Google account or cookies?

No. There is nothing to log in to and the actor never asks you for a session.

Can I use Google Ads Transparency Scraper as an API?

Yes. Every actor on Apify is an API. Start a run, poll it and read the dataset with the Apify API, or use the synchronous run-and-get-dataset endpoint for small jobs.

Can I use this in Python?

Yes, with apify-client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("cirkit/google-ads-transparency-scraper").call(run_input={"domains": ["nike.com"], "maxItems": 100})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
print(ad["advertiserName"], ad["format"], ad["shownForDays"])

Can I integrate it with other apps?

Yes. Apify connects to Zapier, Make, n8n, Slack, Google Sheets, Google Drive and Airtable, and can POST results to any webhook when a run finishes.

How do I schedule it to run automatically?

Use Apify Schedules. A daily or weekly run against the same domains, with results appended to a named dataset, gives you a change log of what a competitor launches and retires.

How do I find an advertiser ID?

Open the advertiser's page on adstransparency.google.com and copy the AR... segment from the URL. Or skip it: paste the page URL into Transparency Center URLs, or just use the domain.

Why did I get fewer ads than Google's page says?

Google's headline number is a rounded range, not a count. A platform filter also removes everything shown before 2023-09-04, and a format filter narrows the set further. Drop the filters and raise Maximum ads to see the full library.

Why are some ads missing a headline?

Only text, video and rich-media ads have a readable preview, and extractAdCopy has to be switched on. Image ads are archived as flat pictures with no text layer to read, so headline is null for them by design.

Can I get a field that is not listed?

If the Transparency Center shows it, it can usually be added. Open an issue on the actor and say which field and which ad you saw it on.

You might also like

Changelog

0.1 (2026-09-16) First release. Domain, advertiser name, advertiser ID and pasted URL input, 58 regions, format and platform filters, ad-check mode, opt-in ad copy extraction and A/B variations.