Google Ads Transparency Scraper avatar

Google Ads Transparency Scraper

Pricing

from $2.50 / 1,000 ads

Go to Apify Store
Google Ads Transparency Scraper

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

Agnes Maina

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Google Ads Transparency Scraper: every ad a brand runs on Google

Run on Apify

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.

FieldWhat it is
advertiserName, advertiserId, domainThe advertiser as Google verified it, its Transparency Center ID and its website
creativeIdThe ad's ID in the Transparency Center
format, adTypetext, image or video, and search, shopping, image, video or text
headline, description, displayUrl, sitelinksThe ad copy as text, when Google publishes it as text
imageUrl, variationsA picture of the ad, and Google's rendering of each variation
videoUrl, merchantYouTube link of a video ad when Google embeds one, and the merchant name on shopping ads
firstShown, lastShown, daysShownWhen the ad ran and for how many days
countriesEach country with its own first and last shown date, plus Google's times-shown range where it publishes one
transparencyUrl, previewUrlLinks to the ad in the Transparency Center
isNew, charged, reason, scrapedAtNew 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

  1. Open the Store page and click Try for free.
  2. 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.

EventPriceWhen you pay
Actor start$0.00005once per run
Ad$0.0025an 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

FieldTypeDefaultDescription
domainsarrayAdvertiser websites, for example nike.com. Up to 100
advertisersarrayAdvertiser 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
regionstringanywhereTwo-letter country code such as US, GB or DE. Only ads shown in that country are delivered
formatstringallall, text, image or video
maxAdsPerAdvertiserinteger50Stop after this many ads per domain or advertiser, 1 to 1,000
onlyNewSinceLastRunbooleanfalseMonitor mode. Later runs of the same search deliver only ads that appeared since
proxyConfigurationobjectApify residentialProxy 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 daysShown to 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 region to 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.

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.

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