Google Ads Transparency Center

Google Ads Transparency Center API

Ads from Google's Ads Transparency Center by advertiser, advertiser id or domain, with the surfaces they ran on. Ads shown in the EU come with impressions per country, targeting categories and the payer.

Coverage
Google's library is global. EU transparency data (impressions per country and surface, targeting, payer) exists for ads served in the EU and EEA. Surfaces are Search, Shopping, Maps, YouTube and Google Play; YouTube and Play have their own pages.
Price
2 credits per ad. 2 credits per delivered ad. A live search page costs at most 10 credits, however many ads it returns. Ads last shown more than 12 months ago cost double. Empty, cached and failed results are free.
Status
Google publishes no active flag, so status is unknown with last_shown and our last_seen_by_us. status=active limits the search to ads served yesterday or today and marks them active; status=inactive is not supported.

Find ads by

  • Advertiser name (advertiser=Nike); legal entities with the same name are all included
  • Advertiser id (advertiser=google:AR…)
  • Domain (domain=nike.com), native in the Transparency Center
  • Ad id (GET /v1/ads/google:AR…_CR…)
  • Our archive (source=history), including ads Google no longer shows

Filters

  • country: any ISO country
  • from / to: dates the ad was served
  • format: text, image or video
  • status=active: served yesterday or today
  • placement: search, shopping, maps, youtube or play

What you get for each ad

The same fields as every other platform, in one schema. What Google publishes is filled in; what it does not stays null.

Ad and advertiser

id
google:AR…_CR…: advertiser id and creative id
advertiser.id, advertiser.name
The verified advertiser (AR…)
advertiser.domain
Set on domain searches, and from the domain of text ads
first_shown, last_shown
First and last day served
extra.num_served_days
Days the ad was served, as Google counts them

Creative

formats
text, image or video
creatives[]
media in search results; the ad detail adds headline, text, cta and, for display ads, landing_url, for up to three variants
extra.display_url
The display URL of text ads
placements
On the ad detail: every surface it ran on (search, shopping, maps, youtube, play)
countries
On the ad detail: every country it was served in; in search: the country you searched

Advertiser details

extra.advertiser_country, extra.advertiser_legal_name
The advertiser's country and legal name, where Google lists them

Only for ads shown in the EU

Published under the Digital Services Act; see EU reach.

  • impressions_range: impressions range; when only the EEA total is published, extra.impressions_scope is eea
  • extra.by_country: impressions range, first and last served day and surfaces per country
  • eu_data.targeting.other: which targeting categories were used or excluded (demographics, geography, contextual, topics_of_interest, customer_lists)
  • eu_data.payer: who paid for the ad (often an agency); eu_data.beneficiary: the advertiser
  • These come with the ad detail (GET /v1/ads/{id} or a batch), not in search results

What Google does not publish

  • Spend for commercial ads: spend_range is null (political ads carry Google's raw value in extra.spend_raw)
  • Reach: Google publishes impressions, not people reached, so eu_data.reach_total and eu_data.reach_by_country are null
  • An active flag: status is unknown unless you filter with status=active
  • Keyword search in the ad text: there is none for commercial ads
  • Landing URLs of search and local ads: only the display URL and domain are public

Try it

Search ads for nike.com served in Germany. GET /v1/ads/{id} adds the headline, text and EU impressions.

Media: Images and banners as published; Google shows text ads as an image of the rendered ad. Video ads link to the YouTube video with its thumbnail. Images are copied to media.adlibapi.com under stable URLs.

curl "https://api.adlibapi.com/v1/search?platform=google&domain=nike.com&country=DE&placement=search" \
  -H "X-API-Key: $ADLIB_API_KEY"

What to do with it

  • See every search ad a competitor runs for its domain, with headline and text.
  • Find the agency paying for a brand's ads in the EU through eu_data.payer.
  • Compare where a brand runs ads: Search, Shopping, Maps, YouTube or Play.

Limits

  • No keyword search: start from an advertiser or a domain.
  • Creative text, placements, countries and EU data need the ad detail, one GET /v1/ads/{id} per ad.
  • format=carousel and status=inactive are not supported.

Questions

Is there a Google Ads Transparency Center API?
AdLib returns Transparency Center ads through a REST API: search by advertiser, advertiser id or domain, then fetch each ad with its text and EU data. Every ad comes in the same schema as Meta, TikTok and the other platforms.
Can I see ad spend on Google?
No, not for commercial ads. Google publishes impressions ranges for ads served in the EU, per country and in total, but no spend and no reach.
Can I search Google ads by keyword?
No. The Transparency Center has no ad-text search for commercial ads. Search by domain or advertiser instead, or search our archive with source=history.
How do I find a Google advertiser id from a domain?
Search with domain=nike.com, or call GET /v1/advertisers/resolve?domain=nike.com. Google supports domain search natively, so you often get several legal entities for one brand.

Read more

Other platforms

Questions about Google data? [email protected]