Google Ads Transparency Center Scraper
Pricing
from $1.00 / 1,000 result items
Google Ads Transparency Center Scraper
Collect Google Ads Transparency Center records for advertiser research and ad creative monitoring. Export structured transparency data for supported regions and queries.
Pricing
from $1.00 / 1,000 result items
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape structured ad creative data from the Google Ads Transparency Center by advertiser or domain.
This Actor is built for researchers, marketers, and competitive intelligence teams that need Google ad transparency data in a clean dataset instead of manually searching the Transparency Center UI.
- Search Google Ads Transparency Center by domain or advertiser
- Collect advertiser names, advertiser IDs, creative IDs, formats, preview URLs, detail URLs, first/last shown dates, and destination fields when available
- Choose a target region such as
VN,US,DE,JP, orSG - Optionally fetch creative details and parse variant content
- Use Apify Proxy or custom proxy settings for live requests
- Export results as JSON, CSV, Excel, XML, or connect them to automations and AI workflows
Why this Actor exists
Google Ads Transparency Center is useful for competitor research, ad monitoring, brand safety checks, and market analysis, but the browser interface is not designed for repeatable exports.
This Actor turns Transparency Center lookups into structured rows that can be scheduled, compared, filtered, and sent into downstream tools.
The current production scope is:
- Source: Google Ads Transparency Center
- Search modes: domain and advertiser
- Default region:
VN - Other supported region input: any two-letter region code accepted by the live Transparency Center flow
- Output: creative-level dataset rows with advertiser, creative, preview, detail, variant, and summary fields
- Pricing event: charged per final dataset item written by the Actor
What you can do with it
1. Monitor ads for a domain
Search a domain and collect the available Google Ads Transparency Center creatives for that target.
Example input:
{"runMode": "real","region": "VN","targets": [{"searchMode": "domain","searchValue": "nike.com","targetLabel": "Nike domain"}],"maxCreativesPerTarget": 20,"includeCreativeDetails": true,"includeVariantContent": true}
Example output item:
{"runId": "abc123","region": "VN","searchMode": "domain","searchValue": "nike.com","targetLabel": "Nike domain","advertiserId": "AR03132760982632267777","advertiserName": "Nike","advertiserCountryRaw": "US","creativeId": "CR17251863590479069185","detailUrl": "https://adstransparency.google.com/advertiser/AR03132760982632267777/creative/CR17251863590479069185","dedupeKey": "VN:domain:nike.com:CR17251863590479069185","previewUrl": "https://adstransparency.google.com/...","formatCode": "text","firstShownRaw": "2026-06-01","lastShownRaw": "2026-07-01","resultCountLower": 1,"resultCountUpper": 100,"variantCount": 1,"headline": "Example ad headline","description": "Example ad description","destinationUrl": "https://www.nike.com/","visibleUrl": "nike.com","redirectUrl": null,"videoId": null,"channelName": null,"channelIcon": null,"variantParseSource": "https://...","warnings": [],"scrapedAt": "2026-07-11T01:00:00Z"}
2. Research advertiser activity
Use advertiser mode when you already know the advertiser value you want to investigate.
Example input:
{"runMode": "real","region": "US","targets": [{"searchMode": "advertiser","searchValue": "Nike","targetLabel": "Nike advertiser search"}],"maxCreativesPerTarget": 30,"includeCreativeDetails": true,"includeVariantContent": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Typical use cases:
- Google Ads competitor monitoring
- advertiser discovery
- ad creative research
- market-entry research
- regulated advertising checks
- brand safety and transparency reviews
- tracking advertiser messaging over time
3. Compare ad transparency data across regions
Run the same domain or advertiser lookup with different region values to compare what the Transparency Center returns for each market.
Example scheduled input:
{"runMode": "real","region": "SG","targets": [{"searchMode": "domain","searchValue": "example.com","targetLabel": "Example Singapore check"}],"maxCreativesPerTarget": 50}
This is useful for:
- country-level ad monitoring
- international competitor research
- compliance review by market
- detecting differences in advertiser presence across regions
4. Feed Google Ads transparency data into automation or AI workflows
You can run this Actor from:
- Apify schedules
- Apify API
- Make
- Zapier
- n8n
- Google Sheets pipelines
- MCP-connected AI assistants such as Claude, ChatGPT, or Cursor
Input
| Field | Type | Default | Description |
|---|---|---|---|
runMode | string | fixture | Use fixture for deterministic smoke tests or real for live Google Ads Transparency Center requests. |
region | string | VN | Two-letter Transparency Center region code. Examples: VN, US, DE, JP, SG. |
targets | array | required | One or more search targets. Each target uses searchMode, searchValue, and optional targetLabel. |
targets[].searchMode | string | required | Supported values: domain or advertiser. |
targets[].searchValue | string | required | Domain or advertiser value sent to the Transparency Center. |
targets[].targetLabel | string | optional | Friendly reporting label copied into output rows. |
maxCreativesPerTarget | integer | 30 | Maximum creatives emitted per target. Current maximum is 100. |
includeCreativeDetails | boolean | true | Fetch and merge GetCreativeById detail payloads when available. |
includeVariantContent | boolean | true | Fetch and parse creative variant content when available. |
includeRawJson | boolean | false | Preserve raw RPC payload fragments in nullable dataset fields. |
fixtures | object | optional | Optional fixture override for deterministic validation. When omitted in fixture mode, built-in smoke payloads are used. |
proxyConfiguration | object | Apify residential proxy | Apify Proxy or custom proxy configuration for live requests. |
session | object | optional | Optional live-mode session material such as cookies, headers, and user agent. |
rpcIds | object | optional | Optional RPC ID overrides for Transparency Center endpoints. |
baseUrl | string | https://adstransparency.google.com | Optional origin override. Leave unchanged for production. |
requestTimeoutSecs | number | 30 | HTTP timeout for live requests. |
debug | boolean | false | Enable extra debug logging. |
keepDebugArtifacts | boolean | false | Keep intermediate artifacts instead of cleaning them after the run. |
Output
Each dataset item represents one Google Ads Transparency Center creative row.
Main fields:
runIdregionsearchModesearchValuetargetLabeladvertiserIdadvertiserNameadvertiserCountryRawcreativeIddetailUrldedupeKeypreviewUrlformatCodefirstShownRawlastShownRawresultCountLowerresultCountUppervariantCountheadlinedescriptiondestinationUrlvisibleUrlredirectUrlvideoIdchannelNamechannelIconvariantParseSourcewarningsscrapedAt
Optional raw fields are available when includeRawJson=true:
rawSearchCreativesJsonrawCreativeJsonrawAdvertiserJson
The Actor also writes a key-value store record:
RUN_SUMMARY- item count, run mode, region, search target, proxy metadata for live runs, warning count, and charge event information
Fixture mode vs real mode
This Actor supports two run modes.
Fixture mode
fixture mode is the default. It uses built-in smoke payloads packaged with the Actor and is useful for:
- quick schema checks
- deterministic validation
- verifying output format
- low-risk release testing
Fixture mode does not prove that the live Google endpoint is currently returning data for your target.
Real mode
real mode sends live requests to Google Ads Transparency Center.
Use real mode when you need current ad transparency data:
{"runMode": "real","region": "VN","targets": [{"searchMode": "domain","searchValue": "nike.com"}],"maxCreativesPerTarget": 10}
Proxy and session settings
The default input uses Apify Proxy with the RESIDENTIAL group for live-mode resilience.
Recommended live run with country routing:
{"runMode": "real","region": "VN","targets": [{"searchMode": "domain","searchValue": "nike.com","targetLabel": "Nike Vietnam check"}],"maxCreativesPerTarget": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "VN"}}
If you already have valid session material, you can pass cookies, headers, or a user agent in the session object. Leave baseUrl unchanged unless you are testing a controlled environment.
Live-view web server OpenAPI schema
This Actor includes a real Actor Standby / Live-view web server schema at:
.actor/openapi.json
The schema is published and validated through .actor/actor.json:
{"usesStandbyMode": true,"webServerSchema": "./openapi.json"}
Documented Standby endpoints:
GET /- service information and Apify readiness-probe responseGET /health- health checkGET /input-example- fixture and live request examplesGET /openapi.json- returns the OpenAPI document packaged with the ActorPOST /search- runs a bounded Google Ads Transparency creative search from an HTTP request bodyPOST /run- runs the Actor with the full Google Ads Transparency Center input contract
For deterministic low-cost validation, use POST /search with runMode: "fixture". For live Google Ads Transparency Center data, use a small maxCreativesPerTarget value and a residential proxy region matching the selected country.
How to use on Apify
- Open the Actor on Apify.
- Click Try for free.
- Set
runModetorealfor live Google Ads Transparency Center data. - Choose the
regionyou want to query. - Add one or more targets with
searchModeset todomainoradvertiser. - Keep
maxCreativesPerTargetlow for a small first run. - Run the Actor.
- Download the dataset as JSON, CSV, Excel, or connect it to another tool.
Example automation input
Low-cost live domain check:
{"runMode": "real","region": "VN","targets": [{"searchMode": "domain","searchValue": "nike.com","targetLabel": "Nike domain"}],"maxCreativesPerTarget": 5,"includeCreativeDetails": true,"includeVariantContent": true}
Advertiser search:
{"runMode": "real","region": "US","targets": [{"searchMode": "advertiser","searchValue": "Nike","targetLabel": "Nike advertiser"}],"maxCreativesPerTarget": 20}
Deterministic smoke test:
{"runMode": "fixture","region": "VN","targets": [{"searchMode": "domain","searchValue": "example.com","targetLabel": "Fixture smoke"}],"maxCreativesPerTarget": 2}
Data source
This Actor collects data from the public Google Ads Transparency Center surface at:
https://adstransparency.google.com
It is intended for current ad transparency research and monitoring. It does not provide private Google Ads account data, campaign spend, conversion metrics, targeting settings, or historical data outside what the Transparency Center returns.
Notes and limits
- Google can change Transparency Center RPC endpoints, response shapes, or anti-bot behavior.
- Some domains or advertisers may return no creatives for a selected region.
- Result counts are best interpreted as Transparency Center response bounds, not a complete billing or campaign report.
- Variant parsing is best-effort and depends on the preview/detail payloads returned for each creative.
- Live output can vary by region, proxy, time, and Google-side availability.
- Use
fixturemode for release validation andrealmode for current data. - Start with a low
maxCreativesPerTarget, then scale after confirming the target returns useful results.
Developer usage
Apify API
curl "https://api.apify.com/v2/acts/lentic_clockss~google-ads-transparency-center-vn/runs?token=YOUR_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"runMode": "real","region": "VN","targets": [{"searchMode": "domain","searchValue": "nike.com","targetLabel": "Nike domain"}],"maxCreativesPerTarget": 10}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("lentic_clockss/google-ads-transparency-center-vn").call(run_input={"runMode": "real","region": "VN","targets": [{"searchMode": "domain","searchValue": "nike.com","targetLabel": "Nike domain",}],"maxCreativesPerTarget": 10,})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(items[:2])
MCP / AI assistants
Use the Actor ID:
lentic_clockss/google-ads-transparency-center-vn
Example tool input:
{"runMode": "real","region": "VN","targets": [{"searchMode": "domain","searchValue": "nike.com"}],"maxCreativesPerTarget": 5}
Summary
Use this Actor when you need a Google Ads Transparency Center scraper that turns domain or advertiser lookups into structured creative-level data.
It is optimized for:
- Google Ads Transparency Center scraping
- domain-based ad monitoring
- advertiser research
- competitor ad creative analysis
- regional ad transparency checks
- structured export for analytics, compliance review, and automation