Google Ads Advertiser Intelligence & Creative Clusters
Pricing
from $2.00 / 1,000 scraped ad creatives
Google Ads Advertiser Intelligence & Creative Clusters
Organize public Google Ads Transparency data by advertiser, creative and theme. Extract available creative metadata and advertiser summaries for agency research. Public ad data does not reveal private campaign performance.
Pricing
from $2.00 / 1,000 scraped ad creatives
Rating
0.0
(0)
Developer
Scopras Data Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Google Ads Transparency Competitor Intelligence
Looking for the full Google Ads Transparency scraper? Google Ads Transparency Scraper & Competitor Ad Monitor searches by brand, domain or advertiser ID, filters by country, platform, format and date, finds every advertiser linking to a domain, and labels ads new / stopped / continuing. Use this Actor when you specifically need creative theme clusters and per-advertiser summaries.
Read the Google Ads Transparency Center and turn competitor advertising into a searchable intelligence feed: which creatives an advertiser runs, in which format, since when, and what changed since your last run.
Turns Google Ads Transparency Center listings into structured competitor intelligence: normalized ad creatives, activity flags, creative clusters, per-advertiser summaries, and change events between runs.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
advertisers | string[] | — (required) | Per competitor: an advertiser ID (AR…, exact), a pasted Transparency Center advertiser URL, or a domain / name (matched to the largest similar advertiser). |
region | string | "anywhere" | Only anywhere is supported. |
maxAdsPerAdvertiser | integer | 200 | Creative cap per advertiser. |
maxPages | integer | 10 | Result-page cap (see limitations). |
requestTimeoutSecs | integer | 30 | Per-request timeout. |
concurrency | integer | 2 | Advertisers processed in parallel. |
minRequestDelayMs | integer | 800 | Client-side rate limit between requests / retries. |
maxRetries | integer | 2 | Retries for transient failures (timeout, network-error, http-error). Safety failures are never retried. |
maxResponseBytes | integer | 4000000 | Byte ceiling per response. |
longRunningDays | integer | 30 | Run-duration threshold for the long-running flag. |
newAdWindowDays | integer | 7 | First-shown recency for the new flag. |
activeWindowDays | integer | 14 | Last-shown recency for the active flag. |
resetSnapshot | boolean | false | Ignore the stored snapshot; fresh baseline. |
Output
Three item types (see .actor/dataset_schema.json):
type: "ad"— normalized creative (format,previewUrl,transparencyUrl,firstShownAt,lastShownAt) plus derivedrunDurationDays,isActive,isNew,isLongRunning, and acreativeClusterId(currently format only, since ad text is unavailable).type: "change"—new_ad,stopped_ad,resumed_ad,copy_changedvs. the stored snapshot. The first observation of an advertiser is a baseline (no events). Events are fully sorted for reproducibility.type: "advertiser_summary"—totalAds,activeAds,newAds,longRunningAds,formatBreakdown,topLandingDomains,creativeClusters, first/last shown, a deterministicactivityScore(0–100), andpartial/errorwhen the run for that advertiser was incomplete.
A SUMMARY record with per-advertiser reports, totals, changeCounts and
failuresByReason is written to the key-value store.
How it gets data
The actor calls the Transparency Center's own public JSON endpoints (SearchService/SearchCreatives and SearchSuggestions), the same ones the website uses. No login, no browser. Advertiser IDs (AR...) are exact. A domain or name is matched to the advertiser with the most ads whose name contains it (for example nike.com becomes "Nike, Inc."); pass the ID to pin an exact advertiser, and check advertiserName in the output.
What each ad row contains
Advertiser ID and name, creative ID, format (text / image / video), first and last shown dates, a preview image or preview link (previewUrl) and a link to the creative on the Transparency Center (transparencyUrl). Google's endpoint does not return ad text, landing pages, regions or variant counts, so adCopy, landingPageUrl, landingPageDomain, regions and variantCount are empty/null, and creative clusters group by format only. copy_changed events therefore never fire.
Change tracking
Each advertiser's state is kept in the run's key-value store and compared on the next run. The first run is a baseline (no change events). Runs that stop at maxAdsPerAdvertiser / maxPages before seeing everything never report unseen ads as stopped. An empty or blocked answer never wipes stored state. A stopped ad is reported once; if it returns later it is resumed_ad.
Resilience
- One failing advertiser never affects the others; unmatched names/domains are listed in the summary and not billed.
- Transient failures (timeouts, HTTP 429/5xx) are retried with backoff. Google's bot check (a redirect or non-JSON answer) is reported as
blockedand not retried. - Requests only go to adstransparency.google.com; user input is only sent inside the request body.
Known limitations
- Only region
anywhereis supported. - Google can throttle or block an IP that sends many requests; the actor then reports the advertiser as failed instead of returning empty results. Keep
concurrencylow. - Ad text and landing pages are not available from this source.
Free-plan sample and billing
Apify Free plans can collect up to 10 billable results per run from one target. An Apify paid plan enables larger batches within your configured limits and run spending limit. The Actor checks the available budget before collecting.
Billing: $0.01 startup (charged only when at least one ad is delivered) plus $0.002 per ad creative delivered. Advertiser summaries and change rows are not counted as ad creatives. Activity and longevity are not evidence of profitability, spend or conversions.
The Pricing tab is authoritative. Source access and layouts can change. Inspect the output and source evidence before using it in a business workflow.
FAQ
How is it different from the Google Ads Transparency Scraper? This Actor groups creatives into themes and writes per-advertiser summaries for agency research. For plain ad rows with new/stopped change labels, use Google Ads Transparency Scraper.
Can I search by brand name or domain? Yes. Advertiser IDs, Transparency Center URLs, domains and brand names are accepted; names resolve to the matching advertiser with the most ads.
How much does it cost? $2 per 1,000 ads plus $0.01 per run. The Pricing tab is authoritative.
Is it legal? It reads publicly available pages only, with no login. You are responsible for respecting each site's terms and the privacy rules that apply to your use of the data.
Can I run it through the API or on a schedule? Yes. Save your input as a task, schedule it in Apify Console, or call it from the Apify API. Results export as JSON, CSV or Excel and connect to Google Sheets, Slack, Make, Zapier or a webhook.