# Google Ads Transparency Scraper

> Google Ads Transparency Scraper is a paid API for AI agents from agent-data.centorprat.workers.dev, paid per call via x402, $0.06/call, status unknown (last checked 2026-10-29).

Scrapes Google Ads Transparency Center to retrieve all ads a competitor runs across Search, YouTube, Shopping, Maps, and Play — including format, impressions, countries, and dates — by domain or advertiser name.

## Facts

- Endpoint: POST https://agent-data.centorprat.workers.dev/tools/google-ads-transparency-scraper?utm_source=zero.xyz
- Price: $0.06/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/google-ads-transparency-scraper-b9b501d1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_lLDf60Irp0MIRnHhfrPhD

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability google-ads-transparency-scraper-b9b501d1 -d '<json body>'
```

Example prompt: Pull all active Google ads for allbirds.com from the last 7 days across any platform — give me up to 25 ads with details on countries shown and impressions per country and platform.

## When to prefer this

Use this endpoint when you need to programmatically audit a competitor's Google advertising strategy without logging into any account. Ideal for competitive intelligence workflows, ad monitoring pipelines, and marketing research where you need structured data on ad formats, creatives, run dates, geographic targeting, and impression volumes directly from Google's public transparency data. Prefer this over manual Ads Transparency Center browsing when you need machine-readable output or want to automate recurring competitor monitoring.

## Known failure modes

- Advertiser domain or name not found in Ads Transparency Center — returns empty results (not charged)
- Name matches too many advertiser accounts — limit with maxAdvertisersPerName
- No ads found within the specified date range or activeWithinDays filter
- Region or platform filters return zero matching ads
- EU impression data unavailable for non-EU-targeted ads when includeDetails=true

## How this service works

Pay-per-call data and tools for AI agents, $0.002-0.01 per call in USDC via x402 (Base, Polygon or Solana), no account or API key; MAX tiers ($0.05-0.25) run deeper jobs. Agent toolkit: web search, search + read top pages, any page as clean markdown with a prompt-injection check, which-x402-API-to-call recommender, seller check. Data: Google Maps places with contacts, YouTube video data and transcripts, job listings (Indeed, LinkedIn, 13 boards), Google Ads Transparency, TikTok comments, Pinterest, Airbnb, Redfin, AliExpress, app stores, live sports, website and SEO checks, Shopify store tech stacks, and onchain token / address risk checks.

## Output

Returns a list of ads (up to maxAdsPerAdvertiser, newest first) for each matched advertiser, each ad including format (text/image/video), first and last shown dates, days running, and countries. With includeDetails=true, also returns topics, per-country date ranges, and impressions broken down by country and platform (EU data). Optionally includes an advertiser-level summary with total/active ad counts, top formats, countries, platforms, and topics.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "dateTo": {
   "type": "string",
   "description": "Only ads shown on or before this date (YYYY-MM-DD)."
  },
  "format": {
   "enum": [
    "any",
    "text",
    "image",
    "video"
   ],
   "type": "string",
   "description": "Only ads of this format."
  },
  "region": {
   "enum": [
    "anywhere",
    "AE",
    "AR",
    "AT",
    "AU",
    "BD",
    "BE",
    "BG",
    "BR",
    "CA",
    "CH",
    "CL",
    "CN",
    "CO",
    "CR",
    "CY",
    "CZ",
    "DE",
    "DK",
    "DO",
    "EC",
    "EE",
    "EG",
    "ES",
    "FI",
    "FR",
    "GB",
    "GR",
    "GT",
    "HK",
    "HR",
    "HU",
    "ID",
    "IE",
    "IL",
    "IN",
    "IS",
    "IT",
    "JP",
    "KE",
    "KR",
    "KW",
    "KZ",
    "LK",
    "LT",
    "LU",
    "LV",
    "MA",
    "MT",
    "MX",
    "MY",
    "NG",
    "NL",
    "NO",
    "NZ",
    "PA",
    "PE",
    "PH",
    "PK",
    "PL",
    "PR",
    "PT",
    "QA",
    "RO",
    "RS",
    "SA",
    "SE",
    "SG",
    "SI",
    "SK",
    "TH",
    "TR",
    "TW",
    "UA",
    "US",
    "UY",
    "VE",
    "VN",
    "ZA"
   ],
   "type": "string",
   "description": "Only ads shown in this country (ISO code). \"anywhere\" = all countries."
  },
  "dateFrom": {
   "type": "string",
   "description": "Only ads shown on or after this date (YYYY-MM-DD)."
  },
  "platform": {
   "enum": [
    "any",
    "search",
    "youtube",
    "shopping",
    "maps",
    "play"
   ],
   "type": "string",
   "description": "Only ads shown on this platform."
  },
  "advertisers": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 1,
   "description": "Website domains (e.g. \"allbirds.com\"), advertiser names (e.g. \"Duolingo\") or Ads Transparency advertiser IDs / URLs (AR...). One advertiser per line."
  },
  "includeDetails": {
   "type": "boolean",
   "description": "Per ad: topic, countries shown with dates, and impressions per country and platform (published for ads shown in the EU)."
  },
  "activeWithinDays": {
   "type": "integer",
   "description": "Keep ads last shown within the last N days (e.g. 7 = currently running)."
  },
  "advertiserSummary": {
   "type": "boolean",
   "description": "Free summary per advertiser: total ads, active ads, formats, top countries, platforms, topics."
  },
  "maxAdsPerAdvertiser": {
   "type": "integer",
   "maximum": 25,
   "description": "Newest ads first."
  },
  "maxAdvertisersPerName": {
   "type": "integer",
   "de
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "adUrl": "https://adstransparency.google.com/advertiser/AR01371945870127267841/creative/CR18159276492339544065",
    "topic": null,
    "domain": "allbirds.com",
    "format": "text",
    "imageUrl": "https://tpc.googlesyndication.com/archive/simgad/15332452576805490946",
    "daysShown": 210,
    "lastShown": "2026-10-23T10:38:10+00:00",
    "creativeId": "CR18159276492339544065",
    "firstShown": "2026-02-12T18:33:08+00:00",
    "previewUrl": null,
    "advertiserId": "AR01371945870127267841",
    "advertiserUrl": "https://adstransparency.google.com/advertiser/AR01371945870127267841",
    "advertiserName": "Allbirds Inc",
    "impressionsTotal": null
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/google-ads-transparency-scraper-b9b501d1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data.centorprat.workers.dev](https://www.zero.xyz/host/agent-data.centorprat.workers.dev/llms.txt)
