← Back to blog

October 19, 2026 · 9 min read

The Google Ads Transparency Center API: what actually exists

There is no official Google Ads Transparency Center API. Here is what the center exposes, why the Google Ads API cannot see rivals, and the workarounds ranked.

The Google Ads Transparency Center API: what actually exists

Is there an official Google Ads Transparency Center API?

There is no official Google Ads Transparency Center API. Google publishes no documented endpoint for the center's ad data, and the Google Ads API only reaches accounts you already control. Your real options are an undocumented internal RPC, the BigQuery political ads dataset, or a vendor API that has already absorbed the maintenance.

That is the whole decision in four sentences. The rest of this page is what each path returns, what it costs to keep alive, and how to pick one you will not be rebuilding in six months.

No. The center is a search interface with a per-advertiser page, a per-creative page, and an EU data panel. Google's own FAQ lists no developer integration, no endpoint, and no terms for programmatic access.

The European Digital Media Observatory tested the claim directly. Its September 2025 study of electoral advertising across 15 EU countries concluded that Google "does not provide a dedicated API for customised searches within the ad repository", while noting that bulk export exists. That is the closest thing to an official answer anyone has published.

Most of the confusion comes from three different products sharing the word API, and only one of them touches competitor data.

First, the Google Ads API. It is real, documented, and scoped to accounts your credentials can already reach.

Second, the BigQuery public dataset google_political_ads. It is official and free to query, and it covers election advertising only. Google's own walkthrough says the data starts in 2018, keeps election ads for seven years, and carries the creative, the targeting categories, impressions, and spend.

Third, the center's internal RPC. It is undocumented, unofficial, and the only route to commercial creative data at ad level.

What the Transparency Center actually exposes per ad

Per advertiser you get the legal name or trademark, the advertiser's location, a verified or unverified badge, and the payer name when it differs from the advertiser. Agency accounts display the client's payment profile as the payer. Google's ads transparency policy documents that behaviour.

Per creative, coverage depends on the region you select. Under "Anywhere" you get a preview, a format label, and the last date the ad was shown. Switch to an EU country and you also unlock first-shown and last-shown dates for that country, an impressions range, and targeting categories with include and exclude markers.

Outside the EU most of that disappears. US and UK commercial ads show no impressions and no targeting. Political ads are the exception, because Google runs a separate political transparency report with spend and impression ranges on each card.

Retention and lag are part of the contract: the center keeps a commercial ad for one year after it was last shown, election ads for up to seven years, and new creatives take 48 to 72 hours to appear (Google Ads Transparency Center FAQ, accessed October 2026).

One more change catches people building on this. Google removed clickable landing pages from the center and says the functionality is not coming back. Every creative is now an image, and the only URL you can read is the display URL printed inside the ad, which is not necessarily the page a click would open.

What the Google Ads API can and cannot see

The Google Ads API is the programmatic interface for managing Google Ads accounts. It authenticates as a user with access to a customer ID, and returns that account's campaigns, budgets, assets, and performance metrics through GAQL. The API introduction frames it as account management, because that is what it is.

It cannot see a competitor. There is no service in the API that returns another advertiser's creatives, spend, or targeting. Access is granted per customer ID: without that grant you get an authorization error, not data.

The operational ceiling matters too. A developer token starts at Test access against test accounts only. Explorer opens production accounts at 2,880 operations a day. Basic allows 15,000 operations a day. Standard requires a manual compliance audit and is reserved for tools with external users (Google's access levels). Even at Basic, 15,000 operations is a budget you plan around.

So the honest read of a Transparency Center API request is this: the person wants competitor creative and spend data, and the Ads API is the wrong instrument. The Ads API tells you what your own account did. It never tells you what a rival bought.

If you are also mapping the Meta side, our comparison of an ad intelligence API against the Meta ad library API draws the same boundary around Meta's endpoints.

The four workarounds, ranked by maintenance cost

Rank them by what you will still be paying in twelve months, not by what ships this week.

1. A vendor ad intelligence API. Highest licence cost, lowest maintenance. You buy a schema that someone else keeps working when Google moves a field. This is the right default for an agency monitoring dozens of advertisers continuously.

2. The BigQuery political ads dataset. Officially supported, free to query, and structurally narrow. Useful for political research and spend modelling, useless for a commercial SaaS competitor.

3. Scraping the public explorer. No licence fee, heavy engineering. The center is a thin shell over an internal RPC, so a competent engineer gets records in a day and then spends the next year on proxies, retries, and field drift.

4. An MCP server for agents. It is a wrapper rather than a data source, and it earns its own line because agent workflows need a stable tool schema more than a cheap one. The account-side version is covered in our guide to the Google Ads API MCP server.

If you are already scraping a public ad library, our guide to automating Meta ad library scraping shows the same maintenance shape with fewer request types.

How does the public explorer's internal RPC actually work?

The front end is an Angular shell that posts to three methods under https://adstransparency.google.com/anji/_/rpc/: SearchService/SearchSuggestions for advertiser lookup, SearchService/SearchCreatives for the ad list, and LookupService/GetCreativeById for a single ad.

Every call is form-encoded with one field, f.req, holding JSON. The JSON is protobuf-style, so keys are numbers instead of names. Page size is field 2, the filter object is field 3, the pagination cursor is field 4. Creatives come back in field 1 and the next cursor in field 2.

Region codes follow a rule you can implement in one line: 2000 plus the ISO 3166-1 numeric code. France is 250, so the center uses 2250. The United States is 840, so it uses 2840. That saves an afternoon of diffing live traffic.

SearchSuggestions answers anonymously and returns advertiser IDs, country, a rough ad-count range, and a verified flag. That is the useful part, because it turns a domain such as nike.com into an advertiser ID without a login.

GetCreativeById is the wall. It expects an x-framework-xsrf-token header, and that token only appears in the page HTML for a signed-in session. Anonymous callers get nothing. The workaround is to query each country separately and record which ones return the creative: slower, but it needs no account.

Where a scraper breaks in production

Three failure modes account for almost all of the pain, and none of them look like an error when they happen.

Rate limiting is per IP, not per header. Somewhere around 60 to 80 RPC calls, responses stop being data and become a redirect to google.com/sorry. Backoff does not clear it. Only a different exit IP does, so the retry path has to rotate and then replay the same cursor.

Anonymous caps bite on large advertisers. Practitioner reports put the ceiling at roughly 100 to 200 ads per advertiser without a session cookie, which is a fraction of what a national retailer runs in a year.

Field renumbering is the quiet one. If Google changes a field number, the response is still valid JSON of the right shape and every value lands in the wrong column. A scraper that only checks for HTTP 200 will keep writing plausible, wrong rows for weeks.

The fix is boring and it works. Assert invariants on every batch (creative IDs must look like IDs, dates must parse) and run a canary that diffs today's response shape against a frozen fixture before the main job starts.

Copy is the last trap. Text ads carry their headline and description hex-escaped inside a JavaScript bundle served from displayads-formats.googleusercontent.com. Image ads are pixels, and for many brands they are 60 to 80 percent of creatives, so you need OCR before the copy is searchable at all.

What fields can you actually get?

This is the part that decides the build. Sort the fields into three buckets before writing code.

Reliably available: creative ID, format, preview asset, advertiser ID and name, advertiser domain, first and last shown dates per country, region list, and creative variants.

Available as ranges, EU or political ads only: impressions per country, and spend for political ads. Both are banded rather than exact, and EU impression figures land roughly 90 days behind the display window.

Never available on any path Google offers: exact spend for a commercial advertiser, keyword-level targeting, conversion or revenue data, and the destination URL a click would have opened. If your product needs one of those, no API will provide it, and a forecast dressed as a measurement is the only dishonest option.

Estimating what a competitor spends is a modelling problem rather than an extraction problem. Our breakdown of detecting competitor Google Ads budget changes shows where the usable signal actually comes from.

How do you decide between building and buying?

Three questions settle it faster than any comparison table.

How many advertisers do you watch, and how often? Five advertisers weekly is a cron job. Two hundred advertisers daily is an operations team you did not budget for: proxies, retries, monitors, and someone on call when the response shape moves.

Do you need EU impression bands? If yes, every pull is region-scoped and every metric carries a 90 day lag in your data model. If no, you skip an entire class of requests and a large slice of proxy spend.

What is a corrupted dataset worth to your product? If a silent field shift would reach a customer-facing report, buy. The licence fee is cheaper than the incident review.

A rough break-even: a competent scraper costs two to three weeks of engineering, steady maintenance, and proxy spend that scales with volume. A vendor contract is a line item. Below roughly twenty advertisers, build. Above that, the maintenance curve usually wins against you.

What should an AI agent use instead of a scraper?

Agents need the opposite of a scraper. They need a tool that returns a stable schema, states its freshness, and fails loudly. Hex-escaped copy and OCR output is a bad contract for a model to reason over.

The practical stack has two tools and one monitor. One tool reads your own account through the Google Ads API, one reads competitor creative and spend signal through a vendor or a scraper you have hardened, and the monitor compares them on a schedule.

That second tool is the one agents actually lack, because it is the one nobody will keep alive for free. adextract ships that layer: competitor creative and spend signal returned as structured records an agent can query, without you owning a proxy pool or a field map that moves under you.

Frequently asked questions

Is there a Google Ads Transparency Center API?

No. Google publishes no documented API for the center. The only official programmatic ad data Google offers is the BigQuery political ads dataset, which covers election ads, plus the Google Ads API for accounts you already control.

Does the Google Ads API let me see competitors' ads?

No. It authenticates against customer IDs you have permission for, so it returns your own campaigns, budgets, and metrics. There is no service or resource for another advertiser's creatives.

Can I scrape the Ads Transparency Center legally?

Logged-off scraping of public pages has held up in US courts, including Meta v. Bright Data in January 2024, but that ruling turned on facts specific to that case and does not override Google's terms or EU rules. Treat it as contract and jurisdiction risk, not a settled permission.

Which data is missing from the Transparency Center?

Exact spend for commercial advertisers, keyword-level targeting, conversions, and clickable landing pages. Impressions appear only inside EU region views and on political ads, and they are always published as ranges.