LinkedIn Ad Library Change Monitor
Pricing
from $0.50 / 1,000 ad trackeds
LinkedIn Ad Library Change Monitor
Track competitor LinkedIn ads and emit only deterministic changes.
Pricing
from $0.50 / 1,000 ad trackeds
Rating
0.0
(0)
Developer
Monkey D. Scraping
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Monitor competitor LinkedIn ads and get a clean change feed from the public LinkedIn Ad Library. Each scheduled run compares the current result set with the previous snapshot and returns only what changed: new ads, disappeared ads, and advertisers never seen before.
This is a deterministic LinkedIn advertising monitor for competitive intelligence, campaign tracking, lead-generation research, and daily or weekly alerts. It uses no login, cookies, AI, or external Actor.
At a glance
| Capability | Details |
|---|---|
| Data source | Public LinkedIn Ad Library, logged out |
| Search targets | Advertiser, payer, keyword, or direct Ad Library URL |
| Input | One company or a list of monitored inputs |
| State | Previous snapshot in the Actor key-value store |
| Change feed | New ads, disappeared ads, and new advertisers |
| Reference data | Complete current snapshot per monitor |
| Scheduling | Designed for daily or weekly runs |
| Authentication | None required |
| AI enrichment | None; deterministic normalization and set comparison |
What this Actor does
- Tracks one company or a list of competitors in one run.
- Searches by advertiser, payer, keyword, or a direct LinkedIn Ad Library URL.
- Detects new LinkedIn ads and ads that disappeared since the previous complete run.
- Flags a new advertiser appearing in the monitored results.
- Preserves a full current snapshot for audit and historical comparison.
- Calculates active-ad count, ads first seen in the period, average observed longevity, format mix, and payer-to-advertiser mapping.
- Keeps state isolated by
monitorId, so separate competitors, users, and schedules do not share baselines.
Search phrases this Actor answers
- track competitor LinkedIn ads
- monitor LinkedIn Ad Library
- get alerts on new LinkedIn ads
- detect when competitor ads disappear
- see which companies advertise on LinkedIn
- track LinkedIn advertiser and payer activity
- compare competitor ad campaigns over time
- export LinkedIn ad change events to a dataset
Why the change feed is useful
Most ad-library scrapers return a flat dump that must be compared manually. This Actor does the set comparison for you. The first run creates a baseline and intentionally emits no new alerts. Later complete runs emit only differences, so the changes dataset is suitable for schedules, downstream automations, and daily review.
Results are conservative: if LinkedIn truncates the page at maxResults, returns a challenge/block page, or produces an unparseable empty response, the previous snapshot is not replaced and false disappearance alerts are avoided.
Event semantics
| Situation | Output |
|---|---|
First run for a new monitorId and scope | Baseline only; no change alerts |
| Complete run with an ad not in the previous snapshot | new |
| Complete run with a previous ad no longer present | disappeared |
| Advertiser never seen in this monitor's history | new-advertiser |
Result set truncated at maxResults | Change alerts are suppressed |
| LinkedIn challenge, block, or parser failure | Previous snapshot is preserved |
This Actor vs similar LinkedIn Actors
| Capability | This Actor | SolidCode LinkedIn Ads Scraper | Jaybird LinkedIn Ad Library Scraper |
|---|---|---|---|
| Primary job | Monitor changes between scheduled runs | Extract LinkedIn ads in bulk | Extract LinkedIn ads and optional details |
| Output | Change events plus full snapshot | Flat ad rows | Flat ad rows with basic/enriched modes |
| Stateful baseline | Yes, isolated by monitorId | Not the core workflow | Not the core workflow |
| Alerts | New, disappeared, new advertiser | Consumer compares results separately | Consumer compares results separately |
| Search | Advertiser, payer, keyword, direct URL | Keyword, advertiser, direct URL | Company, payer, keyword, direct URL |
| Public/no login | Yes | Yes | Yes |
| Indicative pricing | $0.50 / 1,000 tracked ads + change events | $0.50 / 1,000 basic; $0.90 / 1,000 enriched | $0.35 / 1,000 basic; $1.50 / 1,000 enriched |
The positioning is intentionally different: those Actors are optimized for extracting ad data, while this Actor is optimized for recurring monitoring and a ready-to-use change feed. Competitor prices are observed Store prices and can change.
Other Actors from the same publisher
Use these complementary Actors for a broader monitoring workflow:
| Actor | Best for | Main output |
|---|---|---|
| Telegram Keyword Search & Channel Scraper | Public Telegram research and keyword discovery | Matching posts and channel data |
| Google Shopping Price Tracker & Seller Monitor | Product prices, offers, and seller monitoring | Changed offers and product snapshot |
Output datasets
The default dataset contains a run manifest with links to two monitor-specific datasets:
- LinkedIn Ad Change Events & Metrics (
changes): event rows fornew,disappeared, andnew-advertiser, plus per-company aggregate metrics. - LinkedIn Ad Library Current Snapshot (
snapshot): every normalized ad observed in the latest complete result set.
Each normalized ad has a stable ID derived from the LinkedIn Ad Library detail URL. Snapshot state is stored in the Actor key-value store and updated only after both output datasets are written successfully.
Input example
{"monitorId": "acme-competitors-weekly","advertisers": ["OpenAI", "Anthropic"],"country": "IT","dateRange": "30d","searchType": "advertiser","maxResults": 100}
Use the same monitorId and filter scope on recurring runs. Changing the scope intentionally starts a new baseline instead of creating false changes.
Indicative launch pricing
The planned pay-per-event structure stays close to low-cost LinkedIn ad scrapers while charging a small premium for change detection:
| Event | Indicative price |
|---|---|
actor-start | $0.00005 per run |
ad-tracked | $0.0005 per normalized ad ($0.50 / 1,000) |
change-detected | $0.003 per emitted change |
These prices are indicative until PPE charging is enabled and confirmed in the Apify Store. Dataset summary and snapshot rows should not create additional billable events.
Reliability and limitations
The source is LinkedIn's public Ad Library, so its availability, pagination, markup, and fields can change. No login or private LinkedIn data is accessed. Run a weekly smoke test and verify that both named datasets receive records before relying on alerts in production.
Billing event names are defined in the Actor code as actor-start, ad-tracked (one per normalized ad), and change-detected (one per emitted change). Store pricing can be configured separately after publication.