Google Ads Transparency Scraper: every ad of any advertiser avatar

Google Ads Transparency Scraper: every ad of any advertiser

Pricing

$1.00 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper: every ad of any advertiser

Google Ads Transparency Scraper: every ad of any advertiser

Monitor brands without a login. Enter domains, IDs or names; get filterable output with sizes, formats and permalinks for reports, agencies and AI agents. Costs 1 USD per 1,000 ads.

Pricing

$1.00 / 1,000 ads

Rating

0.0

(0)

Developer

BEPO Labs

BEPO Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Features

Limited permissions

Share

πŸ“’ What is Google Ads Transparency Scraper?

See who pays for what: this Actor reads the Google Ads Transparency data of a business and returns each of its ads as a tidy row. Start from a domain, an ID or just a brand such as Canva, narrow by country, format and period, and collect up to 2,000 per target in one run.

  • Competitor ad research: see which ads your competitors run, how long they keep them and in which countries
  • Creative inspiration: collect the image ads of a whole category to study formats, sizes and messages
  • Agency pitches and audits: show a prospect what their competitors advertise before the first meeting
  • Brand protection: find ads that link to your domain from advertisers you do not know
  • Market and compliance research: track how long ads stay live and which regions they target over time

Google Ads Transparency Scraper: Every ad a company runs on Google, by domain, advertiser ID or name, from the Ads Transparency Center.

✨ Why use this Actor?

  • βœ… Three ways in: websites, verified IDs or plain names, mixed in one run (up to 50 targets)
  • βœ… Region, format and period filters: two-letter country codes for over 50 countries, text, image or video only, and a shown-from and shown-until limit
  • βœ… Dates you can sort on: first and last shown as ISO timestamps, so you can see at once which ads are new and which still run
  • βœ… Direct links: each row points to the ad's page in the Transparency Center and to the archived creative
  • βœ… No login, no cookies: uses the same public calls the Transparency Center page makes in your browser
  • βœ… Pay per ad: 1 USD per 1,000 ads; targets that fail cost nothing

πŸ“¦ What data can you get with Google Ads Transparency Scraper?

🏒 Advertiser nameπŸ†” Advertiser ID and creative ID🎞️ Format: text, image or video
πŸ–ΌοΈ Ad image URLπŸ“ Width and height▢️ Preview URL
🌐 Advertised domainπŸ“… First shownπŸ•’ Last shown
πŸ—ΊοΈ RegionπŸ”— Link to the ad in the Transparency Center🎯 The target it was found by

Text ads are archived as pictures, so they usually carry an image URL and a size too. Video and some other ads come with Google's preview instead.

πŸš€ How to use Google Ads Transparency Scraper

Google Ads Transparency Scraper works in a few clicks, no coding needed:

  1. Create a free Apify account (the free plan includes 5 USD of monthly credit).
  2. Open Google Ads Transparency Scraper and click Try for free.
  3. Enter one or more websites, IDs or names. Optionally pick a region, a format and a period, and set how many ads you want each.
  4. Click Start and wait for the run to finish (most runs take seconds).
  5. Download your data as JSON, CSV, Excel, XML or HTML, or send it straight to Google Sheets, Make, Zapier or your AI agent.

How Google Ads Transparency Scraper works

⬇️ Input

Add at least one domain, ID or brand name, up to 50 in total. Everything else is optional.

Domain, ID or name?

A website (nike.com; full URLs are shortened) finds every ad linking to it, from any buyer. An ID (AR and 20 digits) is the exact account from the Transparency Center URL. A name is matched to the advertiser called exactly that with the most ads, else the closest suggestion.

Region

A two-letter country code such as US, DE or GB limits results to ads shown there. The default anywhere covers every region.

How many ads

maxAdsPerTarget caps each target (default 100, up to 2,000). Ads come newest first, 40 per request.

FieldTypeWhat it doesDefault
Domains (domains)arrayAdvertised domains, e.g.["nike.com"]
Advertiser IDs (advertiserIds)arrayVerified advertiser IDs (AR followed by 20 digits), as in the Transparency Center's advertiser URL.
Advertiser names (advertiserNames)arrayNames such as Canva; each is matched to the advertiser with that exact name and the most ads (else the closest suggestion).
Region (region)stringTwo-letter country where the ads were shown (US, DE, GB ...), or anywhere."anywhere"
Format (format)stringReturn only ads of this creative format: "all", "text", "image" or "video"."all"
Shown from (dateFrom)stringOnly ads shown on or after this day (YYYY-MM-DD).
Shown until (dateTo)stringOnly ads shown on or before this day (YYYY-MM-DD).
Max ads per domain or advertiser (maxAdsPerTarget)integer1 to 2,000; ads come newest first, 40 per call.100
Proxy (proxyConfiguration)objectGoogle shows one IP its captcha page after a few dozen calls; Apify Proxy (datacenter, on by default) gives each retry a new IP.{"useApifyProxy":true}

Google Ads Transparency Scraper input form

Input example

{
"domains": [
"nike.com"
],
"region": "US",
"maxAdsPerTarget": 50
}

⬆️ Output

Every ad becomes one row. The run summary in the key-value store (OUTPUT) has a line per target with the ads saved, the total Google reports and the error if it failed.

Google Ads Transparency Scraper output table

Output example

One row of the dataset (local run on nike.com in the US, 2026-10-16):

{
"target": "nike.com",
"targetType": "domain",
"advertiserId": "AR16735076323512287233",
"advertiserName": "Nike, Inc.",
"creativeId": "CR06462557060302110721",
"format": "text",
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/142794422222513915",
"width": 348,
"height": 419,
"previewUrl": null,
"domain": "nike.com",
"firstShown": "2023-11-16T22:40:58.000Z",
"lastShown": "2026-10-16T02:52:44.000Z",
"region": "US",
"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR06462557060302110721?region=US"
}

View the results as a table or JSON in the Output tab and download them as JSON, CSV, Excel, XML, HTML or RSS, all fields or only those you pick.

πŸ’° How much does Google Ads Transparency Scraper cost?

Google Ads Transparency Scraper is priced per event: 1 USD per 1,000 ads (0.001 USD each), with no monthly rental. Each saved ad is billed once; targets that fail (no advertiser found, Google's captcha page) cost nothing.

You getYou pay
100 ads0.1 USD
1,000 ads1 USD
10,000 ads10 USD
100,000 ads100 USD

πŸ’‘ Apify's free plan gives you 5 USD of credit every month, enough for about 5,000 ads at no cost. Set a spending limit per run and the Actor stops there.

Google Ads Transparency ScraperTransparency Center websiteAd intelligence suites
Search by domain, ID or nameβœ… all three, mixedβœ… one at a timeβœ…
Many advertisers in one goβœ… up to 50 per runβŒβœ…
Export to CSV, Excel, JSONβœ…βŒβœ…
Schedules, API and MCP for AI agentsβœ…βŒAPI on higher plans
Priceβœ… 1 USD per 1,000 adsfree, by handmonthly subscription

πŸ”Œ Integrations, API and MCP

Connect Google Ads Transparency Scraper to your AI agent (MCP)

Give Claude, ChatGPT, Cursor or any MCP client direct access to Google Ads Transparency Scraper through the Apify MCP server. Add this URL to its settings:

https://mcp.apify.com/?actors=bepolabs/google-ads-transparency

For Claude Desktop, add it under mcpServers in claude_desktop_config.json:

{
"mcpServers": {
"google-ads-transparency": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--actors",
"bepolabs/google-ads-transparency"
],
"env": {
"APIFY_TOKEN": "<your Apify API token>"
}
}
}
}

Then ask: "Show me the newest 20 ads that link to nike.com in the US and summarise which formats they use."

Run it from your code

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("bepolabs/google-ads-transparency").call(run_input={"domains":["nike.com"],"region":"US","maxAdsPerTarget":50})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('bepolabs/google-ads-transparency').call({"domains":["nike.com"],"region":"US","maxAdsPerTarget":50});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

No-code integrations

Send results to Google Sheets, Slack, Airtable, HubSpot, Make, Zapier, n8n and more from the Integrations tab, start runs on a schedule, or trigger your own endpoint with a webhook when a run finishes. The Apify API gives you full control over runs and datasets.

❓ FAQ

Where does the data come from?

From Google's Ads Transparency Center (adstransparency.google.com), where Google publishes the ads of verified advertisers. The Actor repeats the calls your browser makes.

Why does a target say "captcha page"?

Google rate-limits busy IP addresses and then answers with its captcha page. The run summary names this and the Actor retries with backoff; if it persists, run again later with fewer inputs. Such runs are not charged.

Why do I get fewer ads than Google's total?

maxAdsPerTarget caps each input (default 100, at most 2,000). The run summary shows the total Google reports for each one.

Can I find an advertiser by name?

Yes. The name is matched to the advertiser called exactly that with the most ads; when none fits, the closest suggestion is used. The summary shows which ID was picked.

Which countries can I filter by?

Over 50 countries by two-letter code, among them US, GB, DE, FR, ES, IT, NL, CA, AU, IN, BR, MX and JP, or anywhere for all regions.

The Ads Transparency Center is an archive where Google lets anyone see who advertises and what; the Actor reads only that data, without a login, and Google's site has no robots.txt rule against it. The requests are the page's own and not an official API, so they can change. Ad creatives belong to their advertisers: use them for research and analysis, and check the rules that apply to you before you republish them.

What if something is missing or does not work?

Open an issue on the Issues tab; we read each one and reply. Feature requests are welcome too.

πŸ’¬ Your feedback

Tell us what Google Ads Transparency Scraper should add on the Issues tab or leave a review; your notes decide what we work on next.

ActorWhat it does
πŸ“ˆ Google Trends ScraperInterest over time for up to five keywords on one 0 to 100 scale, any country or worldwide, plus top and rising related queries.
πŸ“ˆ Wikipedia PageviewsDaily or monthly views of any Wikipedia article in any language, with totals and averages, from the official Wikimedia API.
πŸ“‡ Website ContactsCompany websites to emails, phone numbers and social profiles, one row per site, with a status that says why nothing was found.
πŸ’Ό ATS JobsEvery open job from company career boards on Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee in one deduped feed.
🌐 Domain RDAP and DNSDomains to registrar, creation and expiry dates, age, status, nameservers, DNSSEC and DNS records from official RDAP, in bulk.
πŸ“ OpenStreetMap PlacesShops, restaurants and offices in any city or area, with address, phone, website, opening hours and coordinates.
πŸ›οΈ Shopify ProductsAny Shopify store URL to every product, with variants, prices, sale prices, SKUs, stock and images.
🧩 Tech Stack DetectorAny list of domains to the technologies behind each site: CMS, shop, framework, analytics, CDN and hosting.