Google Ads Transparency API: Competitor Ads by Domain or Brand avatar

Google Ads Transparency API: Competitor Ads by Domain or Brand

Pricing

from $0.85 / 1,000 ads

Go to Apify Store
Google Ads Transparency API: Competitor Ads by Domain or Brand

Google Ads Transparency API: Competitor Ads by Domain or Brand

Every ad a competitor runs on Google Search, YouTube, Display, Maps and Play, from Google's Ads Transparency Center. Search by website domain, brand name or advertiser ID. Get format, first and last shown dates, image links, YouTube video links and optional per-country reach. $1 per 1,000 ads.

Pricing

from $0.85 / 1,000 ads

Rating

0.0

(0)

Developer

Saulius AutomatesIT

Saulius AutomatesIT

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 minutes ago

Last modified

Share

See every ad a competitor runs on Google: Search, YouTube, Display, Maps, Play and Shopping. This Actor reads Google's public Ads Transparency Center and returns the ads as clean JSON, CSV or Excel. No Google account, no login, no cookies.

Give it a website domain (hubspot.com), a brand name (HubSpot), an advertiser ID (AR10072600183532683265) or any Transparency Center URL. For each ad you get:

  • Advertiser: Google-verified legal name and advertiser ID.
  • Format: text, image or video.
  • Dates: when Google first and last showed the ad, and on how many days it ran. Long-running ads are the ones that work.
  • Creative: the ad image (text ads are archived by Google as images too), the live preview link, and for video ads the YouTube video ID and URL.
  • Optional detail: every country the ad ran in with first and last shown dates, impression ranges where Google publishes them (EU countries), and all creative variations.

Why use it

  • $1 per 1,000 ads. The Store's best-known Google Ads Transparency scrapers charge $1.48 to $2 per 1,000 on the free plan, plus extra for details. Paid Apify plans get the usual discounts on top.
  • Domain search finds every advertiser. Agencies, resellers and regional entities that point ads to the same website all come back in one query.
  • Filters that matter. Country, format (text, image, video) and a date range, so a weekly run only returns ads shown that week.
  • YouTube links included. Video ads come with the YouTube URL at no extra cost, ready for our YouTube Transcript Scraper if you want the script of every competitor video ad.
  • Built for bulk and schedules. Each request goes out on a fresh proxy IP, so large brands with tens of thousands of ads finish without rate-limit failures. Empty queries cost nothing.

What it's used for

  • Competitor ad monitoring: a weekly scheduled run per competitor domain, filtered to the last 7 days, shows every new creative.
  • Creative research: find a brand's longest-running ads (daysShown) to see which messages and formats they keep paying for.
  • Agency prospecting: list every business advertising in a country and format, then check how active they are.
  • Brand protection: catch advertisers using your brand or domain.
  • Ad intelligence for AI agents: an agent can pull a competitor's ads and summarise their positioning.

Input

FieldWhat it doesDefault
queriesDomains, brand names, advertiser IDs or Transparency Center URLs, one per line
modeads, or advertisers to look up advertiser names and IDs onlyads
regionTwo-letter country code (US, GB, DE...) or anywhereanywhere
formatall, text, image or videoall
dateFrom, dateToOnly ads shown in this window (YYYY-MM-DD)all time
maxAdsPerQueryCap per query line, newest ads first100
includeDetailsAdd per-country dates, EU impression ranges and all variationsfalse
includeVideoIdsAdd YouTube video ID and URL to video ads (free)true
maxAdvertisersPerNameFor brand names: how many matching advertisers to scrape, most ads first1

Example:

{
"queries": ["hubspot.com", "salesforce.com"],
"region": "US",
"dateFrom": "2026-09-01",
"maxAdsPerQuery": 500
}

Domain or brand name? A domain is the most complete: it returns ads from every advertiser that sends traffic to that site. A brand name is matched against Google's verified advertiser names (HubSpot finds "Hubspot, Inc."). Names that are common words can match the wrong company, so use the domain or the advertiser ID when it matters. Run mode: "advertisers" first to see which advertisers a name matches.

Output

One item per ad:

{
"type": "ad",
"query": "hubspot.com",
"region": "US",
"advertiserId": "AR10072600183532683265",
"advertiserName": "Hubspot, Inc.",
"creativeId": "CR02085961376810926081",
"format": "video",
"firstShown": "2026-06-29T21:00:29.000Z",
"lastShown": "2026-10-03T11:59:19.000Z",
"daysShown": 97,
"spanDays": 97,
"domain": "hubspot.com",
"imageUrl": null,
"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?...",
"videoId": "yiG2lE3wqrY",
"videoUrl": "https://www.youtube.com/watch?v=yiG2lE3wqrY",
"adUrl": "https://adstransparency.google.com/advertiser/AR10072600183532683265/creative/CR02085961376810926081?region=US",
"scrapedAt": "2026-10-03T13:06:00.404Z"
}

Image and text ads carry imageUrl (with imageWidth and imageHeight). With includeDetails on, each ad also has:

{
"regionCount": 9,
"regions": [
{ "countryCode": "FR", "country": "France", "firstShown": "2025-05-30", "lastShown": "2026-09-21", "impressionsMin": 1000 }
],
"euImpressionsMin": 1000,
"variationCount": 3,
"variations": [{ "imageUrl": "https://tpc.googlesyndication.com/archive/simgad/...", "width": 348, "height": 269 }]
}

daysShown is Google's count of days the ad was shown; spanDays is the calendar span from first to last shown. In advertisers mode each item is an advertiser: advertiserName, advertiserId, country, adCountMin, adCountMax, advertiserUrl and related domains.

The run summary (ads delivered, queries without results, failures) is saved as OUTPUT in the run's key-value store.

Pricing

Pay per result, no subscription:

EventPrice
Ad$0.001 per ad ($1.00 per 1,000)
Ad details (only with includeDetails)$0.001 per ad
Advertiser record (advertisers mode)$0.0005 per advertiser
Actor start$0.00005 per run

Queries that find nothing are free. Set Maximum cost per run in the run options and the run stops cleanly when it is reached.

Tutorial: Python, schedules and AI agents

You need an Apify API token (Apify Console > Settings > API & Integrations). Apify's free plan includes $5 of monthly credit, about 5,000 ads.

1. Python: every ad a competitor ran this month

$pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("sauliusautomatesit/google-ads-transparency-api").call(run_input={
"queries": ["hubspot.com"],
"region": "US",
"dateFrom": "2026-09-01",
"maxAdsPerQuery": 1000,
})
ads = list(client.dataset(run.default_dataset_id).iterate_items())
longest = sorted(ads, key=lambda a: a["daysShown"] or 0, reverse=True)[:10]
for ad in longest:
print(ad["format"], ad["daysShown"], "days", ad["videoUrl"] or ad["imageUrl"])

run.default_dataset_id is for apify-client 3.x; on 2.x write run["defaultDatasetId"]. Pass max_total_charge_usd=1 to .call() to cap a run at $1.

2. Weekly competitor monitoring

Save an input like this as a Task and give it a weekly schedule. Each run returns only ads shown in the last 7 days; connect the Task to Slack, Google Sheets or a webhook in the Integrations tab.

{
"queries": ["competitor-one.com", "competitor-two.com", "competitor-three.com"],
"region": "US",
"dateFrom": "2026-09-26",
"maxAdsPerQuery": 2000
}

3. AI agents: one MCP URL, one tool

This URL gives any MCP client exactly one tool, this Actor:

https://mcp.apify.com/?tools=sauliusautomatesit/google-ads-transparency-api

Claude Code:

$claude mcp add --transport http google-ads-transparency "https://mcp.apify.com/?tools=sauliusautomatesit/google-ads-transparency-api"

Cursor, Claude Desktop, VS Code and other clients that take JSON:

{
"mcpServers": {
"google-ads-transparency": {
"url": "https://mcp.apify.com/?tools=sauliusautomatesit/google-ads-transparency-api",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Then ask: "Which video ads has Salesforce run in the UK since August, and which ran longest?"

  • Google Trends API: search interest over time for the keywords and brands your competitors advertise on.
  • YouTube Transcript Scraper: the full script of every competitor video ad, from the YouTube links this Actor returns.
  • Google Hotels API: hotel prices by destination, for travel and hospitality advertisers.

Limits and notes

  • Data comes from Google's public Ads Transparency Center. Google lists ads from verified advertisers; it does not publish spend, clicks or keywords (except for political ads), and it publishes impression ranges only for EU countries.
  • Text ads are archived by Google as images, so their wording is in imageUrl, not as text.
  • A platform filter (Search only, YouTube only) is not offered yet.
  • Not affiliated with Google.