Google Ads Transparency Scraper (Ads by Advertiser or Domain) avatar

Google Ads Transparency Scraper (Ads by Advertiser or Domain)

Pricing

from $0.30 / 1,000 ad (creative)s

Go to Apify Store
Google Ads Transparency Scraper (Ads by Advertiser or Domain)

Google Ads Transparency Scraper (Ads by Advertiser or Domain)

Google Ads Transparency Center ads by brand, domain or advertiser ID: region, platform, format and date filters, image and preview links, days shown, optional per-country details. No proxy, no login. $0.30 per 1,000 ads.

Pricing

from $0.30 / 1,000 ad (creative)s

Rating

0.0

(0)

Developer

Prague Data Lab

Prague Data Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Google Ads Transparency Scraper — ads by advertiser, domain or brand

Scrape Google Ads Transparency Center ads for any advertiser, website or brand name, and get one clean row per ad: advertiser (country, verified identity), website, format (text, image, video), first and last day shown, days shown, image or preview link and the ad page. Filter by country, Google platform (Search, YouTube, Shopping, Maps, Play), format and dates. $0.30 per 1,000 ads. No browser, no login, no proxy needed.

Quick start

Minimal input (the ads that point to nike.com and were shown in the US):

{
"queries": ["nike.com"],
"region": "US",
"maxAdsPerSearch": 50
}

More: two countries, only YouTube video ads, a date range, details for each ad, and the ads of one advertiser by ID:

{
"queries": ["adidas.com", "AR18378488041124659201"],
"regions": ["DE", "FR"],
"platforms": ["youtube"],
"adFormat": "VIDEO",
"startDate": "2026-09-01",
"endDate": "2026-10-01",
"maxAdsPerSearch": 300,
"includeDetails": true
}

A query can be:

You giveYou get
a domain (nike.com, https://www.nike.com/us)the ads that point to that website, whoever pays for them (agencies included)
an advertiser ID (AR18378488041124659201)the ads of that advertiser
a brand name (Nike)the ads of the advertisers whose name contains the word, the ones with the most ads first (maxAdvertisersPerQuery, default 5)
a Transparency Center URL (advertiser page, ad page, domain search)the same, with the region, platform, format and date parameters of the URL

For exact results use the domain or the advertiser ID. A brand name can match several unrelated advertisers.

Compatible with the leading Actors

Switch by changing only the Actor ID. The input of both leaders is accepted as it is:

LeaderFields accepted
scrapesage/google-ads-transparency-scraperqueries, domains, advertiserIds, startUrls, resultType (ads / advertisers), region (code or English name), platforms, adFormat (ALL, TEXT, IMAGE, VIDEO), startDate, endDate, maxAdsPerSearch, maxAdvertisersPerQuery, includeDetails (free here), detailConcurrency, onlyNewAds, monitorStoreName, includeRawData, urlsFromFile, proxyConfiguration
solidcode/ads-transparency-scrapersearchQuery (keyword, domain or advertiser ID), maxResults (0 = all), platform (google_search, youtube, google_shopping, google_maps, google_play), region, dateFrom, dateTo

Output field names follow theirs: creativeId, advertiserId, advertiserName, advertiserLegalName, advertiserCountry, advertiserVerified, domain, format, firstShown, lastShown, shownForDays (also as approxDaysShown), imageUrl, previewUrl, adUrl, region, matchedQuery.

Sample output row

A real row (nike.com, region US):

{
"creativeId": "CR08772523512997871617",
"advertiserId": "AR16735076323512287233",
"advertiserName": "Nike, Inc.",
"advertiserLegalName": "Nike, Inc.",
"advertiserCountry": "US",
"advertiserVerified": true,
"domain": "nike.com",
"format": "TEXT",
"platform": null,
"firstShown": "2023-11-16T22:45:12.585Z",
"lastShown": "2026-10-23T10:37:14.818Z",
"shownForDays": 905,
"approxDaysShown": 905,
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/16152650943237359130",
"previewUrl": null,
"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR08772523512997871617?region=US",
"advertiserUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US",
"region": "US",
"matchedQuery": "nike.com",
"scrapedAt": "2026-10-23T11:09:48.457Z"
}

With includeDetails each row also has variationCount, variations, regionsShown (country, first and last day, range of times shown, same per platform), topic and adFundedBy:

{
"variationCount": 4,
"variations": [{ "imageUrl": "https://tpc.googlesyndication.com/archive/simgad/16098087104589060523", "previewUrl": null }],
"regionsShown": [
{ "region": "ES", "firstShown": null, "lastShown": "2026-08-31", "timesShownLow": null, "timesShownHigh": 1000, "platforms": [{ "platform": "SEARCH", "timesShownLow": null, "timesShownHigh": 1000 }] }
],
"topic": null,
"adFundedBy": "Adidas America, Inc"
}

With resultType: "advertisers" each row is an advertiser: advertiserId, name, legalName, countryCode, verified, approxAdCountLow, approxAdCountHigh, advertiserUrl, matchedQuery.

Input

FieldTypeDescription
queriesarray of stringsDomains, advertiser IDs, brand names or URLs, one search each.
domains, advertiserIds, startUrlsarraysSame as queries, split by kind. startUrls takes Transparency Center URLs with their own region, platform, format, start-date, end-date parameters.
searchQuerystringOne query (alias of solidcode).
resultTypestringads (default) or advertisers.
region / regionsstring / arrayCountry code (US, DE) or English name; anywhere for no filter. Default US. Each region is searched separately and the row says which. Alias: country.
platforms / platformarray / stringsearch, youtube, shopping, maps, play (also google_search…). Empty means all.
adFormatstringALL (default), TEXT, IMAGE, VIDEO.
startDate, endDate / dateFrom, dateTostringAds shown in this period, YYYY-MM-DD, end day included.
maxAdsPerSearch / maxResultsintegerNew ads saved per query and region, default 100, 0 = as many as exist.
maxItemsintegerRows in total, all searches together.
maxAdvertisersPerQueryintegerAdvertisers kept for a brand name, default 5.
includeDetailsbooleanVariations, countries, topic and payer. One extra request per ad, about 1.5 s each. No extra charge.
detailConcurrencyintegerDetail requests in flight, default 2 (requests are spaced anyway).
onlyNewAds, monitorStoreNameboolean, stringSkip ads that an earlier run with the same store already saved. Run it on a schedule to get only new ads.
includeRawDatabooleanAdds Google's untouched answers in raw.
urlsFromFilestringLink to a text file, one query per line.
proxyConfigurationobjectNot needed. Turn on the Apify proxy if Google asks for a captcha.

Output fields

FieldDescription
creativeIdAd id (CR…).
advertiserIdAdvertiser id (AR…).
advertiserNameAdvertiser name as Google shows it.
advertiserLegalNameLegal name of a verified advertiser, otherwise null.
advertiserCountryCountry where the advertiser is based (ISO code).
advertiserVerifiedtrue when Google says the advertiser verified its identity.
domainWebsite the ad points to.
formatTEXT, IMAGE or VIDEO.
platformSEARCH, YOUTUBE, SHOPPING, MAPS or PLAY when the search was limited to one platform, otherwise null.
firstShown, lastShownFirst and last time the ad was shown, ISO 8601 UTC.
shownForDays, approxDaysShownDays the ad was shown (not always consecutive).
imageUrlPicture of the ad (text and image ads), otherwise null.
previewUrlScript that renders the ad (display and video ads), otherwise null.
adUrl, advertiserUrlPages of the ad and of the advertiser in the Transparency Center.
regionCountry searched, or anywhere.
matchedQueryThe input line that found the row.
variationCount, variations, regionsShown, topic, adFundedByWith includeDetails.
rawWith includeRawData.
scrapedAtWhen the row was saved.

Advertiser rows (resultType: "advertisers"): advertiserId, name, legalName, countryCode, verified, approxAdCountLow, approxAdCountHigh, advertiserUrl, matchedQuery, scrapedAt.

Pricing

Pay per event: $0.0003 per ad ($0.30 per 1,000) and the same per advertiser row. Details, raw data and every filter are included. Duplicates are not saved and not charged. Set maxAdsPerSearch, maxItems or a maximum cost per run to control the total. No platform usage is added on top.

Limits and good to know

  • Speed. Google returns 100 ads per request; the Actor sends about 1.5 requests per second, so 2,000 ads take about 30 seconds. includeDetails reads about 40 ads per minute because Google limits the detail requests; plan 25 minutes for 1,000 detailed ads.
  • Rate limit. If Google answers "too many requests", the Actor waits and slows down by itself. If Google asks for a captcha the Actor never tries to solve it: it stops, keeps what it saved, and a run that saved nothing ends as failed with nothing charged. Turn on the Apify proxy in that case.
  • Platform. Google's list does not say which platform showed an ad. Use the platforms filter to get one platform, or includeDetails to see the platforms per country.
  • Times shown. Ranges are published for ads shown in the EU only. Where Google gives only an upper bound, timesShownLow is null.
  • Countries. 243 countries and territories. Russia is not available: Google shows no ads there.
  • Advertisers are what Google publishes. Most are companies, but some are sole traders or individuals who advertise, and Google lists them under the verified name they gave. The Actor only returns what the Transparency Center shows publicly and stores nothing else. Even a domain search can list an individual who advertises a brand's website (an affiliate, for example), and a brand name can match advertisers that are people. Check the rules that apply to your use (for example GDPR) before you keep or share personal names.
  • The ads belong to their advertisers; Google publishes them for transparency.