Google Ads Transparency Scraper
Pricing
from $2.50 / 1,000 ads
Google Ads Transparency Scraper
Google Ads Transparency Scraper with no login. Give it a domain or advertiser name and get every ad with text, image and video creatives, run dates and countries. $2.50 per 1,000 ads.
Pricing
from $2.50 / 1,000 ads
Rating
0.0
(0)
Developer
Agnes Maina
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Google Ads Transparency Scraper: every ad a brand runs on Google
This Google Ads Transparency Scraper returns every ad a brand runs on Google, with text, image and video creatives, first and last shown dates and the countries each ad ran in, looked up by advertiser name or website domain. You pay $2.50 per 1,000 ads delivered, and rows export to JSON, CSV or Excel.
Limits before you run it: no Google account and no cookies are needed, up to 100 domains and 1,000 ads per advertiser in a run. Google publishes no spend, bids, keywords or targeting, and shows most text ads only as rendered pictures, so for those you get the picture of every variation. Ads Google has removed are not returned.
Type in nike.com and you get Nike's search, shopping, image and video ads as rows you can filter and sort. Schedule monitor mode to get only the ads a competitor launched since last week.
What you get
Each row is one ad from the Transparency Center.
| Field | What it is |
|---|---|
advertiserName, advertiserId, domain | The advertiser as Google verified it, its Transparency Center ID and its website |
creativeId | The ad's ID in the Transparency Center |
format, adType | text, image or video, and search, shopping, image, video or text |
headline, description, displayUrl, sitelinks | The ad copy as text, when Google publishes it as text |
imageUrl, variations | A picture of the ad, and Google's rendering of each variation |
videoUrl, merchant | YouTube link of a video ad when Google embeds one, and the merchant name on shopping ads |
firstShown, lastShown, daysShown | When the ad ran and for how many days |
countries | Each country with its own first and last shown date, plus Google's times-shown range where it publishes one |
transparencyUrl, previewUrl | Links to the ad in the Transparency Center |
isNew, charged, reason, scrapedAt | New since your last run in monitor mode, whether the row was charged and why, and when it was collected |
This scraper returns the ad itself: the picture of every variation, the copy as text where Google publishes it, the product photo for shopping ads, and the YouTube link for video ads.
Not returned: spend or budgets, keywords, bids, targeting, clicks or conversions, the copy of text ads as text when Google publishes only pictures, removed ads, and the content of rich display ads that only render inside Google's player. Those last rows are delivered free with the preview link.
Try it in 30 seconds
- Open the Store page and click Try for free.
- Enter a domain in Website domains, for example
nike.com, then click Start and open the Ads table.
{ "domains": ["nike.com"], "region": "anywhere", "format": "all", "maxAdsPerAdvertiser": 20 }
Every Apify account gets $5 of free platform credit each month. At $0.0025 per ad that covers about 2,000 ads.
Example output
One full record from a real nike.com run (20 ads requested, 19 delivered with content and charged). The countries list is cut to 2 of its 13 entries, and previewUrl is left out because it is a long Google URL.
{"advertiserName": "Nike Retail BV","advertiserId": "AR18378488041124659201","domain": "nike.com","creativeId": "CR17279215814825738241","format": "text","adType": "search","headline": "Nike Basketball Shoes","description": "Discover Nike Shoes Online At Nike.com. Shop The Official Nike Site.","displayUrl": "nike.com","sitelinks": [],"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/10990147604733979610","variations": ["https://tpc.googlesyndication.com/archive/simgad/10990147604733979610"],"videoUrl": null,"merchant": null,"firstShown": "2025-10-24","lastShown": "2026-09-23","daysShown": 334,"countries": [{ "country": "DE", "firstShown": "2025-10-24", "lastShown": "2026-09-23", "timesShownLow": 6000, "timesShownHigh": 7000 },{ "country": "NL", "firstShown": "2025-10-24", "lastShown": "2026-09-23", "timesShownLow": 50000, "timesShownHigh": 60000 }],"transparencyUrl": "https://adstransparency.google.com/advertiser/AR18378488041124659201/creative/CR17279215814825738241","isNew": null,"charged": true,"reason": "ad with content and dates","scrapedAt": "2026-09-23T22:44:30.181Z"}
Pricing
Pay per event. No monthly fee.
| Event | Price | When you pay |
|---|---|---|
| Actor start | $0.00005 | once per run |
| Ad | $0.0025 | an ad is delivered with its IDs, its shown dates and its content (text, picture or video) |
Worked example: 1,000 ads cost 1,000 x $0.0025 = $2.50, plus $0.00005 for the run start. Rows without usable content are still delivered, with charged: false, and cost $0. In monitor mode you pay only for ads that are new since your last run.
Input
| Field | Type | Default | Description |
|---|---|---|---|
domains | array | Advertiser websites, for example nike.com. Up to 100 | |
advertisers | array | Advertiser names exactly as Google verified them, where Inc or LLC can be left off, or IDs starting with AR. When several share a name, the largest one and same-name accounts in its country are used, and the log lists the others | |
region | string | anywhere | Two-letter country code such as US, GB or DE. Only ads shown in that country are delivered |
format | string | all | all, text, image or video |
maxAdsPerAdvertiser | integer | 50 | Stop after this many ads per domain or advertiser, 1 to 1,000 |
onlyNewSinceLastRun | boolean | false | Monitor mode. Later runs of the same search deliver only ads that appeared since |
proxyConfiguration | object | Apify residential | Proxy for the search calls. Ad previews always use datacenter proxy |
Monitor mode
Set onlyNewSinceLastRun to true and schedule the run daily or weekly. The first run delivers current ads up to your limit and remembers every ad it saw. Each later run delivers only ads that appeared since, marked isNew.
Use cases
- Competitor ad monitoring. Schedule monitor mode weekly on ten competitors and get only the new ads.
- Agency pitches. Pull every search ad a prospect's rivals ran last month and open the pitch with their copy.
- Creative research. Build a swipe file of a category's ads, sorted by
daysShownto find the ads that kept running. - Brand safety. Check which advertisers run ads on your brand's domain or name, and in which countries.
- Market entry research. Set
regionto a new country and see who advertises there.
Integrations
curl -X POST "https://api.apify.com/v2/acts/agnes.developer.queen~google-ads-transparency-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"domains": ["nike.com"], "maxAdsPerAdvertiser": 20}'
The same call works from Python and Node.js with the Apify client, and from Make, n8n or Zapier with the Apify app or node.
Any MCP client can also call the Actor as a tool at https://mcp.apify.com/?tools=agnes.developer.queen/google-ads-transparency-scraper. Ask for the text ads a competitor ran in a country this month. The assistant should read headline and description where present, plus variations and lastShown.
FAQ
Is the Google Ads Transparency Center free?
Yes. Google runs it as a free public website at adstransparency.google.com, with no export and no official API, so you browse one ad at a time. This Actor turns the same public data into rows you can export. No Google account or cookie is needed at any point.
Can I see how much a competitor spends on Google Ads?
No. Google publishes no spend or budget figures there, and no scraper can return them. You get the ads, when they ran, the countries they ran in, and Google's times-shown range. Long-running ads in many countries are a rough signal of where a brand puts its budget.
Does it get video ads and the text of search ads?
Video ads, yes: set format to video or leave it on all, and you get the YouTube link in videoUrl when Google embeds one, with dates and countries. Text ads give you headline, description, displayUrl and sitelinks when Google publishes the copy as text. Most text ads are pictures only, and then you get every variation in variations.
How far back does it go?
As far as Google keeps the ad in the Transparency Center. Each row has firstShown and lastShown, overall and per country. Removed ads are not returned.
Why was an ad not charged?
Google published no text, picture or video for it, usually a rich display ad. The row is still delivered with charged: false, the reason field says why, and previewUrl still opens it.
Why did an advertiser name return nothing?
Names must match the name Google verified, apart from Inc or LLC. The run log lists the names Google suggested. A website domain or an advertiser ID starting with AR always works.
Can I monitor a brand weekly?
Yes. Turn on onlyNewSinceLastRun and add a weekly schedule in Apify. The first run sets the baseline, and each later run delivers and charges only for new ads.
Is it legal to scrape the Google Ads Transparency Center?
It reads only public pages that Google publishes for anyone to see, and collects no personal data. You are responsible for how you use the data and for following the laws and terms that apply to you.
Related Actors
- LinkedIn Ad Library Scraper does the same job for ads a company runs on LinkedIn, with impressions by country and targeting.
- Meta Ad Library Scraper returns Facebook and Instagram ads with days running and EU reach.
- LinkedIn Company Scraper turns a company name, slug or URL into industry, size and headquarters facts.
Support
Open an issue on the Issues tab of the Store page or on GitHub. Bug reports with a run ID get fixed fastest. Docs and examples: github.com/agnesthedeveloper/google-ads-transparency-scraper