Google Ads Transparency Scraper: Creatives, Countries & Reach avatar

Google Ads Transparency Scraper: Creatives, Countries & Reach

Pricing

from $0.75 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper: Creatives, Countries & Reach

Google Ads Transparency Scraper: Creatives, Countries & Reach

Scrape the Google Ads Transparency Center: every ad a competitor runs on Search, YouTube, Shopping, Maps & Play: ad image, video, text & landing page when Google has them, countries, EU impressions, audience & political spend. New-ad alerts, no login.

Pricing

from $0.75 / 1,000 ads

Rating

0.0

(0)

Developer

Smoldesk Studios

Smoldesk Studios

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

9 hours ago

Last modified

Features

Limited permissions

Share

Google Ads Transparency Scraper: every ad a competitor runs on Google Search, YouTube and Shopping

Scrape the Google Ads Transparency Center and see every ad a competitor runs on Google Search, YouTube, Shopping, Maps and Play. Search by domain (nike.com), advertiser name or advertiser ID, filter by country, format, platform and date, and get one row per ad with the ad image or YouTube video, first and last shown dates, and the headline, description, call to action and landing page wherever Google keeps the ad as text (most video and display ads; Search ads usually come as an image of the full ad; see Limitations). Turn on full details for every country the ad ran in, impression ranges per country and per Google platform (EU and political ads), the audience selection (demographics, locations, contextual signals, customer lists, interests), Google's topic label and the advertiser's legal name and country. Political ads come with spend and impression ranges. A monitoring mode returns only ads that are new since your last run. Advertisers mode answers "who advertises?": one row per advertiser account behind a brand name or domain (the brand, its country accounts, agencies and resellers) with legal name, country, verified badge and roughly how many ads it runs. Every ad also carries the advertiser's ad count and, where Google has them, the Google Ads customer ID and ad group ID so you can group ads by account and campaign. No login, no API key, no browser, no start fee.

What you get

{
"type": "ad",
"advertiserId": "AR06374349942554624001",
"advertiserName": "Canva, Pty Ltd",
"creativeId": "CR15674834518026485761",
"adUrl": "https://adstransparency.google.com/advertiser/AR06374349942554624001/creative/CR15674834518026485761?region=US",
"format": "video",
"firstShown": "2026-09-07T04:32:06Z",
"lastShown": "2026-10-18T14:38:18Z",
"daysShown": 43,
"domain": "canva.com",
"headline": "Start designing with Canva today",
"longHeadline": "Save hours designing your social posts with Canva’s free templates.",
"description": "Sign up to Canva and choose from millions of free templates.",
"callToAction": "Learn more",
"businessName": "Canva",
"displayUrl": null,
"landingUrl": null,
"youtubeVideoId": "KoSaMtJK_gM",
"youtubeUrl": "https://www.youtube.com/watch?v=KoSaMtJK_gM",
"videoDuration": "0:18",
"appId": null,
"imageUrl": "https://i.ytimg.com/vi/KoSaMtJK_gM/hqdefault.jpg",
"imageUrls": ["https://i.ytimg.com/vi/KoSaMtJK_gM/hqdefault.jpg"],
"productTitle": null,
"productMerchant": null,
"dynamicSearchAd": false,
"searchRegions": ["US"],
"searchQuery": "canva.com",
"advertiserAdCountMin": 5000,
"advertiserAdCountMax": 6000,
"googleCustomerId": "4771748616",
"adGroupId": "194116809521",
"googleCreativeId": "828038055490",
"versionId": null,
"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?...",
"markdown": "**Canva, Pty Ltd** — video ad for canva.com\nHeadline: Start designing with Canva today\n…",
"scrapedAt": "2026-10-18T15:22:09+00:00"
}

What you can use it for

  • Competitor ad research: pull every live creative of a rival brand, see what they say, where they send traffic and how long each ad has been running.
  • Creative inspiration and swipe files: collect long-running ads (high daysShown): the ones that work are the ones advertisers keep paying for.
  • New-ad alerts: schedule a daily run with Only new ads and get just the creatives a competitor launched since yesterday.
  • Agency pitches and audits: show a prospect which competitors advertise in their market, on which Google products, in which countries.
  • EU reach analysis: impression ranges per country and per platform, and the audience criteria advertisers chose (Digital Services Act data).
  • Election and political ad monitoring: spend ranges, impressions and the regions each political ad targeted.
  • Ad checks and lead lists: feed a list of company websites in Advertisers mode to see which ones run Google Ads, under which accounts and roughly how many ads.
  • Campaign grouping: googleCustomerId groups ads from one Google Ads account, adGroupId ads from one ad group.
  • Brand protection: search your own domain to find resellers, affiliates and look-alike advertisers bidding on your traffic.
  • AI agents and RAG: every ad has a clean markdown summary ready for an LLM.

Why this scraper

This ActorOther Actors on the Store
1,000 ads with ad copy, image, landing page and dates$1.00 ($0.75 on Business)$0.12 to $12; the most-used one is $2.00
Full details (countries, impressions, audience, variations)+$2.00 per 1,000The most-used one charges +$3.00
Advertiser list (legal name, country, verified, ad count)$2.00 per 1,000 advertisersThe most-used one charges $3.00
New-ad alertsBuilt in: already-seen ads are skipped and not charged
Login, cookies or proxy setupNever

Competitor prices checked on the Apify Store in November 2026 (Free plan price first). Store prices change, so check the Pricing tab of any Actor before you compare.

How to scrape Google Ads Transparency

1. Add competitors. Type domains or advertiser names, pick countries and a start date, and switch on full details if you need countries, impressions and audience.

Step 1: add competitor domains, countries and a start date

2. Click Start. The Actor finds each advertiser and lists their ads, then adds the details you asked for.

Step 2: click Start and watch the run log

3. Get clean data. One row per ad with the advertiser, format, ad copy, landing page and the dates it ran. Export it as JSON, CSV or Excel, or read it through the API.

Step 3: get one row per ad and export it as JSON, CSV, Excel or via API

Tips

  • Start without full details to see how many ads a brand runs (Google lists about … in the log), then add details for the ads you care about.
  • Big brands run tens of thousands of ads, so use Max ads per domain / advertiser, a country and a date filter.
  • Some brands have one advertiser account per country. Raise Advertiser accounts per name (0 = all) to get them all, or switch Results to Advertisers first to see which accounts exist.
  • Many targets? Paste them into URL list, or paste one link to a .txt/.csv file or a Google Sheet shared as "anyone with the link".

Output reference

Input examples

Competitor ads in the US, newest 200, with ad copy:

{
"domains": ["booking.com", "expedia.com"],
"regions": ["US"],
"maxAdsPerSearch": 200
}

A brand's YouTube video ads in Germany since September, with countries, impressions and audience:

{
"advertisers": ["AR16735076323512287233"],
"regions": ["DE"],
"adFormat": "VIDEO",
"platforms": ["YOUTUBE"],
"startDate": "2026-09-01",
"includeDetails": true
}

Who advertises for these brands? One row per advertiser account (ad check):

{
"resultType": "advertisers",
"domains": ["nike.com", "hellofresh.com"],
"advertisers": ["Shopify"],
"regions": ["United States"]
}

Ads on Search and YouTube only, for a list pasted from a spreadsheet:

{
"urlsFromFile": "booking.com\nexpedia.com\nhttps://adstransparency.google.com/advertiser/AR01625195283841286145",
"platforms": ["SEARCH", "YOUTUBE"],
"regions": ["GB"],
"maxAdsPerSearch": 100
}

Daily new-ad alerts (schedule this):

{
"domains": ["competitor.com"],
"regions": ["GB"],
"onlyNewAds": true
}

Political ads in the US with spend:

{
"politicalAdsOnly": true,
"regions": ["US"],
"maxAdsPerSearch": 500
}

Pricing

Pay only for the ads you get. No monthly rent, a near-zero start fee.

WhatFree & StarterScaleBusiness
Ad (with ad copy, image, landing page, dates)$1.00 / 1,000$0.90$0.75
Full details add-on (countries, impressions, audience, topic, variations, advertiser info)+$2.00 / 1,000+$1.75+$1.50
Advertiser (Advertisers mode: legal name, country, verified, ad count)$2.00 / 1,000$1.75$1.50
Actor start$0.0005 per run$0.0005$0.0005

Examples: 1,000 competitor ads with ad copy = $1.00. 1,000 ads with full details = $3.00. A daily new-ads check that finds 15 new creatives costs $0.015. An ad check of 500 company websites that finds 300 advertiser accounts costs $0.60. Ads that were skipped (already seen, outside your filters) are never charged. Set Maximum cost per run in the run options and the Actor stops cleanly when it is reached.

Use with AI agents (Claude, ChatGPT, Cursor, MCP)

Add the Actor as a tool through the Apify MCP server: https://mcp.apify.com?actors=smoldesk/google-ads-transparency-scraper. Then paste this into your agent's system prompt or tool notes, so it knows when to call it:

Tool: smoldesk/google-ads-transparency-scraper (Google Ads Transparency Scraper, Apify)
Use it when: the user wants to see the ads a company or competitor runs on Google Search, YouTube, Shopping, Maps or Play: ad text, images, videos, landing pages, countries, first and last shown dates, EU impressions, or political ad spend. Also lists who advertises for a brand or domain (resultType "advertisers": one row per advertiser account with legal name, country, verified badge and ad count). Search by website domain or advertiser name. No login needed.
Don't use it when: the user wants their own ad account data (clicks, spend, CPC), Meta/Facebook or TikTok ads, keyword search volumes (use smoldesk/google-trends-scraper for interest over time), or anything that needs a Google Ads login.
How to call: run the Actor with JSON input and read the dataset items. Results cost money per item, so keep the counts small unless the user asks for more.
Example input: {"domains": ["nike.com"], "regions": ["US"], "platforms": ["YOUTUBE"], "maxAdsPerSearch": 50}
Advertiser list: {"resultType": "advertisers", "domains": ["nike.com"], "regions": ["US"]}

Questions an agent can answer with it:

  • What ads is my competitor running on YouTube right now, and what do they promise?
  • Which landing pages does this brand send its Google Search ads to?
  • Has this advertiser started any new ads since last week?
  • Which companies and agencies run Google Ads for this brand, and how many ads each?

Your agent can pay for its own runs. This Actor is approved for agentic payments on Apify, so an agent with a Skyfire token or an x402 wallet can call it and pay per result without an Apify account. Skyfire: use https://mcp.apify.com?payment=skyfire. x402: buy a prepaid Apify token with USDC. Setup: Apify agentic payments docs.

Want every Smoldesk scraper as agent tools in one connection? See the full list on our publisher page.

Use with AI (LangChain / LlamaIndex / CrewAI)

Each ad has a markdown field (advertiser, headline, text, call to action, landing page, dates, countries), so the dataset drops straight into an LLM or vector store:

from langchain_apify import ApifyDatasetLoader
from langchain_core.documents import Document
loader = ApifyDatasetLoader(
dataset_id="<your run's dataset ID>",
dataset_mapping_function=lambda ad: Document(
page_content=ad["markdown"],
metadata={"advertiser": ad["advertiserName"], "url": ad["adUrl"], "format": ad["format"]},
),
)
docs = loader.load()

Ask your agent "What messages does this competitor test on YouTube?" or "Which landing pages get the most ads?". The Actor also works as a tool in the Apify MCP server (smoldesk/google-ads-transparency-scraper).

Limitations

  • Ad copy depends on what Google stores. In our tests (500 US ads, 5 brands) the text fields were filled for ~80% of video ads and ~40% of image/display ads (the rest are HTML5 banners with no readable text). Search text ads are mostly stored by Google as a screenshot: you get that image in imageUrl (it shows the full ad: headline, URL and text) but the text fields stay empty for ~95% of them. With Full details on, the Actor reads every variation (up to 5) and fills the text from the first one Google keeps as text, which works for some advertisers (e.g. most Nike Search ads) and not others.
  • Impressions and audience are published by Google only for ads shown in the EU (and for political ads). For other countries you get first/last shown dates per country; impressions are null.
  • Dynamic Search Ads have no fixed headline: dynamicSearchAd is true and headline is null.
  • Google's ad counts are approximate ranges (in the log, and in adCountMin/adCountMax and advertiserAdCountMin/advertiserAdCountMax).
  • googleCustomerId, adGroupId, googleCreativeId and previewUrl come from Google's ad preview script. Ads Google stores only as an image (most Search text ads, plain image ads) have none, so these fields are null for them; video and HTML5 ads usually have them.
  • Advertisers mode by domain reads the domain's newest ads (500 by default, Ads read per domain) and lists the accounts behind them. An account that ran only a few old ads for the domain can be missed; raise the setting for a deeper scan (reading ads is not charged, only the advertiser rows are).
  • Searching by a brand name matches Google's advertiser names, which are legal names, so "Nike" also matches small unrelated accounts. The Actor takes the biggest account with that name, and searching by domain is the most precise.
  • HTML5 banner ads have no readable text; you get their size and the ad page link.
  • The Center lists ads from verified advertisers, back to about 2020.

FAQ

Is there a Google Ads Transparency Center API? No public one. This Actor reads the same data the Ads Transparency Center website shows and returns it as structured JSON. It is effectively a Google Ads Transparency API without an API key.

Is it legal to scrape the Ads Transparency Center? The Center is a public website Google built so anyone can see who is advertising and what. The Actor reads only that public information, without logging in. Check your local laws and the terms of the sites you work with before using the data.

Do I need a Google account or a proxy? No. The Actor needs no login. It sends requests from its own IP and switches IP by itself when Google slows it down, so you don't configure anything.

How do I find all ads of a competitor? Search by their domain to get every advertiser sending traffic there, or by advertiser name to get only their own account. Raise Advertiser accounts per name (0 = all) for brands with one account per country, or use Advertisers mode to list every account first.

How do I get alerts for new ads? Turn on Only new ads and schedule the Actor. The first run returns the current ads; each later run returns only ads first shown after the previous run.

Can I get the ad images and videos? Yes. imageUrl / imageUrls link to the ad image (for many text ads, a screenshot of the full ad), and video ads have youtubeVideoId and youtubeUrl.

Does it scrape the Meta (Facebook) Ad Library? No, Google only. It covers Google Search, YouTube, Shopping, Maps, Play and the Display Network.

Feedback

Missing a field, or an ad that doesn't look right? Open an issue on the Issues tab; fixes usually ship within a day. If the Actor saved you time, a short review on this page helps other people find it.

Code examples and a quick reference are also on GitHub: smoldesk/google-ads-transparency-scraper.

More Actors from Smoldesk Studios

  • Websiteless: Google Maps Leads Without a Website: local businesses with no website, only a Facebook page or a broken site, scored 0 to 100 with reasons to pitch
  • Google Trends Scraper: interest over time, by region and city, related queries and Trending now, no API key
  • Shopify Store Analyzer: apps, contacts and products of any Shopify store
  • Contact Details Scraper: emails, phone numbers, social profiles and contact forms from any list of websites, with email domains checked and junk removed, charged only when contacts are found
  • Google Maps Scraper: places with phones, websites, ratings and hours from any search, plus emails and social profiles from each business website, lead filters and new-place monitoring
  • YouTube Scraper: videos, Shorts, channels and comments from search, channels and playlists, exact views, likes, publish dates and durations, no API key
  • All Smoldesk Studios Actors