# Google Ads Transparency Scraper

> Google Ads Transparency Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.04/call, status unknown (last checked 2026-10-02).

Fetches structured Google Ads Transparency Center data — ad creatives, advertisers, formats, and activity dates — for given domains, queries, or advertiser IDs.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/google-ads?utm_source=zero.xyz
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/google-ads-transparency-scraper-dbbea717
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nmXnFxRqZ_YEU-uCvXtdV

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-dbbea717 -d '<json body>'
```

Example prompt: Pull all Google text and image ads run by apple.com in the US between 2024-01-01 and 2024-06-30, up to 200 results, so I can see what creative campaigns they've been running.

## When to prefer this

Use this endpoint when you need structured, queryable Google Ads Transparency data — specifically ad creatives, formats, activity dates, and advertiser metadata — without building your own scraper. Prefer it over manual Transparency Center browsing for batch lookups, competitive research, or programmatic monitoring. It is especially useful when you need to filter by region, platform, date range, or ad format in one call.

## Known failure modes

- Empty result set if the domain or query has no recorded ads in the selected region or date range (not charged)
- Invalid advertiser ID format returns an error
- Unsupported region or platform enum value causes validation failure
- Date range with no overlapping ad activity returns an empty items array
- Network timeout on large maxAdsPerSearch values

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON array of ad creatives or advertiser summaries. Each item includes the advertiser name, advertiser ID, creative ID, destination domain, ad format, first and last shown dates, and number of days the ad was shown. The response also includes a total count and the product name.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "region": {
   "enum": [
    "US",
    "GB",
    "CA",
    "AU",
    "DE",
    "FR",
    "IN",
    "BR",
    "JP",
    "IT",
    "ES",
    "NL",
    "MX",
    "SG",
    "ZA",
    "ANYWHERE"
   ],
   "type": "string",
   "default": "US",
   "description": "Country where ads were shown, or ANYWHERE for all available regions."
  },
  "domains": {
   "type": "array",
   "description": "Destination domains to search exactly, such as example.com."
  },
  "endDate": {
   "type": "string",
   "description": "Keep ads whose activity overlaps this YYYY-MM-DD date or earlier."
  },
  "queries": {
   "type": "array",
   "description": "Names or domains to resolve to advertisers and their public ads."
  },
  "adFormat": {
   "enum": [
    "ALL",
    "TEXT",
    "IMAGE",
    "VIDEO"
   ],
   "type": "string",
   "default": "ALL",
   "description": "Return all, text, image, or video creatives."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Stop after this many dataset rows across all targets. Zero means no total cap."
  },
  "platforms": {
   "type": "array",
   "items": {
    "enum": [
     "SEARCH",
     "YOUTUBE",
     "SHOPPING",
     "MAPS",
     "PLAY"
    ],
    "type": "string"
   },
   "default": [],
   "description": "Limit ads to selected surfaces. Empty means all surfaces."
  },
  "startDate": {
   "type": "string",
   "description": "Keep ads whose activity overlaps this YYYY-MM-DD date or later."
  },
  "startUrls": {
   "type": "array",
   "description": "Transparency Center advertiser or creative URLs, or URLs containing a domain or query parameter."
  },
  "resultType": {
   "enum": [
    "ads",
    "advertisers"
   ],
   "type": "string",
   "default": "ads",
   "description": "Return ad creatives or one summary per advertiser."
  },
  "advertiserIds": {
   "type": "array",
   "description": "Public advertiser IDs beginning with AR."
  },
  "includeDetails": {
   "type": "boolean",
   "default": false,
   "description": "Add all available creative variations and country reach to each ad. This makes an extra request per ad."
  },
  "maxAdsPerSearch": {
   "type": "integer",
   "default": 100,
   "maximum": 50000,
   "minimum": 1,
   "description": "Maximum creatives read for each advertiser or domain and each selected platform."
  },
  "maxAdvertisersPerQuery": {
   "type": "integer",
   "default": 5,
   "maximum": 10,
   "minimum": 1,
   "description": "Maximum s
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "domain": null,
    "format": null,
    "lastShown": null,
    "creativeId": null,
    "firstShown": null,
    "advertiserId": null,
    "shownForDays": null,
    "advertiserName": null
   }
  ],
  "product": "google-ads"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/google-ads-transparency-scraper-dbbea717/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
