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
statusisunknownwithlast_shownand ourlast_seen_by_us.status=activelimits the search to ads served yesterday or today and marks themactive;status=inactiveis 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 countryfrom/to: dates the ad was servedformat:text,imageorvideostatus=active: served yesterday or todayplacement:search,shopping,maps,youtubeorplay
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,imageorvideo- creatives[]
mediain search results; the ad detail addsheadline,text,ctaand, 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_scopeiseeaextra.by_country: impressions range, first and last served day and surfaces per countryeu_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_rangeis null (political ads carry Google's raw value inextra.spend_raw) - Reach: Google publishes impressions, not people reached, so
eu_data.reach_totalandeu_data.reach_by_countryare null - An active flag:
statusisunknownunless you filter withstatus=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=carouselandstatus=inactiveare 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 callGET /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]