# Google Ads Transparency Scraper - 100% Working, All Platforms (`whoareyouanas/google-ads-transparency-scraper`) Actor

Scrape any company's Google ads in seconds. Just type a brand name — auto-finds the advertiser and extracts all ad creatives across Search, YouTube, Maps, Shopping & Play. Get images, videos, headlines, dates, and regional data. No API key, no login. Clean JSON/CSV output with full ad library links.

- **URL**: https://apify.com/whoareyouanas/google-ads-transparency-scraper.md
- **Developed by:** [Anas Nadeem](https://apify.com/whoareyouanas) (community)
- **Categories:** E-commerce, Automation, Lead generation
- **Stats:** 4 total users, 3 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 ad scrapeds

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Ads Transparency Center Scraper

Scrape ad creatives, advertiser info, and metadata from Google's Ads Transparency Center (`adstransparency.google.com`). Supports all ad formats (Text, Image, Video) across all Google platforms (Search, YouTube, Maps, Shopping, Play).

### What does this scraper do?

This scraper extracts advertising data from Google's official Ads Transparency Center, which provides public access to ads running across Google's network. No Google account or API key required.

- Search by keyword, domain, or advertiser ID
- Filter by ad format (Text, Image, Video), platform, and region
- Get ad creatives, dates, advertiser info, and thumbnails
- Quick Search mode for fast bulk extraction
- Full mode with detail enrichment per ad
- Covers 250+ countries and all Google ad platforms

### Features

- Search by keyword/brand name with smart advertiser matching (ranks results by ad count)
- Direct advertiser ID lookup (AR-prefixed IDs)
- Domain-based advertiser discovery
- All ad formats: Text ads, Image ads, Video ads
- All platforms: Google Search, YouTube, Maps, Shopping, Play Store
- Pagination for large advertiser catalogs (10,000+ ads)
- Quick Search (listing-level data) or Full mode (with detail enrichment)
- Pay-per-result pricing

### How much does it cost?

| Mode | Price per ad | Best for |
|------|-------------|----------|
| Quick Search | ~$0.005 | Large-volume competitive research |
| Full Mode | ~$0.015 | Detailed creative analysis |

### Input

#### Search by keyword

```json
{
    "searchQuery": "nike",
    "region": "2840",
    "maxResults": 100,
    "quickSearch": true
}
````

#### Search by advertiser ID

```json
{
    "advertiserId": "AR16735076323512287233",
    "region": "2840",
    "creativeFormat": "image",
    "maxResults": 50
}
```

### Output

```json
{
    "advertiserId": "AR16735076323512287233",
    "advertiserName": "Nike, Inc.",
    "creativeId": "CR04739221842466701313",
    "adFormat": "IMAGE",
    "imageUrl": "https://tpc.googlesyndication.com/archive/simgad/9843983796603441212",
    "firstShown": "2023-11-16",
    "lastShown": "2026-03-28",
    "source": "google_ads_transparency",
    "sourceUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR04739221842466701313",
    "scrapeDate": "2026-03-28T10:00:00.000Z"
}
```

### Common region codes

| Code | Region | Code | Region |
|------|--------|------|--------|
| 0 | Anywhere | 2356 | India |
| 2840 | United States | 2392 | Japan |
| 2826 | United Kingdom | 2410 | South Korea |
| 2124 | Canada | 2076 | Brazil |
| 2036 | Australia | 2484 | Mexico |
| 2276 | Germany | 2792 | Turkey |
| 2250 | France | 2682 | Saudi Arabia |
| 2380 | Italy | 2784 | UAE |

### Tips

1. **Use keyword search** — The scraper auto-finds the advertiser with the most ads matching your keyword
2. **Image ads have the richest data** — Text ads don't expose landing pages
3. **No impression data** — Google doesn't expose impression counts for commercial ads
4. **Region filtering** — Results change significantly by region. Try US (2840) for the broadest coverage

### Other scrapers you might like

- [Meta (Facebook) Ad Library Scraper](https://apify.com/whoareyouanas/meta-ad-scraper)
- [TikTok Ad Library & Creative Center Scraper](https://apify.com/whoareyouanas/tiktok-ad-scraper)

### Legal disclaimer

This scraper accesses publicly available data from Google's Ads Transparency Center. Users are responsible for ensuring their use of this tool complies with all applicable laws and Google's Terms of Service.

# Actor input Schema

## `searchQuery` (type: `string`):

Keyword or domain to search for an advertiser (e.g. 'nike', 'amazon.com', 'shopify'). The scraper will search the Google Ads Transparency Center for matching advertisers and their ads.

## `advertiserId` (type: `string`):

Direct Google Ads Transparency Center advertiser ID (AR-prefixed, e.g. 'AR12345678901234567'). If provided, the scraper skips search and goes directly to this advertiser's ads.

## `creativeFormat` (type: `string`):

Filter ads by creative format.

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

Filter ads by the Google platform where they were shown.

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

Filter ads by the region where they were shown. Uses Google's numeric region codes.

## `startDate` (type: `string`):

Start date for filtering ads in YYYYMMDD format (e.g. '20250101'). Only ads shown on or after this date will be included.

## `endDate` (type: `string`):

End date for filtering ads in YYYYMMDD format (e.g. '20250331'). Only ads shown on or before this date will be included.

## `maxResults` (type: `integer`):

Maximum number of ads to return. Set to 0 for unlimited.

## `quickSearch` (type: `boolean`):

If enabled, skips detail page visits for faster, cheaper scraping. Returns listing-level fields only (no full creative details). Recommended for large-volume scrapes.

## `maxConcurrency` (type: `integer`):

Number of parallel requests. Keep at 1 for stability. Increase to 2-5 for faster scraping with higher risk of rate limiting.

## `requestHandlerTimeoutSecs` (type: `integer`):

Maximum time to wait for each HTTP request to complete.

## `proxyUrl` (type: `string`):

Proxy URL for requests. Format: http://user:pass@host:port or http://groups-RESIDENTIAL:YOUR\_APIFY\_TOKEN@proxy.apify.com:8000. Recommended for avoiding rate limits.

## Actor input object example

```json
{
  "searchQuery": "nike",
  "creativeFormat": "all",
  "platform": "all",
  "region": "all",
  "maxResults": 100,
  "quickSearch": false,
  "maxConcurrency": 1,
  "requestHandlerTimeoutSecs": 120
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of all scraped ads with key metrics and details

## `allAds` (type: `string`):

Complete dataset with all fields including creative details, platform data, and regional targeting

# 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 = {
    "searchQuery": "nike",
    "maxResults": 100,
    "maxConcurrency": 1,
    "requestHandlerTimeoutSecs": 120
};

// Run the Actor and wait for it to finish
const run = await client.actor("whoareyouanas/google-ads-transparency-scraper").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 = {
    "searchQuery": "nike",
    "maxResults": 100,
    "maxConcurrency": 1,
    "requestHandlerTimeoutSecs": 120,
}

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

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

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

```

## CLI example

```bash
echo '{
  "searchQuery": "nike",
  "maxResults": 100,
  "maxConcurrency": 1,
  "requestHandlerTimeoutSecs": 120
}' |
apify call whoareyouanas/google-ads-transparency-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=whoareyouanas/google-ads-transparency-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Ads Transparency Scraper - 100% Working, All Platforms",
        "description": "Scrape any company's Google ads in seconds. Just type a brand name — auto-finds the advertiser and extracts all ad creatives across Search, YouTube, Maps, Shopping & Play. Get images, videos, headlines, dates, and regional data. No API key, no login. Clean JSON/CSV output with full ad library links.",
        "version": "0.0",
        "x-build-id": "GXDBweXXZ6NMQUVSE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/whoareyouanas~google-ads-transparency-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-whoareyouanas-google-ads-transparency-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/whoareyouanas~google-ads-transparency-scraper/runs": {
            "post": {
                "operationId": "runs-sync-whoareyouanas-google-ads-transparency-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/whoareyouanas~google-ads-transparency-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-whoareyouanas-google-ads-transparency-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Keyword or domain to search for an advertiser (e.g. 'nike', 'amazon.com', 'shopify'). The scraper will search the Google Ads Transparency Center for matching advertisers and their ads."
                    },
                    "advertiserId": {
                        "title": "Advertiser ID",
                        "type": "string",
                        "description": "Direct Google Ads Transparency Center advertiser ID (AR-prefixed, e.g. 'AR12345678901234567'). If provided, the scraper skips search and goes directly to this advertiser's ads."
                    },
                    "creativeFormat": {
                        "title": "Creative Format",
                        "enum": [
                            "all",
                            "text",
                            "image",
                            "video"
                        ],
                        "type": "string",
                        "description": "Filter ads by creative format.",
                        "default": "all"
                    },
                    "platform": {
                        "title": "Platform",
                        "enum": [
                            "all",
                            "SEARCH",
                            "YOUTUBE",
                            "MAPS",
                            "SHOPPING",
                            "PLAY"
                        ],
                        "type": "string",
                        "description": "Filter ads by the Google platform where they were shown.",
                        "default": "all"
                    },
                    "region": {
                        "title": "Region / Country",
                        "enum": [
                            "all",
                            "2840",
                            "2826",
                            "2124",
                            "2036",
                            "2356",
                            "2276",
                            "2250",
                            "2380",
                            "2724",
                            "2528",
                            "2620",
                            "2056",
                            "2040",
                            "2208",
                            "2752",
                            "2578",
                            "2372",
                            "2203",
                            "2616",
                            "2642",
                            "2076",
                            "2484",
                            "2032",
                            "2170",
                            "2604",
                            "2392",
                            "2410",
                            "2702",
                            "2764",
                            "2360",
                            "2608",
                            "2458",
                            "2704",
                            "2682",
                            "2818",
                            "2710",
                            "2566",
                            "2376"
                        ],
                        "type": "string",
                        "description": "Filter ads by the region where they were shown. Uses Google's numeric region codes.",
                        "default": "all"
                    },
                    "startDate": {
                        "title": "Start Date",
                        "type": "string",
                        "description": "Start date for filtering ads in YYYYMMDD format (e.g. '20250101'). Only ads shown on or after this date will be included."
                    },
                    "endDate": {
                        "title": "End Date",
                        "type": "string",
                        "description": "End date for filtering ads in YYYYMMDD format (e.g. '20250331'). Only ads shown on or before this date will be included."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of ads to return. Set to 0 for unlimited.",
                        "default": 100
                    },
                    "quickSearch": {
                        "title": "Quick Search Mode",
                        "type": "boolean",
                        "description": "If enabled, skips detail page visits for faster, cheaper scraping. Returns listing-level fields only (no full creative details). Recommended for large-volume scrapes.",
                        "default": false
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of parallel requests. Keep at 1 for stability. Increase to 2-5 for faster scraping with higher risk of rate limiting.",
                        "default": 1
                    },
                    "requestHandlerTimeoutSecs": {
                        "title": "Request Timeout (seconds)",
                        "minimum": 30,
                        "maximum": 600,
                        "type": "integer",
                        "description": "Maximum time to wait for each HTTP request to complete.",
                        "default": 120
                    },
                    "proxyUrl": {
                        "title": "Proxy URL",
                        "type": "string",
                        "description": "Proxy URL for requests. Format: http://user:pass@host:port or http://groups-RESIDENTIAL:YOUR_APIFY_TOKEN@proxy.apify.com:8000. Recommended for avoiding rate limits."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
