Meta Ad Monitor: Facebook Ad Library Scraper
Pricing
from $5.00 / 1,000 results
Meta Ad Monitor: Facebook Ad Library Scraper
Facebook Ads monitor and Meta Ad Library scraper: track competitor Facebook and Instagram ads between scheduled runs. See new launches, killed creatives and proven winners, with ad copy, CTA, links and media by advertiser. A Facebook Ad Library scraper with change detection and reporting.
Pricing
from $5.00 / 1,000 results
Rating
5.0
(1)
Developer
DeepMine
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Meta Ad Monitor — Track Competitor Ads Over Time
See what your competitors changed in their Meta ads since last week. New launches, killed creatives, and proven winners — all in one scheduled run.
Every other Meta Ads tool dumps the current state and stops there. This one runs on a schedule and tells you what changed — which ads are new tests, how many got killed (didn't perform), and how many have been running long enough to be confirmed winners.
What It Does
Finds each advertiser you're monitoring in the Meta Ads Library, returns the ads they launched since your previous run, and counts what changed. The delta is the insight: new ads = what they're testing, killed ads = what didn't work, long-running ads = what's proven.
Version 2 reads the Ad Library's own data API with plain HTTP: no browser, so a run takes seconds. Your saved inputs and schedules keep working as they are.
The Delta Fields
| Field | What it means |
|---|---|
isNew | true: this ad launched since your last run and wasn't returned before |
adAgeDays | Total days this ad has been running |
trendLabel | 🔥 Battle-tested (30+ days) / 📈 Gaining traction (14–30 days) / 🆕 New test (< 14 days) |
ageDelta | Kept for older pipelines; always empty now, since each ad is returned once |
First run: returns the newest ads (up to Max Ads Per Advertiser) and sets the baseline. Every run after: returns only the ads launched since the run before, and the summary says how many were killed. You pay only for the new ads.
Turn Track Changes off to get every active ad on each run instead (isNew is then empty).
Output
Ads tab
One row per ad: copy, headline, CTA, format, image, video, landing page, start date, age and trend label, plus Meta's full ad record (platforms, Ad Library link, page details). You pay per ad row.
Advertiser summary (free)
One summary per advertiser: a status and message, active ads, new launches since last run, killed creatives, proven winners (30+ days), ads gaining traction (14–30 days), new tests (under 14 days), and the longest-running ad. The counts of active, proven and gaining ads are Meta's own counts for the whole advertiser, not only the ads returned. It's saved in the SUMMARY record of the run's key-value store (the "Advertiser summary" link on the Output tab), not as dataset rows, so you aren't charged for it. Turn on Add summary rows (free) to also get these summaries as rows, as older versions did. They go to a dataset of their own (the summaryRowsUrl link in the run's OUTPUT record), so they stay free; older versions put them among the ads and charged them.
status | What it means |
|---|---|
ok | The advertiser's ads were read |
no_active_ads | No active ads match this name in the chosen country. The advertiser may have paused all ads, or the name may not match their Facebook page name: give the page link (facebook.com/<page>) instead |
error | The Ad Library couldn't be read for this advertiser, so no ads were returned. Try again later |
statusMessage explains the status in plain words. killedAdsSinceLastRun comes from Meta's own counts (ads of every status and active ads, at the last run and now): the ads that stopped running since. Ads Meta removes from the Library altogether aren't counted.
Output Fields
| Field | Description |
|---|---|
advertiser | Advertiser name you searched for |
status | Summaries: ok, no_active_ads or error (see above) |
statusMessage | Summaries: the status in plain words |
totalAds | Summaries: active ads Meta lists for the advertiser |
newAdsSinceLastRun / killedAdsSinceLastRun | Summaries: ads launched and stopped since the last run |
provenWinnerCount / gainingTractionCount / newTestCount | Summaries: active ads running 30+ days, 14–30 days, under 14 days |
adArchiveId | Meta's unique stable ID for this ad |
isActive | Whether the ad is currently active |
isNew | True if this ad wasn't returned by an earlier run |
adAgeDays | Total days the ad has been running |
trendLabel | Battle-tested / Gaining traction / New test |
body | Ad copy text |
headline | Ad headline |
cta | Call-to-action button type (SHOP_NOW, LEARN_MORE, etc.) |
format | Creative format (VIDEO, IMAGE, CAROUSEL, DCO, ...) |
pageId | Facebook page ID |
pageName | Facebook page name |
pageLikes | Likes of the Facebook page |
imageUrl | Ad image URL |
videoUrl | Ad video URL |
linkUrl | Destination URL |
startDate / endDate | When the ad started running / was last shown |
impressionsText | Meta's impression range estimate, where Meta shows one |
spend | Spend, where Meta publishes it (political and issue ads) |
adLibraryUrl, platforms, ctaText, pageUrl, ... | Meta's full ad record, as in Meta Ad Library API |
Getting Started
- Add one or more advertiser names (Facebook page names) or page links
- Keep Track Changes on (the default)
- Schedule daily or weekly
- Second run onward: see what changed
Use Cases
Media buyers and agencies Know what your clients' competitors are testing before your clients do. Track 5–10 competitor pages on a weekly cadence and surface the creative angles that are gaining traction.
E-commerce brands See when a competitor launches a new product campaign, kills a promo that flopped, or scales a creative that's been running 60+ days. Stop guessing what's working in your market — look at the ads that survive.
Marketing teams Monitor category leaders alongside your own page. Long-running ads from top brands are free market research for what hooks and CTAs your audience responds to.
How Duration Signals Ad Performance
Meta advertisers stop running ads that don't perform — the cost is too high to sustain a losing creative. An ad that's been running for 30+ days has paid for itself enough times that the advertiser keeps spending on it. That's the signal.
- < 14 days: New test. Could go either way.
- 14–30 days: Gaining traction. Probably working.
- 30+ days: Battle-tested. This is what's working.
Input Parameters
| Parameter | Default | Description |
|---|---|---|
advertiserNames | Required | Facebook page names (or page links) to monitor |
country | US | Country to search ads for |
maxAdsPerAdvertiser | 200 | Max ads to return per advertiser in a run (hard cap); with Track Changes, the max new ads per run |
trackChanges | true | Return only new ads, and count killed ones, between runs |
includeSummaryRows | false | Also write the summaries as rows, in a dataset of their own (free) |
proxyConfiguration | Residential | Proxy for an advertiser's deeper pages; lookups, newest ads and counts go through Apify's datacenter proxy |
Related Actors
- Meta Ad Library API — every ad of a keyword, advertiser or Ad Library URL as one clean row (text, creative, video, landing page, dates, Meta's ad count), no login
- Facebook Ads Monitor — a daily run returns only competitors' new ads; you pay only for new ads
- Meta Ad Spy — find winning dropshipping products by ad duration
- Meta Ad Intelligence — discover who's advertising in your market
Data source: Meta Ads Library — a legally mandated public transparency database. No login required.