Meta Ad Monitor: Facebook Ad Library Scraper avatar

Meta Ad Monitor: Facebook Ad Library Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Meta Ad Monitor: Facebook Ad Library Scraper

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

DeepMine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

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

FieldWhat it means
isNewtrue: this ad launched since your last run and wasn't returned before
adAgeDaysTotal days this ad has been running
trendLabel🔥 Battle-tested (30+ days) / 📈 Gaining traction (14–30 days) / 🆕 New test (< 14 days)
ageDeltaKept 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.

statusWhat it means
okThe advertiser's ads were read
no_active_adsNo 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
errorThe 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

FieldDescription
advertiserAdvertiser name you searched for
statusSummaries: ok, no_active_ads or error (see above)
statusMessageSummaries: the status in plain words
totalAdsSummaries: active ads Meta lists for the advertiser
newAdsSinceLastRun / killedAdsSinceLastRunSummaries: ads launched and stopped since the last run
provenWinnerCount / gainingTractionCount / newTestCountSummaries: active ads running 30+ days, 14–30 days, under 14 days
adArchiveIdMeta's unique stable ID for this ad
isActiveWhether the ad is currently active
isNewTrue if this ad wasn't returned by an earlier run
adAgeDaysTotal days the ad has been running
trendLabelBattle-tested / Gaining traction / New test
bodyAd copy text
headlineAd headline
ctaCall-to-action button type (SHOP_NOW, LEARN_MORE, etc.)
formatCreative format (VIDEO, IMAGE, CAROUSEL, DCO, ...)
pageIdFacebook page ID
pageNameFacebook page name
pageLikesLikes of the Facebook page
imageUrlAd image URL
videoUrlAd video URL
linkUrlDestination URL
startDate / endDateWhen the ad started running / was last shown
impressionsTextMeta's impression range estimate, where Meta shows one
spendSpend, 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

  1. Add one or more advertiser names (Facebook page names) or page links
  2. Keep Track Changes on (the default)
  3. Schedule daily or weekly
  4. 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

ParameterDefaultDescription
advertiserNamesRequiredFacebook page names (or page links) to monitor
countryUSCountry to search ads for
maxAdsPerAdvertiser200Max ads to return per advertiser in a run (hard cap); with Track Changes, the max new ads per run
trackChangestrueReturn only new ads, and count killed ones, between runs
includeSummaryRowsfalseAlso write the summaries as rows, in a dataset of their own (free)
proxyConfigurationResidentialProxy for an advertiser's deeper pages; lookups, newest ads and counts go through Apify's datacenter proxy

  • 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.