Competitor Ads Intelligence Monitor
Pricing
from $0.85 / 1,000 ad results
Competitor Ads Intelligence Monitor
Monitor public competitor ads across Google Ads Transparency Center and LinkedIn Ads Library. Extract normalized ad records, detect new ads with stateful deduplication, enrich landing pages, classify offers, and send webhook summaries.
Pricing
from $0.85 / 1,000 ad results
Rating
0.0
(0)
Developer
Вадим Захаров
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Monitor public competitor ads from Google Ads Transparency Center and LinkedIn Ads Library. Extract normalized ad records, detect new ads with stateful deduplication, enrich landing pages, classify offers, and export clean datasets for marketing intelligence.
Use this Actor as a Google Ads Transparency Center scraper, LinkedIn Ads Library scraper, competitor ads monitor, ad library scraper, Google Ads scraper, LinkedIn Ads scraper, public ads monitor, and repeatable ad intelligence feed for competitor research.
What this Actor does
Competitor Ads Intelligence Monitor collects public ad-library records for the brands, domains, and queries you care about, then turns them into a clean dataset you can analyze, schedule, export, or send to your workflow tools.
- Monitors public competitor ads across Google Ads Transparency Center and LinkedIn Ads Library.
- Normalizes Google and LinkedIn records into one consistent dataset.
- Detects new ads across scheduled runs with
onlyNewSinceLastRun. - Adds stable fingerprints for deduplication and long-term tracking.
- Enriches landing pages when public landing URLs are available.
- Classifies offers such as demos, trials, discounts, webinars, launches, and lead magnets.
- Writes a structured
OUTPUTsummary with counts, samples, warnings, errors,sourceHealth, andplatformQualitySummary. - Sends webhook summaries to downstream systems.
Who this Actor is for
This Actor is useful for teams that need practical competitor ad intelligence without building and maintaining their own ad library scraper.
- Growth and performance marketing teams tracking competitor campaigns.
- Agencies monitoring client competitors across public ad libraries.
- Founders and operators researching positioning, offers, CTAs, and landing pages.
- Sales and product marketing teams watching category messaging.
- Analysts building marketing intelligence and competitor research datasets.
- No-code operators exporting public ads to Google Sheets, Make, Zapier, Airtable, CRMs, or BI tools.
Supported sources
Store V1 / production V1 supports these public sources:
google_ads: Google Ads Transparency Center public data.linkedin: LinkedIn Ads Library public data.
TikTok is not included in Store V1 supported platforms. It is not shown as a production source because the public TikTok CCL search surface returned rate-limit / limit-exceed responses in cloud smoke tests.
What data you get
Each dataset item is a normalized public ad record. Fields are populated when the public source exposes them.
Common fields include:
platformsourcesourceUrlscrapedAttargetTypetargetValuequeryadvertiserNameadvertiserIdadvertiserDomainadIdadUrladTextheadlinedescriptionctalandingPageUrllandingDomainlandingPageTitlelandingPageDescriptionlandingPageH1landingPageCtascreativeAssetUrlscreativeTypescountriesfirstShownAtlastShownAtofferTypefunnelStagemarketingAngleclassificationMethodclassificationConfidencefingerprintisNewisDuplicatefirstSeenAtlastSeenAtwarningsstatusplatformData
The Actor also writes OUTPUT to the default key-value store. OUTPUT contains run-level counts, platform summaries, source diagnostics, samples, webhook status, warnings, and errors.
Input configuration
At least one of brands, domains, or queries is required.
Key inputs:
brands: Brand names to monitor.domains: Domains to monitor, especially useful for Google Ads Transparency Center.queries: Keyword-style searches where the public source supports them.platforms: Use["google_ads"],["linkedin"], or["google_ads", "linkedin"].countries: Two-letter country codes such asUS.maxResultsPerQuery: Maximum records to collect per platform / target / country call.onlyNewSinceLastRun: Emit only records not seen in previous runs with the samestateKey.stateKey: Persistent dedupe namespace for scheduled monitoring.includeLandingPage: Fetch public landing page metadata when landing URLs are available.webhookUrl: Send a final run summary to your webhook endpoint.maxSourceCalls: Guardrail for large platform x target x country matrices.maxTotalAds: Guardrail for total records processed in a run.
Input examples
Example inputs for common workflows:
Example 1 - Google competitor ads
{"brands": ["Nike", "HubSpot"],"platforms": ["google_ads"],"countries": ["US"],"maxResultsPerQuery": 10}
Example 2 - LinkedIn competitor ads
{"brands": ["Microsoft", "Salesforce", "HubSpot"],"platforms": ["linkedin"],"countries": ["US"],"maxResultsPerQuery": 10}
Example 3 - Mixed Google and LinkedIn monitor
{"brands": ["Nike", "HubSpot", "Microsoft"],"domains": ["nike.com", "hubspot.com"],"platforms": ["google_ads", "linkedin"],"countries": ["US"],"maxResultsPerQuery": 10}
Example 4 - Scheduled onlyNewSinceLastRun monitor
{"brands": ["Microsoft", "Salesforce", "HubSpot"],"platforms": ["google_ads", "linkedin"],"countries": ["US"],"onlyNewSinceLastRun": true,"stateKey": "my-competitor-ads-monitor"}
Output example
Example output from a normalized public ad record:
{"recordType": "ad","platform": "linkedin","source": "linkedin_ads_library","sourceUrl": "https://www.linkedin.com/ad-library/search","scrapedAt": "2026-05-31T10:15:30.000Z","targetType": "brand","targetValue": "HubSpot","query": "HubSpot","advertiserName": "HubSpot","adId": "urn:li:sponsoredCreative:123456789","adUrl": "https://www.linkedin.com/ad-library/detail/123456789","adText": "Grow faster with connected marketing, sales, and service tools.","headline": "Scale customer growth","description": "See how HubSpot helps teams turn campaigns into revenue.","cta": "Book demo","landingPageUrl": "https://www.hubspot.com/demo","countries": ["US"],"firstShownAt": "2026-05-01T00:00:00.000Z","lastShownAt": "2026-05-30T00:00:00.000Z","offerType": "demo","classificationMethod": "rule_based_v1","classificationConfidence": "medium","fingerprint": "sha256:example-public-ad-fingerprint","isNew": true,"isDuplicate": false,"status": "ok","warnings": [],"sourceHealth": {"extractionMethod": "html_patterns","sourceConfidence": "medium"},"platformData": {"publicSource": "linkedin_ads_library","creativeType": "single_image"}}
sourceHealth is also available in the run-level OUTPUT summary. It explains what each source call returned, which extraction method was used, how many public candidates were found, and whether any warnings or errors occurred.
Understanding sourceHealth
sourceHealth helps you understand why a public source returned many ads, few ads, no ads, or warnings. It includes the platform, target type, country, source URL, extraction method, source confidence, normalized ad count, warnings, and errors for each source call.
platformQualitySummary gives a faster executive view: records found, records pushed, source confidence, extraction method, and unique warning codes by platform.
Interpreting warnings
Warnings usually mean the Actor still completed the run, but a source, target type, country, landing page, or webhook had limited information. For example, Google keyword-style searches may be unsupported, LinkedIn public previews can be partial, and landing page enrichment can be skipped when a URL is unavailable or unsafe.
Incremental monitoring with onlyNewSinceLastRun
Use onlyNewSinceLastRun when you want a scheduled competitor ads monitor instead of a one-time export.
When enabled, the Actor stores stable fingerprints under your stateKey. Future runs with the same stateKey compare current public ads against previously seen fingerprints.
Recommended pattern:
- Use one stable
stateKeyper client, market, or monitoring project. - Keep the same
brands,platforms, andcountriesfor scheduled runs. - Run daily, weekly, or before campaign reviews.
- Send
sampleNewAdsto a webhook for alerts.
This is useful for tracking new campaigns, new offers, fresh landing pages, and changes in competitor messaging over time.
This is the incremental monitoring and stateKey workflow for a scheduled onlyNewSinceLastRun monitor.
Webhook alerts
Set webhookUrl to receive a JSON summary after each run.
The webhook payload includes:
- Run status.
- Dataset and key-value store IDs.
- Total ads found and pushed.
- New and duplicate counts.
- Platform-level summaries.
sampleNewAds.- Warnings and errors.
- Source diagnostics.
Use webhooks to send competitor ad intelligence to Make, Zapier, Airtable, Slack, a CRM, a warehouse, or an internal BI workflow.
Webhook example: send the final OUTPUT payload to a Make webhook, a Zapier catch hook, or your own HTTPS endpoint after each run.
Use cases
- Monitor competitor ads across public ad libraries.
- Track new campaigns and creative launches.
- Collect Google Ads Transparency Center records.
- Collect LinkedIn Ads Library records.
- Build competitor ad intelligence datasets.
- Research ad copy, CTAs, offers, funnel stages, and marketing angles.
- Compare competitor positioning across channels.
- Export public ad records to Google Sheets, Make, Zapier, Airtable, CRM, or BI tools.
- Monitor landing pages and marketing offers.
- Create repeatable public ads monitor workflows for clients or categories.
Limitations
- The Actor uses public sources only.
- No login, no cookies, and no private Ads APIs.
- No CAPTCHA bypass or challenge evasion.
- Completeness depends on public source availability, country, platform policy, and retention windows.
- Google keyword-style monitoring may be limited because Google Ads Transparency Center does not expose every search mode as a reliable public surface.
- Some LinkedIn ads may be partial if the public preview is restricted.
- Landing page enrichment depends on public page availability and safe public URLs.
- TikTok is not included in public V1.
Backlog / not included in V1: TikTok is intentionally excluded from public Store V1 until a stable production-safe source is available.
What it does not do
- It does not log in to Google, LinkedIn, ad accounts, or private dashboards.
- It does not use cookies or user browser sessions.
- It does not use private Ads APIs.
- It does not bypass CAPTCHA or anti-bot challenges.
- It does not promise full market coverage when public ad libraries limit availability.
Pricing notes
This Actor is designed for clean, bounded runs. Use maxResultsPerQuery, maxSourceCalls, and maxTotalAds to control the size of each run.
Apify Store pricing may include a small Actor start charge and a per-result charge for normalized ad records. Check the current pricing shown on the Actor page before running large jobs.
FAQ
Is this a Google Ads Transparency Center scraper?
Yes. It collects public Google Ads Transparency Center data when Google exposes usable public records for the requested brand, domain, and country.
Is this a LinkedIn Ads Library scraper?
Yes. It collects public LinkedIn Ads Library records and normalizes them into the same dataset shape as Google records.
Does it use private APIs?
No. The Actor uses public sources only. It does not use account cookies, logins, private Ads APIs, Ads Manager access, or CAPTCHA bypass.
Does it guarantee every ad a competitor is running?
No. Public ad libraries can be incomplete. Coverage depends on public source availability, country, retention windows, source UI changes, and platform policy.
Can I use it as a scheduled competitor ads monitor?
Yes. Enable onlyNewSinceLastRun, set a stable stateKey, and run it on an Apify schedule. The Actor will mark records as new or duplicate based on previously seen fingerprints.
Can I export results to Google Sheets or other tools?
Yes. You can download the dataset as JSON, CSV, Excel, or connect the output to Google Sheets, Make, Zapier, Airtable, CRM systems, warehouses, and BI tools.
Is TikTok included?
TikTok is not included in public V1. The public TikTok CCL surface returned rate-limit / limit-exceed responses in cloud smoke tests, so TikTok is not positioned as a production source in this Actor.