Google Ads Transparency Scraper avatar

Google Ads Transparency Scraper

Pricing

from $0.80 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper

Google Ads Transparency Scraper

Scrapes the Google Ads Transparency Center — every ad an advertiser or website runs, with format, dates, images, and optional per-country reach, targeting and video links.

Pricing

from $0.80 / 1,000 ads

Rating

0.0

(0)

Developer

Mina

Mina

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

What does Google Ads Transparency Scraper do?

Google Ads Transparency Scraper collects ads from the Google Ads Transparency Center, Google's public library of every ad shown on Search, YouTube, Maps, Play, Shopping and the Display network. Paste an advertiser page, a website search or a single ad, and get each ad's advertiser, format, first and last shown dates, image and preview links as a clean table. Turn on details to add per-country reach, impression ranges, targeting and YouTube video links.

Try it with the two prefilled links: click Start, and 80 ads are ready in a few seconds. Because it runs on the Apify platform, you also get API access, scheduled runs, integrations (Google Sheets, Make, Zapier, webhooks), run monitoring and proxy rotation when it is needed.

Why scrape the Google Ads Transparency Center?

  • Competitor ad research: see every ad a rival runs, which formats they use and how long each ad has been live.
  • Creative inspiration: collect the image and video ads of a whole market in one table, with links to each one.
  • Brand protection: search your own domain to find advertisers who run ads pointing at it.
  • Political ad monitoring: track political ads in a country with their impression and spend ranges, ages and genders targeted.
  • EU reach analysis: for ads shown in the EU, get impression ranges per country and per platform, as published under the Digital Services Act.
  • Ongoing tracking: schedule a run to log which ads start and stop each week.

How to scrape Google Ads Transparency Center data

  1. Open adstransparency.google.com and search for an advertiser or a website.
  2. Set the site's own filters if you want them: region, format, platform, date range, or the political topic.
  3. Copy the address from your browser's address bar.
  4. Paste it into Transparency Center links. Add more links, one per line.
  5. Click Start, then download the results when the run finishes.

Four kinds of link work:

LinkExampleWhat you get
Advertiser pagehttps://adstransparency.google.com/advertiser/AR16735076323512287233?region=USThe advertiser's ads
Website searchhttps://adstransparency.google.com/?region=GB&domain=booking.comAds that point to that website, from any advertiser
Single adhttps://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR11071274990039990273That one ad
Political adshttps://adstransparency.google.com/political?region=USPolitical ads shown in that region

No link at hand? Type an advertiser name (Nike) or a website (nike.com) into Advertiser names or website domains instead. A name picks the matching advertiser with the most ads, and the run log says which one it picked.

Input

Everything is set on the Input tab. In JSON, the input looks like this:

{
"startUrls": [
"https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US",
"https://adstransparency.google.com/?region=GB&domain=booking.com"
],
"searchTerms": ["nike.com"],
"maxAdsPerUrl": 40,
"includeDetails": false
}
FieldWhat it does
startUrlsTransparency Center links, one per line. Every filter in the link is applied: region, format (text, image, video), platform (Search, YouTube, Maps, Play, Shopping), start-date/end-date or a date preset, and topic=political.
searchTermsAdvertiser names or website domains, searched across all regions. Use a link instead when you need filters.
maxAdsPerUrlStops after this many ads for each link or term. Default: 100.
includeDetailsOpens each ad's own page for per-country dates and reach, every variation, targeting and the YouTube link. Off by default; billed as an extra event per ad.
proxyConfigurationOptional; leave it off. The Actor connects directly and only retries refused requests through residential proxies.

Output

Each ad becomes one row. A real example from the prefilled run:

{
"advertiserId": "AR16735076323512287233",
"advertiserName": "Nike, Inc.",
"advertiserCountry": "US",
"creativeId": "CR11433158858407673857",
"creativeUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR11433158858407673857?region=US",
"format": "TEXT",
"firstShown": "2023-11-16",
"lastShown": "2026-10-01",
"daysShown": 897,
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/6820231750467904850",
"previewUrl": null,
"domain": null,
"impressionsMin": null,
"impressionsMax": null,
"spendMin": null,
"spendMax": null,
"spendCurrency": null,
"region": "US",
"input": "https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US"
}

With Include ad details on, a political video ad looks like this (preview links shortened):

{
"advertiserName": "A MORE AFFORDABLE NEVADA",
"advertiserCountry": "US",
"creativeId": "CR03689025381370691585",
"format": "VIDEO",
"firstShown": "2026-09-29",
"lastShown": "2026-10-01",
"impressionsMin": 150000,
"impressionsMax": 175000,
"spendMin": 6000,
"spendMax": 7000,
"spendCurrency": "USD",
"regions": [
{ "country": "US", "firstShown": "2026-09-29", "lastShown": "2026-10-01",
"impressionsMin": 150000, "impressionsMax": 175000, "platforms": [] }
],
"variationCount": 2,
"previewUrls": ["https://displayads-formats.googleusercontent.com/ads/preview/content.js?..."],
"targetedAges": ["18-24", "25-34", "35-44", "45-54", "55-64", "65+"],
"targetedGenders": ["male", "female"],
"youtubeVideoId": "DpFuyGWcPJ8",
"youtubeUrl": "https://www.youtube.com/watch?v=DpFuyGWcPJ8"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data fields

FieldDescription
advertiserIdThe advertiser's Transparency Center ID (AR…).
advertiserNameThe advertiser's name as the Transparency Center shows it.
advertiserCountryThe country the advertiser is based in.
creativeIdThe ad's ID (CR…).
creativeUrlThe ad's page on the Transparency Center.
formatTEXT, IMAGE or VIDEO.
firstShown, lastShownFirst and last day the ad was shown anywhere in the world, as YYYY-MM-DD in US Pacific time, as the site counts days. A region in the link chooses which ads are listed, not these dates: turn on Include ad details for each country's own dates in regions. firstShown can be empty for single-ad links.
daysShownNumber of days the ad has been shown, worldwide. Can be empty for single-ad links.
imageUrlImage of the ad, where Google archives one: text ads and some image ads. Most image and video ads are served only through previewUrl, so this is empty for them.
previewUrlThe ad's preview script, for ads that render live (most image and video ads).
domainThe website matched, on website searches.
impressionsMin, impressionsMaxImpression range. Published for political ads. A minimum with an empty maximum is an open range, such as Google's "Over 10M".
spendMin, spendMax, spendCurrencySpend range and its currency. Published for political ads.
regionThe region filter of the search, or anywhere.
inputThe link or search term the ad came from.
regionsWith details: each country the ad ran in, with first and last shown dates, and impression ranges overall and per platform where Google publishes them (the EU, and political ads).
euImpressionsMin, euImpressionsMaxWith details: the ad's impression range across the EU.
variationCount, imageUrls, previewUrlsWith details: every variation of the ad and their links.
targetingCriteria, targetingExclusionsWith details: the kinds of targeting used to include or exclude people (demographics, location, contextual, topics of interest, customer lists).
targetedAges, targetedGendersWith details: the age ranges and genders targeted, where published.
youtubeVideoId, youtubeUrlWith details: the YouTube video behind a video ad.

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

The Actor uses pay-per-event pricing, so you pay only for results:

  • $0.0008 per ad saved to the dataset, which is $0.80 per 1,000 ads.
  • $0.002 per ad with details, charged on top only when Include ad details is on.

For example, 1,000 ads cost $0.80, or $2.80 with details. Apify's free plan includes $5 of monthly credit, which covers over 6,000 ads. Inputs that return nothing are never charged. If you set a maximum cost for a run, the Actor stops as soon as it is reached.

Tips

  • Filter on the site first. Region, format, platform and date filters in the link shrink the results before the Actor sees them, which saves money.
  • Leave details off for big pulls. The ad list alone is fast (thousands of ads a minute). Turn details on for the ads you want to study.
  • Impressions and targeting are published only for some ads: ads shown in the EU, and political ads. Elsewhere those fields stay empty.
  • Schedule runs to track when a competitor's ads start and stop.
  • Ads that repeat across pages are removed, so each ad appears once per input.

FAQ, disclaimers and support

Why are some fields empty? Google publishes different data for different ads. Impressions, spend and targeting appear only where the Transparency Center shows them, mainly for EU and political ads.

What happens to inputs that return nothing? They are not saved as rows, so you are not charged for them. Each one is listed with its reason in the FAILED_INPUTS record of the run's key-value store, and the run's status message gives the counts. A run fails only when the site refuses every input.

Does it download the ad images or videos? No. It returns links to the ads as Google hosts them.

Is it legal to scrape the Google Ads Transparency Center? Google publishes this data so the public can see who is advertising, and the EU's Digital Services Act requires an ad repository of this kind. The Actor collects only ad information and each advertiser's name and country. You are still responsible for making sure your use complies with Google's Terms of Service and the laws that apply to you. If in doubt, ask a lawyer.

Found a problem or need a custom solution? Open an issue on the Issues tab and we will look into it. Custom scrapers and data feeds are available on request.