Skip to main content

Overview

The ScrapeBadger Ads Transparency API turns Google’s Ads Transparency Center into JSON: every creative an advertiser has run, with its format, media, first- and last-shown dates and days-shown count; the detail of a single creative including its size variations; advertiser lookup by name or domain; and the disclosed spend, ad mix and per-day spend curve for an advertiser in a region.
All endpoints are GET, live under https://scrapebadger.com/v1/google/ads/*, and authenticate with the X-API-Key header. Credits are charged per request (see the table below) and reported on the X-Credits-Used response header.

Features

  • Creative search — by advertiser_id or free-text query, with format and date-window filtering, and token pagination up to 100 per page.
  • Creative detail — media URL, preview HTML, every rendered size variation, run dates and the target domain.
  • Advertiser lookup — resolve a brand name or domain to the advertiser_id the other endpoints take.
  • Political disclosure — for advertisers who run political ads, Google’s disclosed spend, currency, ad count and per-day spend curve for one region.
  • Dual timestamps — every date ships twice: *_utc (Unix seconds) and *_at (ISO 8601 UTC).

Finding an advertiser

Free-text query on /ads/search is domain-based. It matches verified advertiser domains such as nike.com, not brand names. Searching Nike usually returns nothing.For a brand name, go through /ads/advertisers first and use the advertiser_id it returns.

Regions

region is an ISO 3166-1 alpha-2 code (US, DE, GB, …) naming the region the ad was served in, or anywhere for no region filter. Google filters by its own numeric geo-target criteria ids internally; the mapping is handled for you.
Spend disclosure is region-scoped: anywhere returns nothing on /ads/advertiser, so that endpoint falls back to US.

Filter honesty

Not every filter can be pushed upstream, and this API tells you which ones were applied instead of pretending. /ads/search returns a filters_applied object: Because format and the date window are applied after the fetch, returned_results can be smaller than num while next_page_token is still set. Keep paging.

Credits

Quickstart

Errors