Google Ads Transparency Scraper – Ad Copy, Countries & Reach avatar

Google Ads Transparency Scraper – Ad Copy, Countries & Reach

Pricing

from $1.00 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper – Ad Copy, Countries & Reach

Google Ads Transparency Scraper – Ad Copy, Countries & Reach

Scrape the Google Ads Transparency Center: every ad a competitor runs on Search, YouTube, Shopping, Maps & Play with headline, text, landing page, images, countries, EU impressions, audience & political spend. No login, no start fee.

Pricing

from $1.00 / 1,000 ads

Rating

0.0

(0)

Developer

Smoldesk Studios

Smoldesk Studios

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Ads Transparency Scraper – Creatives, Countries & Reach

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. No login, no API key, no browser, no start fee.

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.
  • 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.

How to scrape Google Ads Transparency

  1. Create a free Apify account and open this Actor.
  2. Say whose ads you want:
    • Domains: nike.com, booking.com — every advertiser sending traffic there (brand, resellers, agencies).
    • Advertisers: a name like Shopify, an advertiser ID (AR16735076323512287233) or the advertiser's page URL. Google lists advertisers under legal names, so a name goes to the biggest account carrying it (Shopify → Shopify Inc.); if no big account has the name (Temu, Canva), the Actor searches the brand's domain instead and says so in the log.
    • Ads Transparency Center URLs: paste any URL from adstransparency.google.com — its filters are kept. A single ad URL returns that ad with full details.
    • Political ads only: the latest election ads in the chosen countries, with spend.
  3. Narrow it down with Countries (US, GB, DE…), Ad format (text, image, video), Google platform (Search, YouTube, Shopping, Maps, Play) and Shown on or after / before dates (2026-09-01, -30).
  4. Leave Ad copy on for headline, text, call to action and landing page. Turn on Full details for countries, impressions, audience and all variations.
  5. Click Start. 100 ads take a few seconds; with full details about 1 minute.
  6. Download as JSON, CSV or Excel, or read the dataset through the Apify API.
  7. For alerts, turn on Only new ads and add a Schedule (daily or weekly). Each run returns only creatives first shown since the previous run.

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 — use Max ads per domain / advertiser, a country and a date filter.
  • Some brands have one advertiser account per country. Turn on All advertisers with that name to get them all.

Output: ad

{
"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",
"markdown": "**Canva, Pty Ltd** — video ad for canva.com\nHeadline: Start designing with Canva today\n…",
"scrapedAt": "2026-10-18T15:22:09+00:00"
}

With Full details on, each ad also has:

{
"topic": "Travel & Tourism",
"adType": "Commercial",
"regionCount": 7,
"regions": [
{
"country": "NL",
"countryName": "Netherlands",
"firstShown": "2025-10-24",
"lastShown": "2026-10-18",
"impressionsMin": 20000,
"impressionsMax": 25000,
"platforms": [
{"platform": "Google Search", "impressionsMin": 20000, "impressionsMax": 25000},
{"platform": "Google Shopping", "impressionsMin": 0, "impressionsMax": 1000}
]
}
],
"euImpressions": {"impressionsMin": 25000, "impressionsMax": 30000, "firstShown": "2025-10-24", "lastShown": "2026-10-18"},
"audienceSelection": {
"demographicInfo": "included",
"geographicLocations": "included and excluded",
"contextualSignals": "included"
},
"variationCount": 3,
"variations": [{"headline": "…", "description": "…", "imageUrls": ["…"]}],
"advertiserLegalName": "Booking.com B.V.",
"advertiserCountry": "NL",
"advertiserCountryName": "Netherlands",
"advertiserVerified": true
}

Political ads add:

{
"political": {
"impressionsMin": 35000,
"impressionsMax": 40000,
"spendCurrency": "USD",
"spendMin": 500,
"spendMax": 600,
"regions": ["US"]
}
}

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",
"platform": "YOUTUBE",
"startDate": "2026-09-01",
"includeDetails": true
}

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.

WhatPrice
Ad (with ad copy, image, landing page, dates)$1.00 per 1,000 ads
Full details add-on (countries, impressions, audience, topic, variations, advertiser info)+$2.00 per 1,000 ads
Actor start$0.00005 per run

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. 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 (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 count per search is approximate (shown as a range in the log).
  • 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 — 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 — 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. Add All advertisers with that name for brands with one account per country.

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.

More Actors from Smoldesk Studios