Google Ads Transparency Scraper avatar

Google Ads Transparency Scraper

Pricing

from $0.91 / 1,000 ad listeds

Go to Apify Store
Google Ads Transparency Scraper

Google Ads Transparency Scraper

Ads from Google's Ads Transparency Center per advertiser domain or id, per country or anywhere: advertiser name, creative id, preview image or URL, first and last shown dates and a link to the ad. Up to 200 advertisers per run. Pay only for delivered ads.

Pricing

from $0.91 / 1,000 ad listeds

Rating

0.0

(0)

Developer

Steadydata Team

Steadydata Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Google Ads Transparency Scraper (ads per advertiser)

Every ad an advertiser runs on Google, from the Ads Transparency Center, for up to 200 advertisers per run: advertiser name and id, creative id, a preview image or preview URL, the first and last date the ad was shown, and a link to the ad in the Center. Per country or for ads shown anywhere. You only pay for ads that are actually delivered.

Why this scraper

  • Competitor ads without the clicking. The Center shows ads one page at a time; this actor pages through them for a whole list of advertisers and returns one flat table.
  • By domain or by advertiser id. Paste nike.com or an AR... id. A domain can resolve to several advertiser accounts (regional entities, agencies); each row carries the exact advertiser name and id, so they stay apart.
  • Dates as data. First shown and last shown come as dates, so "still running" and "how long has this been live" are a filter away.
  • Lightweight route. About 0.5 KB per ad through the Center's own data endpoint, no browser: in testing on 13-09-2026, 40 ads came back in 21 KB.
  • Only delivered ads are charged. An advertiser with no ads in the chosen region comes back as a clear error record at no cost.

Who this is for

Marketing and competitive-intelligence teams tracking what competitors advertise and since when. Agencies auditing a client's ad footprint per country. Researchers studying advertising activity over time.

Who this is not for

This actor lists ads and their previews; it does not return ad spend, impressions or targeting. Google does not publish those in the Center. The ad format is passed through as Google's numeric formatCode without a label, because Google does not document the codes; previewType tells you whether there is a still image or a rich preview URL. Ad text is not extracted from the preview.

Input fields

FieldTypeRequired or defaultWhat it does
advertiserslist of textrequiredAdvertiser domains (nike.com) or Transparency Center advertiser ids (AR...), one per row, up to 200. An advertiser without ads in the region comes back as a free error record.
countrytextTwo-letter country code to see the ads shown in that country (US, GB, NL, DE ...). Leave empty for ads shown anywhere.
maxAdsPerAdvertisernumber100Cost ceiling per advertiser, newest first as the Transparency Center orders them. One delivered ad is one charged event.

Input example

{
"advertisers": ["nike.com", "booking.com", "AR18378488041124659201"],
"country": "NL",
"maxAdsPerAdvertiser": 100
}

country empty means ads shown anywhere. Supported countries: the 70 largest advertising markets; an unsupported code returns a free INVALID_COUNTRY record.

Output example

FieldTypeWhat it holdsExample
querytextThe advertiser or domain this row was found with.booking.com
advertiserIdtextGoogle's own id for the advertiser, the key to all their ads.AR02934798844673654785
advertiserNametextThe advertiser as Google verified them, which is the legal name more often than the brand.Booking.com
domaintextThe domain the advertiser is registered on.booking.com
creativeIdtextGoogle's id for this one ad, stable while the ad runs.CR02923306749140140033
ranknumberThe place in Google's own order, counting from 1.1
previewTypetextWhat the ad is: image, video or text.image
previewImageUrltextThe image of the ad itself, straight from Google's archive.https://tpc.googlesyndication.com/archive/simgad/99002075...
previewUrltextThe preview page of the ad, filled for the types Google does not serve as an image.https://displayads-formats.googleusercontent.com/ads/prev...
previewWidthnumberThe width of that image in pixels.380
previewHeightnumberThe height of that image in pixels.499
formatCodenumberGoogle's own format number for the ad, handy to group identical shapes.1
firstShowntextThe first day Google saw the ad running.2021-10-26
lastShowntextThe last day Google saw it running; together with firstShown this gives the run time.2026-09-30
adUrltextThe ad's page in Google's Ads Transparency Center.https://adstransparency.google.com/advertiser/AR029347988...
regiontextThe region the ad was seen in; the same ad can run in several.anywhere
{
"query": "nike.com",
"rank": 1,
"advertiserId": "AR18378488041124659201",
"advertiserName": "Nike Retail BV",
"domain": "nike.com",
"creativeId": "CR15810869670027722753",
"previewType": "image",
"previewImageUrl": "https://tpc.googlesyndication.com/archive/simgad/8950235747126220397",
"previewUrl": null,
"previewWidth": 364,
"previewHeight": 439,
"formatCode": 1,
"firstShown": "2026-07-20",
"lastShown": "2026-09-13",
"adUrl": "https://adstransparency.google.com/advertiser/AR18378488041124659201/creative/CR15810869670027722753?region=NL",
"region": "NL",
"status": "ok"
}

An advertiser that yields nothing produces an error record instead, and is not charged:

{
"input": "example.org",
"status": "error",
"errorCode": "NO_ADS",
"error": "No ads for example.org in region NL"
}

Error codes: INVALID_ADVERTISER, INVALID_COUNTRY, NO_ADS, BLOCKED. INPUT_TRUNCATED appears once when your input is longer than this actor accepts.

Pricing

Pay per event: one ad-listed event per delivered ad. No charge for advertisers that fail or have no ads, no separate platform-usage surcharge. maxAdsPerAdvertiser is your hard cost ceiling.

Free Apify plan: this actor delivers up to 25 rows per run for accounts on the Apify free plan, and then stops with a message. That limit is set by us, not by Apify. It exists so the actor keeps paying for itself for the people who do pay. Any paid Apify plan runs it at full size, billed per delivered row, with failed rows never charged.

Reviews: if this actor saves you time, a short review on this page is the one thing that helps most. Ratings are what other buyers look at first, and we have no other way to ask.

FAQ

In what order do the ads come? The Center's own order, which puts the most recently shown ads first. rank records it.

Why does one domain give several advertiser names? Because several Google Ads accounts advertise that domain: country entities, resellers or agencies. Filter on advertiserName or run the AR... id you want.

Can I get the ad text or the video? Not from this actor. Image previews come as an image URL; rich and video ads come as a preview URL you can open in a browser.

Is personal data collected? No. Advertisers in the Center are companies and organisations; the data is what Google publishes about their ads.

What happens when Google changes something? The Center's data endpoint uses numbered fields that Google may renumber. The actor is monitored daily and fixed fast, and while it is broken you are not charged, because only delivered ads cost anything.

Can I call it from my own code, like an API? Yes. Every run is available through the Apify API: start it with one HTTP request, then read the results as JSON, CSV or Excel from the dataset endpoint, or use the official Python and JavaScript clients. The input is the same JSON as in the input example above, so a scheduled script, a Make or Zapier step or an AI agent can call it without any changes.