Google Ads Transparency Scraper & Ad Monitor

Export Google Ads Transparency Center creatives across 178 regions. Filter by advertiser, domain, keyword, date, status, format, and platform; download available media.

Data fields

FieldTypeDescription
querystringAdvertiser, brand, domain, or keyword that produced this ad record.
countrystringRequested country code used for the Google Ads Transparency Center region.
advertiserNamestring | nullPublic advertiser name when returned by Google.
advertiserIdstringGoogle Ads Transparency advertiser identifier.
adIdstringPublic creative identifier in Google Ads Transparency Center.
adUrlstringPublic Transparency Center creative URL.
adTextstring | nullVisible creative text extracted from public card and detail metadata when available.
headlinestring | nullFirst useful visible text line when available.

Input preview

queriesAdvertisers, domains, keywords, IDs, or URLs
advertiserIdsDirect advertiser IDs
searchTermsLegacy search terms
regionsLegacy regions
adFormatsLegacy ad formats
countryCountry

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Export and monitor public Google Ads Transparency Center creatives across 178 countries and regions, with format, platform, status, and date filters plus downloadable media when Google exposes it.

Use this actor when you need a repeatable CSV, JSON, Excel, or API export of public ad records for competitor research, creative monitoring, market analysis, ad intelligence, or AI-agent workflows.

At a glance

  • Input: Advertiser names, brand names, domains, direct AR… advertiser IDs, or Transparency Center advertiser URLs.
  • Output: Advertiser, creative, status, format, platform, dates, media, regional impression ranges, and scrape time.
  • Filters: 178 countries and regions, Google platform, creative format, active or historical status, date range, and result limit.
  • Best for: Google Ads Transparency exports, competitor ad monitoring, creative research, and ad-library workflows.
  • No login required: Uses public Google Ads Transparency Center data.

What can it do?

  • Export Google ads transparency data: Save public ad records from Google Ads Transparency Center.
  • Collect advertiser context: Capture advertiser names, IDs, regions, and ad dates when available.
  • Inspect creatives: Save ad text, headlines, descriptions, images, videos, landing pages, and snapshot URLs when exposed.
  • Filter by Google platform and format: Narrow results to Search, YouTube, Shopping, Maps, Play, text, image, or video creatives.
  • Preserve creative assets: Optionally download exposed image and video files to the run key-value store.
  • Analyze transparency statistics: Collect published regional dates, impression ranges, and platform breakdowns where available.
  • Detect campaign changes: Compare this run with a previous dataset and get new, removed, and unchanged ad IDs.
  • Understand filtered runs: Use per-query scanned, filtered, duplicate, detail, and scan-limit diagnostics.
  • Track competitors: Schedule repeat runs for the same brands or keywords.
  • Use as a Google Ads Transparency API alternative: Run from the Apify UI, API, schedules, webhooks, or the official Apify MCP server.

Common workflows

  • Competitor ad research: Export ads for a brand and compare active creative themes.
  • Creative swipe files: Save image, video, headline, and landing-page fields for review.
  • Market monitoring: Track public ad activity by country and date range.
  • Landing-page analysis: Export ad landing pages for downstream crawling or classification.
  • AI-agent briefings: Let an agent collect public ad examples before summarizing messaging patterns.

Input example

{
  "queries": ["Nike, Inc.", "adidas.com", "AR16735076323512287233"],
  "country": "US",
  "platforms": ["GOOGLE_SEARCH", "YOUTUBE"],
  "formats": ["text", "video"],
  "adStatus": "active",
  "dateFrom": "2026-01-01",
  "dateTo": "2026-07-01",
  "maxResultsPerQuery": 20,
  "maxAdsScannedPerQuery": 500,
  "compareDatasetId": "OPTIONAL_PREVIOUS_DATASET_ID",
  "includeAdDetails": true,
  "includeTransparencyStats": true,
  "downloadMedia": false,
  "proxyConfiguration": { "useApifyProxy": true }
}

Output example

{
  "query": "Nike, Inc.",
  "country": "US",
  "advertiserName": "Nike, Inc.",
  "advertiserId": "AR123456789",
  "adId": "CR987654321",
  "adUrl": "https://adstransparency.google.com/advertiser/...",
  "adText": "Shop the latest running shoes.",
  "headline": "Nike Running Shoes",
  "description": "Performance styles for every run.",
  "imageUrls": ["https://tpc.googlesyndication.com/..."],
  "videoUrl": null,
  "landingPageUrl": "https://www.nike.com/",
  "platforms": ["Google Search"],
  "regions": ["US"],
  "adStatus": "active",
  "impressionsLowerBound": 1000,
  "impressionsUpperBound": 2000,
  "regionStats": [],
  "downloadedMediaKeys": [],
  "firstShownDate": "2026-06-10",
  "lastShownDate": "2026-07-01",
  "snapshotUrl": "https://adstransparency.google.com/advertiser/...",
  "creativePageUrl": "https://adstransparency.google.com/creative/...",
  "format": "text",
  "rawCreativeType": 2,
  "scrapedAt": "2026-07-03T10:00:00.000Z"
}

Tips for best results

  • Use a direct AR… advertiser ID for repeat monitoring; it skips the advertiser suggestion step.
  • Search exact advertiser names when possible, and try both brand names and domains if the first query returns sparse results.
  • Use country filters deliberately; the same advertiser can show different ads by region.
  • Leave detail, statistics, and media downloading off for fast discovery runs. Enable them only when the richer fields matter.
  • Platform-filtered Google results cover ads shown from September 4, 2023 onward.
  • Use date filters to narrow recurring monitoring jobs.
  • For scheduled monitoring, pass the previous run's dataset ID as compareDatasetId to receive a machine-readable change summary.
  • Keep maxAdsScannedPerQuery close to your expected workload when using narrow combinations such as active video ads.

Limits and caveats

  • The actor exports public Google Ads Transparency Center data. It is not an official Google API.
  • Some ads expose only partial creative details.
  • Narrow post-filters can return fewer rows than maxResultsPerQuery; check RUN_SUMMARY.queryResults[].diagnostics to see why.
  • Impression ranges and platform breakdowns are available only where Google publishes extra transparency data; empty values do not mean zero impressions.
  • This Actor searches the general Ads Transparency Center. Google's separate political-ad archive, demographic targeting, and spend reports are not included.
  • Logged-out public access can return fewer ads than a signed-in Google session, especially for restricted creatives.
  • Google can temporarily rate-limit bursts across separate runs. The Actor paces the next run in proportion to the preceding run's RPC volume. Retries then escalate from direct access to standard proxy rotation and, when you did not choose a custom proxy group, a target-country residential fallback. If all transport tiers remain blocked, the cooldown is extended. RUN_SUMMARY.transport reports residential attempts and wait time; no input or result data is stored in the anonymous account-level coordination record. Residential proxy traffic can add Apify platform proxy charges.
  • A temporary block that outlasts the bounded run budget, or a source change, can still cause a query to fail. Other queries continue, and RUN_SUMMARY records each outcome.
  • Older API clients can continue using searchTerms, regions, adFormats, and maxItems; new clients should use the primary field names shown above.

API usage

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/google-ads-transparency-scraper').call({
  queries: ['Nike, Inc.', 'AR16735076323512287233'],
  country: 'US',
  maxResultsPerQuery: 20,
  includeAdDetails: false
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/google-ads-transparency-scraper').call(run_input={
    'queries': ['Nike, Inc.', 'AR16735076323512287233'],
    'country': 'US',
    'maxResultsPerQuery': 20,
    'includeAdDetails': False,
})
print(run['defaultDatasetId'])

cURL

curl "https://api.apify.com/v2/acts/fetch_cat~google-ads-transparency-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["Nike, Inc."],
    "country": "US",
    "maxResultsPerQuery": 20,
    "includeAdDetails": false
  }'

MCP and AI agents

You can run this actor through the official Apify MCP server at https://mcp.apify.com.

Claude Code setup:

claude mcp add apify "https://mcp.apify.com?tools=fetch_cat/google-ads-transparency-scraper"

Claude Desktop, Cursor, or VS Code JSON setup:

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/google-ads-transparency-scraper"
    }
  }
}

Agent-friendly inputs are queries, advertiserIds, country, platforms, formats, adStatus, dateFrom, dateTo, maxResultsPerQuery, maxAdsScannedPerQuery, compareDatasetId, includeAdDetails, includeTransparencyStats, downloadMedia, and proxyConfiguration.

Example prompts:

  • "Export the latest public Google ads for Nike in the United States."
  • "Use this Google advertiser ID and return 20 ad creatives without detail enrichment."
  • "Compare public ad dates and formats for these three competitor domains."

Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses search/query inputs and public search, trend, app, patent, news, or profile results to produce the output dataset and sends requests to public Google Ads Transparency pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

Common questions

Search-intent answers for buyers comparing Apify actors, API alternatives, and scheduled data workflows.

Can I export Google Ads Transparency Scraper & Ad Monitor results to CSV, JSON, Excel, or API?

Yes. Apify datasets support JSON, CSV, Excel, XML, RSS, API access, webhooks, and scheduled exports.

Can this work as an API alternative?

Yes. Use the Apify Actor API for runs and the dataset API for results. The focused MCP URL also exposes this actor for agent workflows.

Does this page replace the Apify actor page?

No. This catalog helps discovery and comparison. Running, billing, storage, and support continue through Apify.