Google Ads Transparency API

See Which Ads Any Brand Is Running, Where, and For How Long

Look up any advertiser running Google ads and see exactly what they are running: creative format, the creative itself, every region the ad appeared in, and the dates it ran. Filter by region, creative format and date window. Build ad-spying tools, competitor monitoring dashboards and brand-compliance checks without scraping the transparency site yourself.

500 free credits
No card needed
From $0.20 / 1k
Pay as you go
Structured JSON
Ready for apps
API key access
Test in minutes
3
Endpoints
8
Countries filterable
$0.20
Per 1k requests

Try it now

Make one request. Inspect structured JSON.

Use the first endpoint in this API family with a Scrappa API key. Every account includes 500 free monthly credits, so you can validate the response shape before buying credits.

Request preview
Request
curl -X GET "https://scrappa.co/api/google-ads-transparency/ads?domain=nike.com&format=image&region=2840" \
  -H "Accept: application/json" \
  -H "X-API-KEY: YOUR_API_KEY"
JSON response
{
  "success": true,
  "data": {
    "ads": [
      {
        "advertiser_id": "AR18378488041124659201",
        "advertiser_name": "Nike, Inc.",
        "creative_id": "CR09241904563038978049",
        "format": "image",
        "shown_from": 1761504000,
        "shown_to": 1790918400
      }
    ],
    "count": 1,
    "has_more": false,
    "complete": true
  }
}

What you can build

Structured data for real applications. Here are some ideas.

Competitor Ad Monitoring

Track what a rival is advertising, in which markets, and how long each campaign has been running. Spot a product launch or a market entry the moment it appears.

Creative Intelligence

See which creative formats each advertiser favours and pull the creative HTML for every ad, so you can analyse the messaging and calls to action they run.

Brand Compliance & Safety

Confirm that your own brand is not being impersonated in paid search, and check which regions a given campaign is allowed to reach.

Market & Seasonal Research

Use date-window filtering to see when an advertiser last changed its creative, revealing campaign refresh cycles and seasonal advertising patterns.

Available endpoints

Everything you need in one API.

Scrappa vs Browsing the site yourself (no official API)

See how Scrappa compares to the official API.

Advertiser search
Scrappa:
Browsing the site yourself (no official API): Manual search
Ads by advertiser
Scrappa: REST API
Browsing the site yourself (no official API): Page scraping
Region filter
Scrappa:
Browsing the site yourself (no official API): Manual
Creative format filter
Scrappa:
Browsing the site yourself (no official API): Manual
Date-window filter
Scrappa:
Browsing the site yourself (no official API): Manual
Creative HTML per ad
Scrappa:
Browsing the site yourself (no official API): Manual page inspection
Regions per ad
Scrappa:
Browsing the site yourself (no official API): Manual
Continuation tokens returned
Scrappa:
Browsing the site yourself (no official API): N/A
Structured JSON
Scrappa:
Browsing the site yourself (no official API): HTML
Authentication
Scrappa: API key
Browsing the site yourself (no official API): N/A
Blocked request still billed
Scrappa:
Browsing the site yourself (no official API): N/A
Rate limits
Scrappa: Generous
Browsing the site yourself (no official API): Aggressive blocking

Key features

Advertiser search returning both advertiser and domain records
Region filtering that reflects where an ad actually ran
Creative format filtering for image, HTML5 and video ads
Date-window filtering on when an ad was first and last shown
Per-ad detail with the regions it appeared in and its run dates
Every response includes deep links back to the public source
A blocked or unanswered upstream lookup is never billed as an empty result

Frequently asked questions

Every ad that advertiser is currently running or has run: its creative format, the regions it appeared in, and the dates it was first and last shown. Image creatives expose the asset URL directly. HTML5 and video creatives do not: the source stores those as a document to render rather than an asset to download, so they come back as a renderer URL you can resolve yourself, and asset_resolved is false for them.

No. It tells you where the ad was shown, which is often not where the company is headquartered. A US brand can be running heavily in South Korea, and filtering by a region will surface it there. One region id is accepted per request, because the source only honours a single region and a wider filter would silently return a narrower answer than you asked for.

A curated set of cross-validated ids is accepted, including United States 2840, United Kingdom 2826, Germany 2276, France 2250, South Korea 2348, Chile 2152, Greece 2300 and Bangladesh 2050. An unsupported id is rejected with a 422 before any request is made and before you are charged, rather than quietly returning an unfiltered list.

No. The source does not publish one, so the API never invents it. Results are paged: each response carries a continuation token while more remain, and the response only reports itself as complete once the walk has ended. Merge pages in the order returned and dedupe by creative id.

The request fails with a transport error and is not charged. A block is never reported to you as "this advertiser has no ads", because you would be paying for an answer we cannot stand behind. Successful requests that genuinely return no ads are billed normally.

No. The data is public and no authentication is involved. You need only a Scrappa API key.

No. This source publishes neither impressions nor a spend figure with a currency, so the API returns neither. Where it exposes relative spend bounds they ship labelled as bounds with no currency attached, rather than as an amount.

Start using the Google Ads Transparency API

Sign up and get 500 free credits. No credit card required.