Google Ads Transparency Scraper - Competitor Ads avatar

Google Ads Transparency Scraper - Competitor Ads

Pricing

from $1.28 / 1,000 ad delivereds

Go to Apify Store
Google Ads Transparency Scraper - Competitor Ads

Google Ads Transparency Scraper - Competitor Ads

Scrape Google Ads Transparency Center by domain, advertiser, brand or keyword: every ad on Google Search, YouTube, Shopping, Maps and Play with format, first and last shown, days running, countries, image and preview. Filter by country, platform, format and date. No login.

Pricing

from $1.28 / 1,000 ad delivereds

Rating

0.0

(0)

Developer

Scrapewise Data

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 hours ago

Last modified

Share

Scrape every ad creative an advertiser or a domain is running on Google Search, YouTube, Shopping, Maps and Play, from the public Google Ads Transparency Center: format, first and last date shown, how many days it has been running, every country it ran in, the archived image, the ad preview and the direct Transparency Center link.

For competitive intelligence teams tracking a rival's paid campaigns, agencies auditing creative strategy in a market, and lead generation lists that need to know which companies are spending on Google Ads now. AI agents can call it through the Apify MCP server.

At a glance

Apify planPer 1,000 ads
FreeUS$ 1.50
BronzeUS$ 1.425
SilverUS$ 1.35
Gold and aboveUS$ 1.275

One charge per ad creative saved to the dataset, with or without country details and creative variations. Resolving a brand name into advertiser accounts is included. No monthly fee, no start fee; proxy and compute included. A creative is delivered once per run, so duplicates are not charged. One domain at the default settings (30 ads) costs US$ 0.045.

What it fixes

  • Four kinds of input, detected for you. A domain, an advertiser id, a Transparency Center URL or a brand name, which is resolved to its top matching advertiser accounts.
  • Filters run at Google, not afterwards. Country, platform, format and dates are sent inside the request, so a narrow filter is a cheaper run.
  • Country by country detail. With includeDetails, every country an ad ran in and the last date it was seen there, plus the number of variations, at the same price.
  • Captcha redirects handled. Blocked requests are retried on their own at no extra price, so you get ads, not captcha pages.
  • New ads only, for alerts. onlyNew skips creatives already delivered and the evergreen ads that started before your first run.

Input examples

The input form describes each field. Minimal input (30 ads of one domain, worldwide):

{ "searchQuery": "nike.com", "maxItems": 30 }

Video creatives of three competitors in the US:

{
"queries": ["nike.com", "adidas.com", "newbalance.com"],
"region": "US",
"format": "video",
"maxItems": 300
}

A daily alert for a competitor's newly launched ads (save as a Task with a daily Schedule):

{ "searchQuery": "nike.com", "region": "US", "maxItems": 100, "onlyNew": true }

The first run delivers up to maxItems and starts the watch. Later runs deliver, and charge, only creatives never delivered before that started running after the first run. A day with nothing new ends green with nothing charged. The memory is the Key-Value Store google-ads-transparency-only-new in your account, one record per target and filter set.

You type in searchQueryWhat the Actor does
a domain, nike.comevery advertiser account whose ads point to that domain
an advertiser id, AR16735076323512287233that account only
a Transparency Center URLreads the advertiser id or domain from the URL
a brand name, Nikeresolves it to its top matching accounts (maxAdvertisersPerQuery, default 3)

Switching from another Google Ads Transparency actor? Your existing input works

Your fieldRead as
domains, advertiserIds, startUrls (strings or {"url": ...})queries
advertiser, domainsearchQuery
maxResultsmaxItems
adFormatformat
startDate, endDatedateFrom, dateTo
platforms (list)platform (the first one)
onlyNewAdsonlyNew

The output keeps the usual names (creativeId, advertiserId, advertiserName, adFormat, firstShown, lastShown, approxDaysShown, imageUrl, previewUrl, adUrl), so most field mappings keep working.

Output example

A real row from a run on 2026-09-11 (nike.com, 300 ads, includeDetails: true, 58 seconds):

{
"creativeId": "CR00221530049440907265",
"advertiserId": "AR03005330488370921473",
"advertiserName": "NIKE GLOBAL TRADING B.V. SINGAPORE BRANCH",
"domain": "nike.com",
"adFormat": "IMAGE",
"firstShown": "2023-11-11",
"lastShown": "2026-09-11",
"approxDaysShown": 1007,
"regions": ["DE", "TH", "JP", "FR"],
"regionsDetail": [
{ "region": "DE", "lastShown": "2026-09-04" },
{ "region": "TH", "lastShown": "2026-09-11" },
{ "region": "JP", "lastShown": "2026-09-10" },
{ "region": "FR", "lastShown": "2026-09-11" }
],
"variations": 3,
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/16608621179754630885",
"previewUrl": null,
"adUrl": "https://adstransparency.google.com/advertiser/AR03005330488370921473/creative/CR00221530049440907265",
"platform": null,
"searchTarget": "nike.com",
"coletado_em": "2026-09-11T18:47:47.174474+00:00",
"url_origem": "https://adstransparency.google.com/?region=anywhere&domain=nike.com"
}

Output fields

Fill rates from a real run of 1,000 ads for nike.com (2026-09-11, 13 advertiser accounts: 920 text, 58 image and 22 video ads).

FieldWhat it holdsFilled
creativeId, advertiserId, advertiserNamethe creative and its advertiser account100%
domaindestination domainwhen you search by domain
adFormatTEXT, IMAGE or VIDEO100%
firstShown, lastShownfirst and last day Google saw the ad100%
approxDaysShownGoogle's own count of days running100%
regionscountries, as ISO codeswith includeDetails; otherwise the requested country
regionsDetail{region, lastShown} per countrywith includeDetails
variationsnumber of creative variationswith includeDetails
imageUrlarchived image file72%
previewUrlthe script Google uses to render HTML5 and video ads28% (69% with details)
adUrlthe ad's page in the Transparency Center100%
platformthe platform filter used, else nullwhen filtered
searchTarget, url_origem, coletado_emwhat you sent, the source page, collection time100%

The Console shows two views: Ads overview and Ad details.

Speed

Cloud runs on 2026-09-11: 30 ads in 6 s, 1,000 ads in 35 s, 300 ads with country details in 58 s, a brand name with video only and details (20 ads) in 22 s.

Use it from code and AI agents

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("scrapewise/google-ads-transparency").call(run_input={"searchQuery": "nike.com", "region": "US", "dateRange": "last_30_days"})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
print(ad["adFormat"], ad["firstShown"], ad["approxDaysShown"], ad["adUrl"])

The same works from Node.js, the HTTP API (run-sync-get-dataset-items), n8n, Make and Zapier. For AI agents: https://mcp.apify.com/?tools=scrapewise/google-ads-transparency.

Requests an agent can pass straight through:

  • "Show the video ads openai.com is running in the US" -> {"searchQuery": "openai.com", "region": "US", "format": "video", "maxItems": 50}
  • "Which YouTube ads did Temu run in the UK in the last 30 days?" -> {"searchQuery": "Temu", "region": "GB", "platform": "youtube", "dateRange": "last_30_days", "maxItems": 100}
  • "Tell me every day which new Search ads shein.com launched in Germany" -> {"searchQuery": "shein.com", "region": "DE", "platform": "google_search", "onlyNew": true, "maxItems": 100}

FAQ

Does it show how much a competitor spends? No. Google publishes spend and impressions only for political ads. You get the creative, format, countries and dates.

Domain or advertiser? A domain returns every account pointing to it (13 for nike.com: global, regional and agency accounts). An advertiser id returns one account.

How far back does it go? As far as the Transparency Center keeps the creative; ads running since 2021 came back in tests.

Why is regions empty? includeDetails is off, so only the country you filtered by is known.

Why is a country a number like "2175"? A few Google region codes are grouped or sub-national regions with no ISO equivalent and are returned raw.

Can I download the creatives? imageUrl is a direct image file. Video ads expose no MP4, only previewUrl.

Is it legal? It reads a public Google page without login and collects business information about advertisers, not personal data. You are responsible for how you use it.

Limitations

  • No spend, impressions or clicks for commercial ads.
  • domain is filled only when you search by domain.
  • The platform filter applies only to ads shown from 2023-09-04 onwards, by Google's rule.
  • No landing page URL: the click goes through Google's redirect, which is not followed.
  • includeDetails adds one request per ad, so runs with details are several times slower.

Errors

  • Every retry refused for a call: the run fails with a clear message instead of saving a half-empty dataset.
  • Google changes the Transparency Center: the run fails naming the part that changed.
  • Something missing or broken? Open an issue on the Issues tab with the input you used.

Changelog

  • 2026-10-23: clearer Store description.
  • 2026-10-19: examples for AI agents (Apify MCP server).
  • 2026-10-04: onlyNew for scheduled runs; approxDaysShown is always a whole number.
  • 2026-09-14: discounts by plan.
  • 2026-09-11: faster details; a 300-ad run with details went from over 10 minutes to 58 seconds.

Independent tool, not affiliated with Google.