Google Ads Transparency Scraper: Competitor Ads API
Pricing
$2.00 / 1,000 ads
Google Ads Transparency Scraper: Competitor Ads API
See every Google ad a competitor runs: search by brand name, website or advertiser ID. Get format, first/last shown, days running, regions, all variations (image links) and political-ad spend and impressions. Fast, no browser.
Pricing
$2.00 / 1,000 ads
Rating
0.0
(0)
Developer
Kurt Landman
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
See every ad a company runs on Google (Search, YouTube, Display, Shopping and Maps), straight from Google's Ads Transparency Center. Search by brand name, website or advertiser ID.
Each ad comes with:
- format (text, image or video)
- first and last shown dates, and how many days it ran
- the countries it ran in
- every variation of the creative
- for political ads, Google's published spend and impressions ranges
It's fast and needs no browser. Each ad is one clean JSON record.
What you can do with it
- Competitor research: see which ads a rival is running right now, how long they keep winners live, and where they advertise.
- Creative inspiration: collect the text and image ads of the best brands in your niche.
- Agencies: monitor clients' competitors on a schedule and get alerted to new campaigns.
- Journalists and researchers: track political advertisers' spend and reach by country.
- AI agents: answer "What Google ads is X running?" in one call.
Input
| Field | What it does |
|---|---|
searchTerms | One per line: a website (nike.com), a brand or advertiser name (adidas), an advertiser ID (AR16735076323512287233), or any advertiser or ad link from adstransparency.google.com |
region | Two-letter country code to only include ads shown there (US, GB, DE...), or anywhere |
format | all, text, image or video |
maxAdsPerSource | Ads per entry (newest first). Default 100 |
maxAdvertisersPerSearch | For name searches: how many matching advertiser accounts to include, biggest first |
includeDetails | Variations, per-country dates and impressions, spend. On by default, same price |
Websites and names behave differently:
- A website returns all ads that point to that site, from any advertiser account.
- A name finds the best-matching advertiser, the one with the most ads, and returns its ads. Other matching accounts are listed in the run summary, so you can add them.
Examples
Nike's US ads, newest first:
{ "searchTerms": ["nike.com"], "region": "US", "maxAdsPerSource": 200 }
Video ads of two competitors, worldwide:
{ "searchTerms": ["adidas", "puma.com"], "format": "video" }
Output example
This is a real political ad, shortened:
{"type": "ad","adId": "CR07909667787277074433","advertiserId": "AR00040546930815664129","advertiserName": "SENTINEL ACTION FUND","format": "text","firstShownAt": "2026-09-05T04:03:08.702Z","lastShownAt": "2026-10-01T04:00:47.731Z","daysShown": 27,"regionsShown": ["MP", "US", "PR"],"regionStats": [{ "region": "US", "regionName": "United States", "criteriaId": 2840, "firstShownDate": "2026-09-04", "lastShownDate": "2026-09-30", "impressionsMin": 60000, "impressionsMax": 70000 }],"impressionsMin": 60000,"impressionsMax": 70000,"spend": { "currency": "USD", "min": 4000, "max": 4500 },"previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/3656283509581012566","variationCount": 2,"adUrl": "https://adstransparency.google.com/advertiser/AR00040546930815664129/creative/CR07909667787277074433?region=US","advertiser": { "name": "SENTINEL ACTION FUND", "legalName": "SENTINEL ACTION FUND", "country": "US", "isVerified": true },"region": "US"}
Field meanings:
firstShownAt,lastShownAtanddaysShownare the "First shown", "Last shown" and "Ran for" values on the ad's Transparency Center page.spendandimpressionsare published by Google for political ads, and impressions also for ads shown in the EU.- The run summary (key-value store record
SUMMARY) gives Google's approximate total number of ads for each entry. Nike.com has about 8,000–9,000.
Pricing
$0.002 per ad, details included. There are no platform-usage charges on top and no fee per run.
For example, 100 ads cost $0.20 and 1,000 ads cost $2.
Entries that can't be resolved return an item with "type": "error" and are not charged. If you set a maximum cost, the run stops cleanly when it is reached.
Using it from AI agents (MCP)
Available through the Apify MCP server for Claude, ChatGPT, Cursor and other MCP clients. Agents can also pay per call through Apify's agentic payments.
Example prompts:
- "What Google ads is Allbirds running in the US right now? Summarize their messaging."
- "How long has Nike kept its current search ads live?"
- "Which political advertisers spent the most on Google ads in the US this month?"
Agents: use a website for complete coverage. Use maxAdsPerSource to limit cost on big brands.
Good to know
- Images: text ads, and many image ads, have a direct image in
previewImageUrland invariations[].imageUrl. Other image ads and video ads come with Google's preview link (previewUrl). Open the ad'sadUrlto view it. - Coverage: this is exactly the data Google publishes in its Ads Transparency Center. Long-running ads keep their original first-shown date; some of Nike's current search ads date back to 2022. Spend and impressions appear only where Google publishes them.
- Region: an ad can run in several countries.
regionStatsgives the dates per country. - Legal: the Ads Transparency Center is a public transparency tool. This Actor reads only what Google publishes there, and no personal data.
FAQ
Can I monitor a competitor daily? Yes. Schedule the Actor and compare adIds between runs to spot new ads. Send results to Google Sheets, Slack, Zapier, Make or n8n.
Why does a brand name return few ads? Big brands often advertise through several advertiser accounts. Search by their website instead, or raise maxAdvertisersPerSearch.
Something not working? Open an issue on the Issues tab with your input.