# Google Ads Transparency Center Scraper

> Google Ads Transparency Center scraper: see competitor ad text, images, YouTube ads, dates and countries. Search by domain or advertiser. No login.

URL: https://cliqtomedia.com/actors/google-ads-transparency-scraper/

Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-ads-transparency-scraper?fpr=cliqto

See which ads a brand runs on Google. Add a domain or advertiser name and get one row per ad. You get the ad text, dates and countries.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `apify.com` in Domains. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Google Ads Transparency Scraper gets the ads that a brand or website runs on Google. Add a domain, an advertiser name or an advertiser ID (AR…), and the Actor returns one row per ad from the public [Google Ads Transparency Center](https://adstransparency.google.com/): ad text, image or YouTube link, first and last shown dates, countries and impression ranges.

- Who: advertiser name, advertiser ID (AR…), domain.
- What: format (`text`, `image`, `video`), headline, description, display URL, call-to-action, image URL, YouTube link.
- When: first shown, last shown, days shown, as reported by Google.
- Where and how much: countries where the ad ran, with dates and impression ranges per country, plus a total impression range.
- Links: the public Transparency Center page of the ad and the Google preview URL.

### Good for

- See which ads a competitor runs on Google right now, and when Google first showed them.
- Collect ad copy (headlines and descriptions) of a brand for PPC research.
- Check in which countries a brand advertises and how big the reach is.
- Save image ads and YouTube ads of a brand for creative research.

### Not a good fit

- The Actor shows what Google publishes in the Transparency Center. It does not show clicks, spend, keywords or targeting.
- Impressions are ranges from Google (for example 1,000–2,000), not exact numbers. Google does not show them for every ad.
- Some text ads exist only as a picture. For them `headline` and `description` are `null`, and `imageUrl` has the picture.
- Up to 500 ads per advertiser or domain, and about 600–800 ads per run in total. For more, split the job across several runs.
- The Actor does not solve CAPTCHAs. If Google blocks all requests, the run stops with a clear error.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.004 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Ad | $0.0012 (from $0.001 on paid Apify plans) | Charged for each ad row saved to the dataset (complete or partial), with ad text, image/YouTube link, dates and per-country reach included. Not-found and error rows are free. |

- One ad: about $0.0052.
- 1,000 ads: about $1.40 (50 runs of up to 20).
- Every day 100 ads, for 30 days: about $4.20 a month (5 runs a day).
- 20 ads once a week (4 runs a month): about $0.11 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-ads-transparency-scraper?fpr=cliqto

## Questions

### Can I see how much a competitor spends?

No. Google does not publish spend, clicks, keywords or targeting. You get impression ranges where Google shows them.

### Why is the text empty for some ads?

Google stores some text ads only as a picture. Then you get the image link instead.

### How many brands can I check at once?

Up to 20 domains and advertisers per run, with up to 500 ads each.

### Do I need a Google Ads account?

No. The tool reads the public Transparency Center without login or an API key.

### Do I need a Google account or an API key?

No. The Actor reads the public Ads Transparency Center pages. No login, cookies or API key.

### Are impressions exact?

No. Google shows ranges, for example 1,000–2,000. The Actor returns the lower and upper end. Google does not show impressions for every ad or country; then the values are `null`.

### How fresh is the data?

Every run reads the Transparency Center live. `lastShown` tells you when Google last showed the ad.

### Which name match does the Actor use?

For a name, it looks for an advertiser whose name has the same whole words (exact name first). It never guesses a different company. For an exact account, use the AR… ID from the advertiser page URL.

## Data fields

- `status` (string): Row result: complete, partial (some details missing), not_found (no ads for this input) or error. Only complete and partial rows are charged.
- `statusReason` (string): Plain-English reason for partial, not_found or error rows; null when complete.
- `errorCode` (string): Machine code for error rows, e.g. SOURCE_BLOCKED, RATE_LIMITED, DEADLINE_REACHED; null otherwise.
- `input` (string): Your input value as given (advertiser name, AR… ID or domain).
- `inputType` (string): How the input was read: advertiserId, advertiserName or domain.
- `advertiserId` (string): Google advertiser ID (AR…).
- `advertiserName` (string): Verified advertiser name as shown in the Ads Transparency Center.
- `advertiserCountry` (string): Advertiser country (two-letter code) when Google shows it.
- `domain` (string): Domain the ad points to, when Google shows it.
- `creativeId` (string): Google creative (ad) ID (CR…).
- `format` (string): Ad format: text, image or video.
- `firstShown` (string): When the ad was first shown (ISO timestamp, from Google).
- `lastShown` (string): When the ad was last shown (ISO timestamp, from Google).
- `daysShown` (integer): Days shown, as reported by Google.
- `regions` (array): Countries where the ad ran: code, name, criteriaId, firstShown, lastShown, impressionsMin, impressionsMax. null when details are off or unavailable.
- `impressionsMin` (integer): Lower bound of total impressions Google reports (range, not an exact count).
- `impressionsMax` (integer): Upper bound of total impressions Google reports.
- `variations` (integer): Number of ad variations Google shows for this creative.
- `headline` (string): Text ad headline from the Google ad preview.
- `description` (string): Text ad description from the Google ad preview.
- `displayUrl` (string): Display URL shown in the text ad.
- `callToAction` (string): Call-to-action button text of display ads (e.g. Sign Up), when Google shows it.
- `text` (string): Headline and description joined into one string; null when Google has no text for the ad (for example text ads shown only as an image).
- `imageUrl` (string): Image URL of the ad: image ads, display ads (main image) and text ads Google renders as an image.
- `videoUrl` (string): YouTube link of a video ad.
- `creativeUrl` (string): Google preview URL of the creative.
- `adUrl` (string): Public Ads Transparency Center page of this ad.
- `regionFilter` (string): Region filter used for this row: anywhere or a country code.
- `sourceUrl` (string): Ads Transparency Center page for your input.
- `fetchedAt` (string): When the Actor read this row (ISO timestamp).

## Input settings

- `domains` (array): Website domains whose ads you want, e.g. apify.com. Returns ads of every advertiser that points to the domain. URLs and www. are cleaned up automatically. Up to 20 domains and advertisers in total.
- `advertisers` (array): Advertiser names (e.g. Apify Technologies) or advertiser IDs starting with AR (from the advertiser page URL, which you can also paste). A name must match whole words of a Transparency Center advertiser; if nothing matches, you get a free not_found row with the closest names and their AR… IDs. Use the AR… ID to pick an exact account.
- `region` (string): Where the ads were shown: "anywhere" (default) or a two-letter country code such as US, GB, DE.
- `format` (string): Only text, image or video ads. "all" keeps every format.
- `dateFrom` (string): Only ads shown on or after this date (YYYY-MM-DD). Leave empty for no start limit.
- `dateTo` (string): Only ads shown on or before this date (YYYY-MM-DD). Leave empty for today.
- `maxAds` (integer): Maximum ads returned for each advertiser or domain, 1–500. One run collects about 600–800 ads in total within its ~4.5-minute working time; split bigger jobs across runs. Each ad row is charged; not-found and error rows are free.
- `includeDetails` (boolean): Adds the countries where each ad ran, with first/last shown dates and impression ranges per country. Included in the price; turn off only for faster runs.
- `includeAdText` (boolean): Reads the headline, description and display URL of text ads and the YouTube link of video ads from the Google ad preview. Included in the price; turn off only for faster runs.
- `proxyConfiguration` (object): Apify datacenter proxy by default. If Google blocks it, the Actor switches to Apify residential proxy by itself. Choose your own proxy group or URLs to turn this off. The Actor never solves CAPTCHAs.

## Step by step on Apify

1. Open the Input tab.
2. Keep the prefilled domain `apify.com` in Domains, or add your own domain, for example `shopify.com`.
3. Keep Max ads per advertiser or domain at `20` and Region at `anywhere`.
4. Click Start.
5. Open the Output tab. The Ads view shows advertiser, format, dates, impressions and ad text.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Competitor ad monitoring | `domains` | one row per ad | `headline`, `firstShown`, `lastShown`, `daysShown` | schedule + Google Sheets |
| PPC copy research | `domains` or `advertisers`, `format` = `text` | text ad | `headline`, `description`, `displayUrl` | export CSV |
| Market and country check | `advertisers` + `region` | ad with regions | `regions`, `impressionsMin`, `impressionsMax` | BI tool via API |
| Creative library | `format` = `image` or `video` | image or video ad | `imageUrl`, `videoUrl`, `callToAction` | download images |

## Tips

- Use a domain when you do not know the exact advertiser name.
- Filter by format to get only text, image or video ads.
- Split big jobs into several runs; one run collects about 600 to 800 ads.

## Limits



- Up to 20 domains and advertisers per run, up to 500 ads for each.
- One run works for about 4.5 minutes and collects about 600–800 ads in total in our tests. If it has more to do, it stops with the ads it has and the summary shows `CAPPED` with `DEADLINE`. Split big jobs into several runs.
- A larger run timeout does not make one run collect more.
- A row with `status` `partial` is still charged: the ad is there, but some details (for example text or countries) could not be read. `statusReason` says what is missing.
- Inputs that were not done when the run stopped get free `error` rows.

## Sample result

```json
{
  "status": "complete",
  "statusReason": null,
  "errorCode": null,
  "input": "apify.com",
  "inputType": "domain",
  "advertiserId": "AR04545223091738902529",
  "advertiserName": "Apify Technologies s.r.o.",
  "advertiserCountry": null,
  "domain": "apify.com",
  "creativeId": "CR12249652250414153729",
  "format": "text",
  "firstShown": "2026-07-02T13:54:49.000Z",
  "lastShown": "2026-10-14T10:26:38.000Z",
  "daysShown": 105,
  "regions": [
    { "code": "IE", "name": "Ireland", "criteriaId": 2372, "firstShown": "2026-07-03", "lastShown": "2026-10-13", "impressionsMin": 0, "impressionsMax": 1000 },
    { "code": "IL", "name": "Israel", "criteriaId": 2376, "firstShown": null, "lastShown": "2026-10-14", "impressionsMin": null, "impressionsMax": null }
  ],
  "impressionsMin": 1000,
  "impressionsMax": 2000,
  "variations": 1,
  "headline": "Apify for your AI - Largest marketplace for AI",
  "description": "Connect Claude, ChatGPT, or Cursor to Apify Store via MCP and put tools to work today.",
  "displayUrl": "www.apify.com/",
  "callToAction": null,
  "text": "Apify for your AI - Largest marketplace for AI — Connect Claude, ChatGPT, or Cursor to Apify Store via MCP and put tools to work today.",
  "imageUrl": null,
  "videoUrl": null,
  "adUrl": "https://adstransparency.google.com/advertiser/AR04545223091738902529/creative/CR12249652250414153729?region=anywhere",
  "regionFilter": "anywhere",
  "sourceUrl": "https://adstransparency.google.com/?region=anywhere&domain=apify.com",
  "fetchedAt": "2026-10-14T11:15:51.596Z"
}
```

## Use it from code

Actor ID: `cliqtomedia/google-ads-transparency-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/google-ads-transparency-scraper").call(run_input={
    "domains": [
        "apify.com"
    ],
    "region": "anywhere"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-ads-transparency-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["apify.com"], "region": "anywhere"}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/google-ads-transparency-scraper")
result = tool.invoke({"run_input": {"domains": ["apify.com"], "region": "anywhere"}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites.

## Similar tools

- [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/)
- [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/)
- [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/)
- [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/)
- [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/)
- [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/)
