Google Ads & Webhook Alerts avatar

Google Ads & Webhook Alerts

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Google Ads & Webhook Alerts

Google Ads & Webhook Alerts

Track competitor Google Ads 4x cheaper and faster. Get automated webhook alerts on new launches and calculate ad longevity.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Khas-Erdene Tsogtsaikhan

Khas-Erdene Tsogtsaikhan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Google Ads Transparency Competitor Monitor & Webhook Alerts

An ultra-lightweight, workflow-native intelligence tool built to track competitor ad creative velocity and send real-time alerts when new creatives appear. It avoids slow, heavy browser-automation workflows and manual Ads Transparency Center checking by using list-only creative data surfaced through Google's web interface.

Provide a list of Advertiser IDs (AR...), set a schedule, and let this actor automatically diff incoming creatives against saved baselines so your team can react when a competitor launches new creative.

Why Use This Monitor Instead of a Standard Scraper?

Standard scrapers often dump large, unstructured CSV files that require formulas or scripts to analyze. This actor functions as a scheduled competitor monitoring system designed to plug into your existing growth stack, such as Clay, n8n, Make, Slack, or Discord.

Capabilities & WorkflowsGoogle Ads Transparency CenterStandard ScrapersThis Monitor
Scheduled SweepsManualComplex setupOut-of-the-box
Change/Delta DetectionNoneUsually noneisNewSinceLastRun
Webhook AlertingNoneUsually noneInstant JSON payload
Ad Longevity TrackingNoneUsually manualCalculated active days
LLM-Ready OutputHTML/UI onlyOften nested JSONStructured Markdown
Execution SpeedManual browsingSlow when browser-basedLightweight HTTP requests
Compute Run CostsFree manual useOften higher with browser automationSmall list-only runs

Key Features & Capabilities

Automated Change Monitoring (monitorMode)

Automatically persists baseline run states in a named key-value store. On subsequent runs, it compares the current creative catalog, detects newly launched ads, and flags them as isNewSinceLastRun: true.

Direct Webhook Integrations

Input an n8n, Make, Zapier, Slack, or custom webhook URL. The actor can trigger an HTTP POST payload summarizing changes only when new ads are detected, or on every successful monitor run if notifyOnlyOnNew is disabled.

Computed Ad Longevity

Automatically calculates the age of every creative in days (adLongevityDays) from firstShown and lastShown. Use it to prioritize competitors' longer-running creatives for review.

LLM-Friendly Markdown

Every creative output includes a pre-formatted Markdown summary block (llmMarkdown) for RAG pipelines, Claygent-style workflows, AI agents, or internal alert summaries without custom parsing.

HTTP-First Efficiency

This actor uses the same publicly accessible Ads Transparency Center data surfaced by Google's web interface, accessed through an undocumented internal JSON-RPC endpoint discovered during live testing. It is designed to stay list-only and lightweight rather than launching a browser or downloading assets.

Honest Limitations (Read Before Running)

This is a list-only creative monitor designed for fast, scheduled delta sweeps. To keep runs lightweight and reliable, the following features are intentionally out of scope:

  • No Ad Copy Extraction: It does not extract responsive text ad headlines or body descriptions in this version.
  • No Destination/Landing URLs: It does not follow redirect chains or extract final competitor landing pages.
  • No Direct Asset Downloading: It returns Google's preview URLs but does not archive raw media files locally.
  • No Autocomplete Search: You must supply verified Google Ads advertiser IDs starting with AR.... It does not perform domain-to-ID, keyword, or advertiser-name resolution.
  • No Browser Automation: It does not use browser rendering, stealth, CAPTCHA solving, or anti-bot bypass logic.

If you need deep post-click intelligence, landing-page extraction, or raw creative file archiving, a browser-heavy database scraper may be a better fit.

Step-by-Step Scheduled Monitoring Setup (Clay & n8n)

  1. Find your Advertiser ID: Go to https://adstransparency.google.com, search your competitor, and copy the AR... ID from the browser URL.

  2. Build your Schedule: In the Apify Console, go to the Schedules tab and set the actor to run daily or weekly.

  3. Configure the Input:

{
"advertiserIds": ["AR07085335169422327809"],
"monitorMode": true,
"maxAdsPerAdvertiser": 50,
"minimumLongevityDays": 0,
"webhookUrl": "https://your-n8n-or-make-webhook-url.com",
"notifyOnlyOnNew": true
}
  1. Trigger Actions: Set your downstream webhook to read the newCount value. If newCount > 0, use n8n or Make to push generated llmMarkdown blocks into your team's Slack, Discord, CRM, or research workflow.

Input

FieldTypeDefaultNotes
advertiserIdsstring[]noneRequired. Google Ads Transparency advertiser IDs like AR07085335169422327809.
maxAdsPerAdvertiserinteger100Hard cap on creatives fetched per advertiser, max 10000.
minimumLongevityDaysinteger0Only output records with adLongevityDays >= minimumLongevityDays. Monitor baselines still track all fetched creatives before filtering.
includePreviewUrlsbooleantrueInclude preview/creative URLs. Media is never downloaded.
monitorModebooleanfalseCompare against the previous run's stored creative IDs and flag isNewSinceLastRun.
webhookUrlstringnoneOptional URL for monitor summary POSTs. Used only when monitorMode is true.
notifyOnlyOnNewbooleantrueWhen true, send webhook summaries only if new creatives are found. When false, send a summary every successful advertiser run.
debugbooleanfalseSave sanitized JSON payload samples to the key-value store.
proxyConfigurationobjectApify ProxyStandard Apify proxy input.

Webhook Payload

Webhook payloads include up to the first 20 newly detected creatives to keep alerts small. The full dataset remains available in Apify.

{
"event": "google_ads_new_creatives_detected",
"advertiserId": "AR07085335169422327809",
"advertiserName": "Apple",
"previousCount": 120,
"currentCount": 123,
"newCount": 3,
"removedCount": 0,
"newCreatives": [
{
"creativeId": "CR03420806151204241409",
"adFormat": "video",
"firstShown": "2026-04-12T15:39:25.000Z",
"lastShown": "2026-06-12T18:36:54.000Z",
"previewUrls": ["https://displayads-formats.googleusercontent.com/ads/preview/content.js?..."],
"adDetailUrl": "https://adstransparency.google.com/advertiser/AR07085335169422327809/creative/CR03420806151204241409"
}
],
"runStartedAt": "2026-06-13T08:20:00.000Z",
"runFinishedAt": "2026-06-13T08:20:10.000Z"
}

Output

One record per creative, deduplicated by advertiserId + creativeId:

{
"advertiserId": "AR07085335169422327809",
"advertiserName": "Apple",
"creativeId": "CR03420806151204241409",
"adId": "CR03420806151204241409",
"adFormat": "video",
"firstShown": "2026-04-12T15:39:25.000Z",
"lastShown": "2026-06-12T18:36:54.000Z",
"adLongevityDays": 62,
"previewUrls": ["https://displayads-formats.googleusercontent.com/ads/preview/content.js?..."],
"rawRegionMetadata": 27,
"adDetailUrl": "https://adstransparency.google.com/advertiser/AR07085335169422327809/creative/CR03420806151204241409",
"isNewSinceLastRun": false,
"llmMarkdown": "### Apple creative CR03420806151204241409\n\n- Advertiser: Apple\n- Creative ID: CR03420806151204241409\n- Format: video\n- First shown: 2026-04-12T15:39:25.000Z\n- Last shown: 2026-06-12T18:36:54.000Z\n- Ad longevity days: 62\n- Preview URLs: https://displayads-formats.googleusercontent.com/ads/preview/content.js?...\n- Ad detail URL: https://adstransparency.google.com/advertiser/AR07085335169422327809/creative/CR03420806151204241409\n\nNote: headline, body text, landing URL, and domain are unavailable in list-only mode.",
"headline": null,
"bodyText": null,
"landingUrl": null,
"domain": null,
"source": { "pageNumber": 1, "fetchedAt": "2026-06-13T08:20:00.000Z" },
"scrapedAt": "2026-06-13T08:20:00.100Z",
"dataComplete": true,
"errorMessage": null
}

adLongevityDays is calculated from firstShown and lastShown; it is null if either date is invalid or the date range is invalid.

rawRegionMetadata is the raw region/impression metadata enum from the Transparency Center payload; it is not yet normalized.

If an advertiser has zero visible creatives, the actor finishes cleanly with zero records and logs a summary. HTTP errors or unexpected payload shapes emit a dataComplete: false error record.

Compliance

This actor accesses data visible through Google's Ads Transparency Center web interface. It relies on an undocumented internal endpoint and is intended for low-volume monitoring, research, and workflow automation. Review Google's terms and your own legal/compliance posture before production or commercial use.

  • Media is never downloaded; preview/media URLs are stored only as URLs.
  • No stealth, no anti-bot bypass, no CAPTCHA solving.