# Google Ads Transparency API: Ads by Domain or Advertiser (`apizap.com/google-ads-transparency-api`) Actor

Every ad a brand runs on Google Search, YouTube, Display, Play, Maps and Shopping, from the Google Ads Transparency Center. Search by domain, advertiser ID, name or URL; filter by country, format, platform and date. Dates, creatives, regions. No login. By Apizap.

- **URL**: https://apify.com/apizap.com/google-ads-transparency-api.md
- **Developed by:** [ApiZap](https://apify.com/apizap.com) (community)
- **Categories:** Marketing, SEO tools, Lead generation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 ad returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Ads Transparency API | $1/1K Ads | No Start Fee

**See every ad a company runs on Google, as clean JSON.** Pull ads from the official **Google Ads Transparency Center** by **domain**, **advertiser ID**, **advertiser name** or **Transparency Center URL**. Covers Google Search, YouTube, Display, Google Play, Maps and Shopping. Filter by **country**, **format** (text, image, video), **platform** and **date range**.

Each ad comes back with first-shown and last-shown dates, days shown, format, the landing domain, the creative image URL, a preview URL and a direct Transparency Center link. Turn on **creative details** to also get every variation and the list of countries where the ad ran.

Built for marketers, agencies, competitive-intelligence teams, lead-gen and **AI agents / MCP clients** (one tool call gives a brand's full ad history).

### Why this Actor

- **$1 per 1,000 ads, no start fee.** Small runs and agent calls cost almost nothing.
- **Four ways in:** `nike.com`, `AR16735076323512287233`, `Nike, Inc.` or any Transparency Center URL (advertiser, domain or single creative).
- **Same filters as the official site:** country, format, platform, date range.
- **Fast and light:** no browser and no proxy needed. Built-in retries and back-off.
- **Hard cost caps:** `maxAdsPerTarget`, `maxItems` and your run's max-charge limit are all respected, so a run never charges more than you allow.

### Use cases

- **Competitor ad research:** what is a competitor running on YouTube in India this month?
- **Agency pitches and audits:** pull a prospect's full Google ad history in seconds.
- **Creative inspiration:** collect image and video ad creatives for a whole category.
- **Lead generation:** which companies are actively advertising in a country right now?
- **Monitoring:** schedule daily runs with `dateFrom: "1 day"` to catch new ads.
- **AI agents:** give an agent a "get this brand's Google ads" tool through Apify MCP.

### Input

| Field | Description |
|---|---|
| `targets` | Domains, advertiser IDs (`AR…`), advertiser names or Transparency Center URLs, one per line. |
| `region` | 2-letter country code (`US`, `IN`, `GB`…) or `anywhere`. |
| `format` | `ALL`, `TEXT`, `IMAGE`, `VIDEO`. |
| `platform` | `ALL`, `SEARCH`, `YOUTUBE`, `PLAY`, `MAPS`, `SHOPPING`. |
| `dateFrom` / `dateTo` | `YYYY-MM-DD` or relative (`30 days`). |
| `includeDetails` | Add all variations and the countries each ad ran in (add-on event). |
| `maxAdsPerTarget`, `maxItems` | Caps on results and cost. |

```json
{
  "targets": ["hubspot.com", "Nike, Inc."],
  "region": "US",
  "format": "ALL",
  "platform": "ALL",
  "dateFrom": "30 days",
  "includeDetails": false,
  "maxAdsPerTarget": 100,
  "maxItems": 200
}
```

### Output (one item per ad)

```json
{
  "advertiserId": "AR10072600183532683265",
  "advertiserName": "Hubspot, Inc.",
  "creativeId": "CR15671771184142221313",
  "format": "TEXT",
  "firstShown": "2025-10-01T20:22:50.000Z",
  "lastShown": "2026-11-14T07:14:32.000Z",
  "daysShown": 409,
  "targetDomain": "hubspot.com",
  "imageUrl": "https://tpc.googlesyndication.com/archive/simgad/6583841868661271148",
  "imageWidth": 348,
  "imageHeight": 168,
  "previewUrl": null,
  "adUrl": "https://adstransparency.google.com/advertiser/AR10072600183532683265/creative/CR15671771184142221313?region=US",
  "variations": [{ "imageUrl": "https://tpc.googlesyndication.com/archive/simgad/…", "previewUrl": null }],
  "variationCount": 3,
  "regions": [{ "code": "US", "name": "United States of America", "lastShown": "2026-11-13" }],
  "regionCount": 2,
  "advertiserCountry": null,
  "input": "hubspot.com",
  "region": "US",
  "scrapedAt": "2026-11-14T08:05:12.000Z"
}
```

`variations`, `variationCount`, `regions` and `regionCount` appear only when `includeDetails` is on. Google renders most text ads as images, so text ads usually have an `imageUrl`. Video and HTML ads have a `previewUrl` (Google's ad preview script). A run summary (ads per target, total reported by Google) is saved to the key-value store as `SUMMARY`.

### Pricing (pay per result)

- **$1.00 per 1,000 ads** (event `ad`).
- **+$1.00 per 1,000 ads** with creative details on (event `ad-details`).
- **No start fee.** You only pay for ads returned.

### FAQ

**Is this legal?** The Ads Transparency Center is a public site Google built so anyone can see who is advertising. The Actor reads the same public data the website shows, with no login. It collects ads and advertiser business names, not personal data.

**Why does Google say "7,000–8,000 ads" but I got fewer?** Google reports a range. Raise `maxAdsPerTarget` / `maxItems` (or set them to 0) to fetch everything.

**An advertiser name matched the wrong company.** Names are matched to the advertiser with the most ads. For a specific entity, use its `AR…` ID (shown in the run log with other matches) or its Transparency Center URL.

**Can I get the ad headline text?** Google serves most text ads as rendered images, so this version returns image and preview URLs. Text extraction (OCR) is on the roadmap. Open an issue if you need it.

***

**Made by [Apizap](https://apizap.com)**: small, reliable, pay-per-result data tools for developers and AI agents. See all our tools at [apizap.com](https://apizap.com) or email support@apizap.com for custom data feeds.

# Actor input Schema

## `targets` (type: `array`):

One per line. Accepts a domain (`nike.com`), an advertiser ID (`AR16735076323512287233`), an advertiser name (`Nike, Inc.`, matched to the advertiser with the most ads) or any Ads Transparency Center URL (advertiser, domain or single creative).

## `region` (type: `string`):

2-letter country code (US, IN, GB, DE, …) to get only ads shown in that country, or `anywhere` for all countries.

## `format` (type: `string`):

Only ads of this format. Google renders many text ads as images, so TEXT results usually include an image URL.

## `platform` (type: `string`):

Only ads shown on this Google platform.

## `dateFrom` (type: `string`):

Only ads shown on or after this date. `YYYY-MM-DD` or relative like `30 days`. Leave empty for all time.

## `dateTo` (type: `string`):

Only ads shown on or before this date (`YYYY-MM-DD`). Defaults to today when `Shown from` is set.

## `includeDetails` (type: `boolean`):

Adds all creative variations (image/preview URLs) and the list of countries where each ad was shown with last-shown dates. One extra request per ad, billed as an add-on event.

## `maxAdsPerTarget` (type: `integer`):

0 = no limit (large brands have 50,000+ ads).

## `maxItems` (type: `integer`):

Hard cap on results and on your cost. 0 = no limit.

## `proxyConfiguration` (type: `object`):

Not needed for normal use. Enable only if you hit rate limits on very large runs.

## Actor input object example

```json
{
  "targets": [
    "hubspot.com",
    "Nike, Inc."
  ],
  "region": "anywhere",
  "format": "ALL",
  "platform": "ALL",
  "includeDetails": false,
  "maxAdsPerTarget": 100,
  "maxItems": 200,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Ads returned by the run, including creative details when requested.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "targets": [
        "hubspot.com",
        "Nike, Inc."
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("apizap.com/google-ads-transparency-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "targets": [
        "hubspot.com",
        "Nike, Inc.",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("apizap.com/google-ads-transparency-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "targets": [
    "hubspot.com",
    "Nike, Inc."
  ]
}' |
apify call apizap.com/google-ads-transparency-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apizap.com/google-ads-transparency-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/8frI5P91DXqpMoDaT/builds/Qn98NA46gcS3cEL70/openapi.json
