Google Ad Library Scraper – Competitor Ads, Text & Regions avatar

Google Ad Library Scraper – Competitor Ads, Text & Regions

Pricing

from $0.60 / 1,000 ad scrapeds

Go to Apify Store
Google Ad Library Scraper – Competitor Ads, Text & Regions

Google Ad Library Scraper – Competitor Ads, Text & Regions

Scrape competitors' Google ads from the public Ads Transparency Center by domain, brand name or advertiser ID: format, first/last shown, images, and optional ad text, landing page, variations and countries. Search, YouTube, Shopping, Maps, Play. First 100 results every month free.

Pricing

from $0.60 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

K-Data Lab

K-Data Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Google Ad Library Scraper – Competitor Ads, Text, Landing Pages & Countries

See every Google ad a competitor runs, in a spreadsheet. Enter a website domain, brand name or advertiser ID and get the ads Google lists publicly in its Ads Transparency Center: format, first and last shown dates, days shown, the ad image or preview, and (optional) the ad text, landing page, video, every variation and each country it ran in with EU impression ranges. Text, image and video ads from Google Search, YouTube, Shopping, Maps and Play.

First 100 results every month are free. After that, from $0.60 per 1,000 ads.

Independent tool by K-Data Lab. Not affiliated with, endorsed or sponsored by Google. It reads only the public Ads Transparency Center (adstransparency.google.com), no login, and returns only what Google publishes there.

🔍 What does Google Ad Library Scraper do?

  • Ads by domain: nike.com returns every advertiser's ads that point to nike.com (brand, resellers, agencies)
  • Ads by brand name: HubSpot is matched to the verified advertiser with the most ads
  • Ads by advertiser ID or link: paste AR… IDs or Transparency Center links (an advertiser page, a domain search or a single ad)
  • Filters: country shown in (243 countries), format (text / image / video), Google platform (Search, YouTube, Shopping, Maps, Play), date range
  • Full ad details (optional): headline, description, display URL, texts, landing page URL, YouTube video ID or MP4, every variation, countries with first/last shown dates, EU impressions by platform, topic
  • Advertisers only output: find advertiser IDs, verified countries and ad counts for a brand, or every advertiser running ads to a domain

💡 Why choose this actor?

  • 💰 Lower price: ads from $0.60–0.90 per 1,000 and full details for $1 per 1,000, with 100 free results every month
  • 📝 Ad text and landing page included in one add-on, not split into several paid extras
  • 🌍 Per-country reach: each country the ad ran in, with dates and (in the EU) impression ranges by platform
  • ⚡ Fast and light: plain HTTP, 256 MB, about 40 ads per request; Apify Proxy only when Google slows down
  • 🛡️ Never charged twice: an ad found by two input lines is returned and charged once; empty queries cost nothing

📥 Input example

{
"queries": ["nike.com", "HubSpot", "AR16735076323512287233"],
"region": "US",
"format": "ALL",
"platform": "ALL",
"dateFrom": "2026-09-01",
"maxAdsPerQuery": 200,
"includeDetails": true
}
FieldWhat it does
queriesDomains, brand names, advertiser IDs (AR…) or Transparency Center links, one per line
regionCountry the ads were shown in (anywhere = all)
formatALL, TEXT, IMAGE, VIDEO
platformALL, GOOGLE_SEARCH, YOUTUBE, GOOGLE_SHOPPING, GOOGLE_MAPS, GOOGLE_PLAY
dateFrom / dateToOnly ads shown in this period (YYYY-MM-DD)
maxAdsPerQueryStop after this many ads per line
includeDetailsAd text, landing page, video, variations, countries, impressions, topic
advertisersPerNameHow many advertisers to take for a brand name (most ads first)
modeads or advertisers (advertiser lookup only)

📤 Output example

One row per ad (the Ads view shows the image, advertiser, dates and links). A real record with full details:

{
"adId": "CR07054792377080217601",
"advertiserId": "AR14017378248766259201",
"advertiserName": "Adidas America, Inc",
"domain": "adidas.com",
"format": "IMAGE",
"firstShown": "2026-10-20T17:44:06Z",
"lastShown": "2026-10-23T23:43:41Z",
"daysShown": 4,
"imageUrl": null,
"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&…",
"adUrl": "https://adstransparency.google.com/advertiser/AR14017378248766259201/creative/CR07054792377080217601?region=US",
"query": "adidas.com",
"region": "US",
"variationCount": 3,
"regions": [{"countryCode": "US", "country": "United States", "firstShown": null, "lastShown": "2026-10-23",
"impressionsMin": null, "impressionsMax": null, "impressionsByPlatform": []}],
"adText": {
"texts": ["Explore The Latest Shoes, Clothing & Accessories On", "adidas.com.",
"The Stan Smith sneaker is a timeless design", "inspired by the tennis legend", "Place Your Order Today"],
"landingUrls": ["https://www.adidas.com/us/stan_smith"],
"headline": null, "youtubeVideoId": null, "videoUrl": null
},
"landingUrl": "https://www.adidas.com/us/stan_smith"
}

For ads shown in the EU, regions also carries Google's impression ranges by platform (real adidas.de ad):

"regions": [{
"countryCode": "DE", "country": "Germany", "firstShown": "2023-03-01", "lastShown": "2026-10-23",
"impressionsMin": 10000000, "impressionsMax": null,
"impressionsByPlatform": [
{"platform": "GOOGLE_SEARCH", "impressionsMin": 10000000, "impressionsMax": null},
{"platform": "GOOGLE_SHOPPING", "impressionsMin": 1500000, "impressionsMax": 1750000},
{"platform": "YOUTUBE", "impressionsMin": 70000, "impressionsMax": 80000}
]
}]

Field notes:

  • daysShown: number of days Google showed the ad (from the Transparency Center)
  • imageUrl: image ads and older text ads are archived by Google as images; previewUrl is Google's preview script for HTML and video ads
  • impressionsMin / impressionsMax: Google publishes impression ranges for ads shown in the EU (and political ads); impressionsMax: null means "or more"
  • adText.headline / description / displayUrl: for search text ads with a live preview; other ads list their visible texts
  • Run summary (key-value store RUN_SUMMARY): per input line, the advertisers used, how many ads Google reports for your filters, and a status (OK, NO_ADS, NO_ADVERTISER_FOUND, INVALID_QUERY, ERROR)

⚠️ When a line returns nothing

  • NO_ADVERTISER_FOUND: no verified advertiser name contains every word you typed. Use the website domain instead (brand.com), or Advertisers only mode to see the exact advertiser names.
  • NO_ADS: the advertiser or domain has no ads for these filters (country, format, platform, dates).
  • INVALID_QUERY: a Transparency Center link without an advertiser, ad or domain in it.

Nothing is charged for a line that returns nothing.

💰 How much does it cost to scrape Google ads?

EventPrice
Ad scraped$0.0009 (Free plan) · $0.0008 (Bronze) · $0.0007 (Silver) · $0.0006 (Gold and up)
Ad details (only with Full ad details on)$0.001 per ad
Advertiser found (Advertisers only)$0.0005
Actor start$0.005 per run

The first 100 results each calendar month are free, details included. Examples: 1,000 ads ≈ $0.90; 1,000 ads with full details ≈ $1.90. Set Maximum cost per run in the run options and the actor stops cleanly at that limit.

🚀 How to scrape Google Ads Transparency Center (step by step)

  1. Open the actor and click Try for free.
  2. Paste competitor domains or brand names into Advertisers, brands or domains.
  3. Pick a country, format, platform or dates if you need them.
  4. Turn on Full ad details for ad text, landing pages and countries.
  5. Click Start, then download the results as Excel, CSV or JSON.
  • Competitor ad research: which messages, offers and landing pages a rival is testing right now
  • Ad creative swipe files for agencies and copywriters
  • Market entry checks: which countries a competitor advertises in, since when, and how much (EU)
  • Brand protection: find resellers, affiliates and look-alike advertisers bidding on your domain
  • Lead lists for agencies: which companies are actively advertising (advertiser names and IDs, no personal contact data)
  • Monitoring: schedule a daily run with a dateFrom of yesterday to see new ads

🔌 Integrations & API

Run it from your code with the Apify API or client libraries:

from apify_client import ApifyClient
client = ApifyClient('<YOUR_APIFY_TOKEN>')
run = client.actor('k-data-lab/google-ad-library-scraper').call(run_input={
'queries': ['nike.com'], 'region': 'US', 'maxAdsPerQuery': 100, 'includeDetails': True})
for ad in client.dataset(run['defaultDatasetId']).iterate_items():
print(ad['advertiserName'], ad['format'], ad['lastShown'], ad.get('landingUrl'))
curl -X POST "https://api.apify.com/v2/acts/k-data-lab~google-ad-library-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H 'Content-Type: application/json' -d '{"queries": ["hubspot.com"], "maxAdsPerQuery": 50}'

It also connects to Google Sheets, Slack, Zapier, Make, n8n and webhooks through Apify integrations, and works as an MCP tool for AI agents.

💡 Tips

  • A domain finds more ads than a brand name: big brands advertise under several legal entities (e.g. Nike, Inc. and Nike Retail BV).
  • Leave Full ad details off for fast, cheap lists; turn it on for the ads you want to study.
  • Use Advertisers only first to get exact advertiser IDs, then scrape those IDs.
  • Google reports totals as ranges (e.g. 70,000–80,000 ads); the run summary shows them per query.

❓ FAQ

Is it legal to scrape the Google Ads Transparency Center? The Transparency Center is a public library Google publishes so anyone can see who advertises what. This actor reads only that public data, without login, at a polite rate. You are responsible for how you use the data; check your local laws and Google's terms for your use case.

Does it return personal data? No contact data at all. Advertiser names are the verified names Google itself publishes for each advertiser; some advertisers are verified individuals, so treat names as you would any public record.

Why is there no text for some ads? Google archives many text ads as images; the actor then returns the imageUrl. Ads with a live preview get their text and landing page with Full ad details.

How far back does it go? As far as the Transparency Center does (several years for many advertisers).

Can I get only new ads? Set dateFrom and schedule the actor; each run returns ads shown since that date.

💬 Feedback

Missing a field or found a wrong value? Open an issue on the actor's Issues tab.

Tags: google ads transparency, google ads library, google ad library scraper, competitor ads, ad spy tool, google ads scraper, youtube ads, google shopping ads, ad creatives, ppc competitor research, advertiser lookup