Google Ads Transparency Scraper
Pricing
from $0.75 / 1,000 ads
Google Ads Transparency Scraper
Ads from Google's Ads Transparency Center for any domain, brand or advertiser ID, with format, first and last shown dates and a link to each ad. Per-ad details add the countries where it ran and impression ranges for EU countries.
Pricing
from $0.75 / 1,000 ads
Rating
0.0
(0)
Developer
deriverge s.r.o.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Google Ads Transparency Scraper lists the ads that Google's Ads Transparency Center shows for an advertiser, one row per ad: the advertiser, the format, the first and last time the ad was shown, a picture or preview of the ad and its page in the Center. Enter a domain such as nike.com, a brand name or an advertiser ID and click Start. Rows carry no spend, clicks or targeting, and the words of a text ad come only as a picture. It costs $1.50 per 1,000 ads on the Free plan ($0.75 on Business), and the $5 of monthly credit in Apify's Free plan covers about 3,300 ads.
What data does it return?
| Field | Description |
|---|---|
advertiserId, advertiserName | Google's advertiser ID, starting with AR, and the verified advertiser name, for example Alza.cz a.s.. |
creativeId, key | ID of the ad, starting with CR, and both IDs joined by a colon. |
format | text, image or video. |
firstShown, lastShown | First and last time the ad was shown anywhere, as ISO 8601 timestamps. Per-ad details change them only where the list has no value or shows an earlier last date; such values are plain dates like 2026-09-29. |
adUrl | The ad's page in the Transparency Center, where you can look at it in a browser. |
creativeHtml, imageUrls | For most text ads, a picture of the ad with its headline and text: an <img> tag and the image address on tpc.googlesyndication.com. Empty for image and video ads. |
previewUrl | Address of the content.js script the Center loads to draw the ad. Set for image and video ads and for some text ads. |
domain | The domain you searched for. null when the entry was a brand name or an advertiser ID. |
regions | With per-ad details on: every country the ad ran in, with code, name, firstShown, lastShown, impressionsLow and impressionsHigh. |
impressionsLow, impressionsHigh | With per-ad details on: the ad's impression range over the countries that have one, for example 15000 to 20000. |
variants | With per-ad details on: how many versions of the ad Google keeps under one ID. |
input, reference | The entry the ad came from, and the label you attached to that entry. |
firstSeenAt | When the run collected the ad, as an ISO 8601 timestamp. |
How to scrape the Google Ads Transparency Center
- In Advertisers, add one entry per line: a domain (
nike.com, or a full address such ashttps://www.nike.com, which counts as that domain), a brand name (Adidas) or an advertiser ID (AR18378488041124659201), which is the part of the Center's address after/advertiser/. An entry can also be an object withadvertiserIdordomainand areferencelabel that comes back on each of its ads. - Choose the kind of entry on purpose. A domain returns the ads of every advertiser that ran ads for it, agencies included:
nike.combrought ads fromNike Retail BV,Nike, Inc.andWPP MEDIA MANAGEMENT, among others. An advertiser ID returns that advertiser only. A brand name is matched through the Center's own suggestions, an exact name first and then a verified advertiser, and the run log names the choice and the other candidates. - Filter if you need to: Region keeps ads shown in one country (a two-letter code such as
US), Formats keepstext,imageorvideo, and Last shown after takes a date or a moving value such as-30for the past 30 days. - Turn on Fetch per-ad details (regions with dates) for the countries, impression ranges and variants. It adds one request per ad, so the run takes longer, and the price stays the same.
- Click Start. The Output tab fills with ads as they come, and the export button there saves them as CSV, Excel or JSON.
The same search as API input:
{"advertisers": ["nike.com","Adidas",{ "advertiserId": "AR18378488041124659201" }],"region": "US","formats": ["image", "video"],"lastShownAfter": "-30","maxAdsPerAdvertiser": 200,"includeDetails": true}
Example output
A text ad from a run on 30 September 2026 with per-ad details on, found through the domain alza.cz and shown only in Czechia. The run came before that day's date fix, so firstShown and lastShown hold the plain dates of the Czech entry; runs since then keep the timestamps of the ad list.
{"advertiserId": "AR06233394201141182465","advertiserName": "Alza.cz a.s.","creativeId": "CR09710666802782011393","domain": "alza.cz","format": "text","previewUrl": null,"firstShown": "2025-12-24","lastShown": "2026-09-29","creativeHtml": "<img src=\"https://tpc.googlesyndication.com/archive/simgad/12001616090920999528\" height=\"159\" width=\"348\">","imageUrls": ["https://tpc.googlesyndication.com/archive/simgad/12001616090920999528"],"key": "AR06233394201141182465:CR09710666802782011393","reference": null,"input": "alza.cz","adUrl": "https://adstransparency.google.com/advertiser/AR06233394201141182465/creative/CR09710666802782011393?region=anywhere","regions": [{"code": "CZ","name": "Czechia","firstShown": "2025-12-24","lastShown": "2026-09-29","impressionsLow": 15000,"impressionsHigh": 20000}],"impressionsLow": 15000,"impressionsHigh": 20000,"variants": 1,"firstSeenAt": "2026-09-30T00:28:37.345Z"}
Countries and impression ranges
With details on, regions lists every country where the ad ran, as the Center shows it on the ad's page. Google publishes impression ranges only for countries of the European Union, Norway, Iceland and Türkiye. Entries for other countries, such as US, GB or KR, carry a lastShown date and nothing else, so an ad that ran only there has no impression figures at all.
The ranges are open at both ends. impressionsHigh of 1000 without a low value means up to 1,000 impressions, and impressionsLow of 10000000 without a high value means 10 million or more. The first-shown date of a country is often null, also inside the EU. A few region codes Google uses are not ISO countries; they come with code set to null and Google's number in name, such as 2900.
Following advertisers over time
Schedule a daily run with Return only ads that appeared since the last run turned on. A saved task keeps its snapshot by itself; any other run needs a Watch name. Each run then returns only ads whose key was not in the previous run, so every new creative of the advertisers you follow arrives once, and the run's CHANGES record holds their keys.
How much does it cost to scrape the Google Ads Transparency Center?
| Free plan | Starter | Scale | Business | |
|---|---|---|---|---|
| 1,000 ads | $1.50 | $1.20 | $0.975 | $0.75 |
You pay only for the events in the table. There is no start fee, and compute time and proxies are included.
Reading 200 ads for each of 10 advertisers costs $3.00 on the Free plan and $1.50 on Business, with or without per-ad details. Ads removed by a filter, ads already sent in new-only mode and brand names that match no advertiser are not charged.
Limits
- Each entry stops at Maximum ads per advertiser, which is 20 in the form and 200 when an API call leaves it out. The actor reads up to 60 pages of 100 ads, so one entry returns at most 6,000.
- Rows do not say on which Google service an ad ran, and a text ad's headline and description exist only inside its picture.
firstShowndoes not reach back before October 2021: in a run of 600 ads on 28 September 2026, 35 had exactly2021-10-25T07:00:00.000Zand none had an earlier one. For long-running ads, read that value as "on or before".- A brand name picks one advertiser from Google's suggestions, which may not be the one whose ads you want. The log lists the alternatives; a domain or an advertiser ID avoids the guess.
- The region filter takes one country per run, as a two-letter code.
UKis read asGB, and a code the Center does not know stops the run with a message before anything is charged. - When the Center answers with HTTP 429, the run switches to Apify Proxy with a new IP for each attempt, and every request is tried up to five times. An advertiser that still fails is marked with
ok: falsein theSUMMARYrecord.
FAQ
Is it legal to scrape the Google Ads Transparency Center?
Google runs the Transparency Center so that anyone can see who advertises on its services and with which ads. The actor reads the same public data the Center's pages load: advertisers, their ads and the dates and ranges Google publishes, and nothing about the people who saw the ads. You are responsible for how you use the results, including the rights in the ad creatives.
Where do I find an advertiser ID?
Open the advertiser in the Transparency Center; the ID is the part of the address after /advertiser/, for example AR18378488041124659201. Every row also carries advertiserId, so one domain search gives you the IDs for later runs.
How do I look at an ad?
Open its adUrl. For most text ads the picture in imageUrls shows the headline and text of the ad. Image and video ads are drawn by the script in previewUrl, which is made to run inside the Center's page.
Related scrapers
Support
This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.