Google Ads Transparency Scraper & API: Competitor Ads avatar

Google Ads Transparency Scraper & API: Competitor Ads

Pricing

from $0.50 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper & API: Competitor Ads

Google Ads Transparency Scraper & API: Competitor Ads

Every ad a competitor runs on Google Search, YouTube and Display, by brand name, advertiser ID or domain: format, dates, countries, headline and text, plus which ads are likely working. No login. $1 per 1,000 ads, less on paid plans.

Pricing

from $0.50 / 1,000 ads

Rating

5.0

(1)

Developer

Brainfoods Studio

Brainfoods Studio

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

11 hours ago

Last modified

Security

Limited permissions

Share

Late, but we brought receipts. Every ad comes with when it started, where it ran and what it said. The ones that have run for years are flagged too, because an ad that keeps running is usually an ad that works.

Google Ads Transparency Scraper is an API for the Google Ads Transparency Center, built for competitor research. Get every ad a brand ran on Google Search, YouTube and Display, by advertiser name, advertiser ID or website, in any country, with dates, countries, ad text and a preview, as JSON, CSV or Excel.

No login · No API key · $1 per 1,000 ads, less on paid plans · Independent tool, not affiliated with Google

What does Google Ads Transparency Scraper do?

  • Finds the right advertiser by name. Type "nike" and you get Nike, Inc., not one of the small accounts with a similar name.
  • Lists every ad for an advertiser or a website: format (text, image or video), first and last shown, preview image and link.
  • Adds details on request: every country an ad ran in, with the last date in each, and how many variants it has.
  • Reads the ad text: headline and description, straight from Google's own preview.
  • Premium intelligence: days live, whether it's running now, and a 0–100 "likely working" score for each ad.
  • A free summary per source: ads delivered, Google's approximate total, the format mix and the date span.

Who is it for?

  • Marketers and media buyers studying what competitors run, where, and for how long.
  • Agencies building competitor decks and pitch research in minutes instead of days.
  • Sales and lead-gen teams finding companies that actively spend on Google Ads.
  • Researchers and journalists tracking brand or category advertising across countries.

Use cases

You want toWhat to set
See every ad a competitor's website runsdomains, with maxAdsPerSource raised
Find the ads that are probably workingincludeIntelligence and the free winner rows
Compare two brands' video ads in one countryTwo domains, region, and formats set to video
Collect headlines for copy researchincludeAdText
Check which companies in a list advertise on GoogleA list of domains, then read the free summary rows
Get an alert when a competitor launches new adsmonitorKey and deliveryWebhookUrl, on a schedule

Find the right advertiser by name

Advertiser names on Google are messy. Type "nike" and there are many accounts called something like Nike. The actor picks the advertiser with the most ads among those whose name contains what you typed, and if none does, the advertiser with the most ads overall. The other candidates are listed in a free advertiser row, so you can switch to an exact ID.

The choice is shown in a free advertiser row with its ID, country, ad count and verification status, plus up to 5 alternatives. If it picked the wrong one, copy the right ID from alternatives into your next run.

What each ad gives you

  • Format: text, image or video.
  • First and last shown dates.
  • A preview image and the link to the ad on Google's Transparency Center.
  • With includeDetails: the countries where it ran, with the last-shown date in each, and how many variants it has.
  • With includeAdText: the headline and description, read from the ad's preview. For example, one Nike text ad gives "Shop Nike® Clearance" and "Save with Nike® clearance. Shop shoes, apparel and accessories on sale." Image and video ads often have no text to read.

Every source also gets a free summary row: ads delivered, Google's approximate total, the mix of formats, and the date span.

What we measured

Live runs on Apify Proxy, 1 November 2026:

CheckResult
Name lookup "nike"Nike, Inc. (US, 9,000 to 10,000 ads), with the other candidates listed in the free advertiser row
Domain nike.com, 50 ads with detailsevery ad came with the countries it ran in, and the last-shown date for each
Ad text, same 50 adsheadline and description for 27 of 38 text ads and 8 of 11 image ads
Domain nike.com, region GB, video only13 video ads in 23 seconds

Ad text is read from Google's own ad preview. When a preview has no readable text, the ad still arrives at the plain ad price.

Built to finish the run

  • Every request runs in a warmed-up session with its own cookies and proxy address, and requests are paced.
  • Rate limits and block pages get up to 4 attempts, with a growing pause. A session that stops working is replaced.
  • On Apify Proxy, datacenter addresses are used first. After repeated rate limits, the actor moves to residential addresses if your plan has them.
  • A failed lookup never fails the run. It gets an error row, and every other advertiser still finishes.
  • If details or text can't be fetched for one ad, the ad still arrives with detailsError or textError set, at the plain ad price.

How to use the Google Ads Transparency scraper

  1. Click Try for free.
  2. Enter advertisers (names or IDs like AR16735076323512287233) or domains (like nike.com), up to 50 of each.
  3. Pick a region, or leave it as anywhere.
  4. Choose the formats you want and how many ads per source.
  5. Click Start, then download the dataset as JSON, CSV or Excel, or run the actor from the Apify API or on a schedule.

Input example

{
"advertisers": ["nike"],
"region": "US",
"formats": ["text", "image", "video"],
"maxAdsPerSource": 200,
"includeDetails": true,
"includeAdText": true
}

More ready-to-run inputs

Use caseInput
Every ad for a website{"domains": ["nike.com"], "maxAdsPerSource": 1000}
Competitors' video ads in the UK{"domains": ["nike.com", "adidas.com"], "region": "GB", "formats": ["video"]}
One advertiser by ID, with ad text{"advertisers": ["AR16735076323512287233"], "includeAdText": true, "maxAdsPerSource": 100}

Domains are cleaned for you: https://www.nike.com/us becomes nike.com.

Use it from an AI agent

Add the actor to any MCP client (Claude, Cursor, VS Code and others) through Apify's hosted MCP server:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=brainfoods_studio/google-ads-transparency-scraper"
}
}
}

Then ask in plain words: "Show me the text ads Nike ran on Google in the US this month, with their headlines." See Apify's MCP docs.

Integrations

Everything runs on Apify, so it plugs into the tools you already use:

  • Apify API and SDKs (JavaScript, Python) to start runs and read results from your own code.
  • Schedules to check competitors daily or weekly. Monitor mode then returns only new ads.
  • Make, Zapier and n8n to send ads to Google Sheets, a CRM or a database without writing code.
  • Webhooks and Slack to get a message when a competitor launches something new.
  • MCP for Claude, Cursor and other AI agents, as shown above.

See Apify integrations.

What you get

Row typeOne row perMain columns
adadadvertiserName, creativeId, format, firstShown, lastShown, previewImageUrl, adUrl, headline, description, displayUrl, regions, regionsLastShown, variantCount
advertisername lookup (free)advertiserId, name, country, adCountMin, adCountMax, verified, alternatives
summaryadvertiser or domain (free)ads, approxTotal, formats, firstShown, lastShown, stoppedAt
errorfailed stepstage, source, errorKind, message, attempts

One ad row, without details or text:

{
"type": "ad",
"source": "nike",
"sourceType": "advertiser",
"region": "US",
"rank": 1,
"advertiserId": "AR16735076323512287233",
"advertiserName": "Nike, Inc.",
"creativeId": "CR05757739320572116993",
"format": "text",
"firstShown": "2023-11-17",
"lastShown": "2026-11-01",
"previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/4471758449974537828",
"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR05757739320572116993?region=US"
}

Every ad row has the same columns. Fields you didn't ask for are empty, so the dataset opens cleanly in a spreadsheet.

Premium features

Intelligence: which ads are working?

Set includeIntelligence: true (it switches on details) and every ad gets daysLive and activeNow. Each advertiser or website also gets up to 10 free winner rows: the ads most likely to be working, scored 0–100 from how long they ran, how many variants they have and how many countries they ran in. Long-running ads are the usual sign of an ad that performs. The summary row lists the top 5.

On nike.com (1 November 2026), the top-ranked ads had run for 1,100+ days, in 5 variants, across 96 to 118 countries.

Monitor mode: only what's new

Set monitorKey to any name and run the actor on a schedule. Each run remembers what it returned, and the next run with the same name returns only ads you haven't seen yet, so you pay only for new results. Add deliveryWebhookUrl (a Slack incoming-webhook URL or any HTTPS endpoint) and a short alert with a link to the results is posted whenever something new turns up. The first run only builds the memory and never alerts. Use one monitorKey per schedule.

Pricing

You pay per ad delivered. Advertiser rows, summary rows and error rows are free.

ResultFree planBronzeSilverGold and up
Ad$0.001$0.0008$0.0006$0.0005
Ad with details, text or intelligence$0.0025$0.002$0.0017$0.0015
Monitor alert, per alert sent$0.01$0.01$0.01$0.01
  • Charged only after your results are saved. Never for error rows, advertiser rows or summaries.
  • Never past your spending limit. When the limit is reached, the actor stops fetching new pages, and the run still succeeds.
  • No extra start fee. Only Apify's standard run start charge of $0.00005 applies.
  • If details or text fail for an ad, it's charged at the plain ad price.
  • Ads you filter out by format are never charged.

What typical runs cost, before the start charge:

RunFree planBronze
1 advertiser, 100 ads$0.10$0.08
1 advertiser, 100 ads with details and text$0.20$0.16
1 large advertiser, 8,000 ads$8.00$6.40

FAQ

Do I need a Google account or an API key?

No. You only need an Apify account. Click Try for free, enter a website or brand and start.

Is this data public?

Yes. Google publishes it in the Ads Transparency Center so anyone can see who advertises and what they show. This actor reads the same public pages.

How many ads can I get?

Up to 10,000 per advertiser or domain per run. The free summary row shows Google's approximate total, so you know how much is there before you raise the limit.

Why is headline empty for some ads?

Ad text is read from the ad's preview. Text ads usually have it; image and video ads often don't. Those ads arrive with headline empty.

Any country, by its 2-letter code, or anywhere. With includeDetails, each ad also lists every country where it ran.

This actor reads public transparency data that Google publishes on purpose. It does not solve captchas and does not try to get around anti-bot checks. It respects Google's rate limits by waiting and backing off. Use the data in line with Google's terms, advertisers' rights and the laws where you live.

More from Brainfoods Studio

  • Google Trends Scraper: interest over time for up to 100 keywords on one 0–100 scale, plus regions, related queries and trending now.
  • Google News Scraper: articles by search, topic or top stories, past the 100-article cap, with real publisher URLs.
  • Google Play Scraper: app details and reviews, plus an App health report that shows which release hurt the rating.

Support

We're the new kids on this Store, so every issue gets an answer from the people who wrote the code. Found a problem, or need a field we don't return yet? Open an issue in the Issues tab. And if this actor saved you an afternoon, a review helps the next person find it.

Built and maintained by Brainfoods Studio.