Google Ads Transparency Scraper & Ad Monitor avatar

Google Ads Transparency Scraper & Ad Monitor

Pricing

from $0.02 / 1,000 ad extracteds

Go to Apify Store
Google Ads Transparency Scraper & Ad Monitor

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.

Pricing

from $0.02 / 1,000 ad extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

2 days ago

Last modified

Share

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.

Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

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"
}

Input configuration

SettingJSON keyWhat to enter
Advertisers, domains, keywords, IDs, or URLsqueriesBrand names, domains, direct AR… advertiser IDs, or Transparency Center advertiser URLs.
Direct advertiser IDsadvertiserIdsOptional AR… IDs that skip advertiser suggestion lookup.
Legacy search termssearchTermsCompatibility alias for queries; retained for older tasks and API clients.
Legacy regionregionsCompatibility alias for country; the first country code is used.
Legacy creative formatsadFormatsCompatibility alias for formats.
CountrycountryChoose one of 178 supported countries and regions in the input form. Unsupported codes are rejected.
Google platformsplatformsOptional Google Search, YouTube, Shopping, Maps, or Play filters.
Creative formatsformatsOptional text, image, or video filters.
Ad statusadStatusSave all, active, or inactive/historical ads based on the public last-shown date.
First datedateFromOptional ISO date; ads last shown before this date are skipped.
Last datedateToOptional ISO date; ads first shown after this date are skipped.
Maximum ads per querymaxResultsPerQueryMaximum ad records to save for each query.
Legacy maximum adsmaxItemsCompatibility alias for maxResultsPerQuery.
Maximum ads scanned per querymaxAdsScannedPerQuerySafety limit for narrow filters; partial matches are preserved when reached.
Baseline dataset IDcompareDatasetIdOptional previous dataset used to create CHANGE_SUMMARY.
Include ad detailsincludeAdDetailsFetch extra creative details and media. Disabled by default for faster, more reliable runs.
Include transparency statisticsincludeTransparencyStatsFetch published regional impression ranges and platform breakdowns where available.
Download creative mediadownloadMediaStore exposed image/video assets in the key-value store and return their record keys.
Proxy configurationproxyConfigurationApify Proxy is used only when a direct Google request fails.

Output fields

FieldDescription
query, countrySearch term and requested country.
advertiserName, advertiserIdAdvertiser information returned by Google.
adId, adUrl, creativePageUrl, snapshotUrlAd identifiers and Google Transparency URLs.
adText, headline, descriptionText fields extracted from the ad record or detail page.
imageUrls, videoUrl, landingPageUrlCreative media and destination fields when exposed.
platforms, regions, regionStatsPlatform and regional context, including published impression breakdowns when available.
adStatusActive, inactive, or unknown based on the public last-shown date.
impressionsLowerBound, impressionsUpperBoundGoogle's published impression range when available.
downloadedMediaKeysKey-value store records created when media downloading is enabled.
mediaAssets, detailAvailableMedia URLs with download outcomes, plus whether requested creative detail was available.
firstShownDate, lastShownDatePublic ad display dates when available.
format, rawCreativeType, scrapedAtCreative format, raw source type, and scrape timestamp.

The default key-value store contains RUN_SUMMARY, including pages fetched, ads scanned, filter counts, duplicates, missing details, partial-result notices, connection diagnostics, shared rate-limit wait time, and any compatibility aliases applied. It also stores RUN_CHECKPOINT after each completed query so completed work and remaining queries are visible if a large run is interrupted. When compareDatasetId is provided, it contains CHANGE_SUMMARY with new, removed, and unchanged ad IDs.

Pricing

This Actor uses pay-per-event pricing: one small start fee, then a charge for each public ad successfully saved to the dataset.

EventWhen it is chargedPrice
startOnce when the run starts$0.005 per run
adEach time an ad record is savedDepends on your Store tier below

Price per saved ad

Apify Store tierPrice per adApprox. price per 1,000 ads
Free$0.000575$0.575
Starter / Bronze$0.000500$0.500
Scale / Silver$0.000390$0.390
Business / Gold$0.000300$0.300
Custom / Platinum$0.000200$0.200
Custom / Diamond$0.000140$0.140

For example, a Free-tier run that saves 1,000 ads costs about $0.580 in Actor charges: $0.005 to start plus $0.575 for the saved ads.

Only saved ad dataset rows trigger the ad event. No-result queries, failed queries, and the RUN_SUMMARY record are not charged as ads. Apify platform usage for compute, storage, proxies, or data transfer may be billed separately; check the run's Pricing tab for the final amount.

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."

FAQ

Can I export Google Ads Transparency data to CSV or Excel?

Yes. Download the Apify dataset as CSV, Excel, JSON, XML, RSS, or through the Dataset API.

Can I monitor competitor ads?

Yes. Schedule repeat runs for the same advertiser, domain, or brand queries.

Does it include landing pages and media?

When Google exposes them and detail fetching is enabled, rows can include landing page URLs, image URLs, video URLs, regional impression ranges, and platform breakdowns. Enable downloadMedia to preserve exposed image and video files in the run key-value store.

Why did a query return no ads?

Check the advertiser in a logged-out browser session, try the exact advertiser name or domain, use another supported country, or use a direct AR… advertiser ID. Restricted ads may only be visible while signed in to Google.

Is this an official Google API?

No. It exports public data from Google Ads Transparency Center.

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.