Facebook Ads Library Scraper: $0.50 per 1,000 Ads avatar

Facebook Ads Library Scraper: $0.50 per 1,000 Ads

Pricing

from $0.30 / 1,000 ads

Go to Apify Store
Facebook Ads Library Scraper: $0.50 per 1,000 Ads

Facebook Ads Library Scraper: $0.50 per 1,000 Ads

Monitor competitors' Facebook and Instagram ads from the Meta Ad Library: the 30 newest ads of each advertiser or keyword, with texts, links, images, videos, dates and platforms. Ad spy tool, no login. $0.50 per 1,000 ads, all-in.

Pricing

from $0.30 / 1,000 ads

Rating

0.0

(0)

Developer

Melon Data

Melon Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

Facebook Ads Library Scraper: monitor your competitors' ads

See what your competitors advertise on Facebook, Instagram, Messenger and Threads, straight from the public Meta Ad Library. For each advertiser or keyword you get its newest ads (up to 30 per run) with the ad text, headline, landing page, button, images, videos, carousel cards, start date, platforms and advertiser details. $0.50 per 1,000 ads, all-in. No start fee, no paid add-ons, no Facebook account needed.

Built for daily competitor monitoring: run it every morning on your list of competitors and you get every new ad they launched.

✅ What you get

  • Ad content: text, headline, link description, button (CTA), landing page URL and domain, image links, video links (HD), video thumbnails, every carousel / catalog card.
  • Dates and status: start date, last day shown, active or not, platforms (Facebook, Instagram, Messenger, Audience Network, Threads), number of versions of the ad.
  • Advertiser: name, page ID, page URL, category, page likes, profile picture, link to all its ads.
  • Political and issue ads: "paid for by", spend and impression ranges when Meta publishes them.
  • Clean output: one row per ad, no duplicates, ISO 8601 dates, catalog templates such as {{product.name}} replaced by the real product text.

⚠️ The one limit to know: up to 30 ads per advertiser or keyword

Meta shows the first page of results (about 30 ads) to logged-out visitors from servers. This actor never logs in and never uses tricks to get around Meta's limits, so it returns up to 30 ads per advertiser, keyword or Ad Library URL, newest first (or most seen first). What that means in practice, measured on 150 random advertisers (France, USA, Germany, October 2026):

Share of advertisers
Have 30 active ads or fewer: you get all their ads51 %
Launch fewer than 30 new ads in 2 days: a daily run catches every new ad95 %

So it is a great fit for monitoring a list of competitors every day. It is not the right tool to download all 5,000 ads matching a broad keyword in one run.

🚀 How to use it

  1. Add your competitors in Advertisers: a page ID (15087023444), a Facebook page URL (https://www.facebook.com/nike) or a name (Decathlon). Page IDs are the most reliable: you find them in an advertiser's Ad Library URL, after view_all_page_id=.
  2. Or add Keywords (black friday, crm software), or paste Ad Library URLs from facebook.com/ads/library (their filters are kept).
  3. Pick a country (or ALL) and click Start.
  4. To track new ads: schedule the actor daily with Started running on or after = 1 day.

Input example

{
"pageIds": ["https://www.facebook.com/nike", "15087023444", "Decathlon"],
"searchTerms": ["running shoes"],
"country": "US",
"maxAds": 30,
"order": "newest",
"adStatus": "active",
"mediaType": "all",
"platforms": ["instagram"],
"startedAfter": "7 days"
}

Filters: country, active / inactive ads, media type (image, video, meme), platforms, ad category (political, housing, employment, credit), ad languages, exact phrase, "started running on or after", "shown between" (Meta's own date filter: ads that had impressions during a period).

Switching from another Ad Library actor? The input names of the main other actors are accepted as they are, so in Make, n8n or Zapier you can switch by changing only the actor ID: startUrls (strings or { "url": … }), resultsLimit, activeStatus, sorting, onlyAdsNewerThan, onlyAdsOlderThan, searchQueries, pageUrls, adsLibraryUrls, query, pageId, advertisers, category, sortBy, minDate, maxDate, maxItems, urls.

Output example (one ad)

{
"adArchiveId": "1988864058460245",
"adUrl": "https://www.facebook.com/ads/library/?id=1988864058460245",
"pageId": "15087023444",
"pageName": "Nike",
"pageUrl": "https://www.facebook.com/nike/",
"pageCategory": "Sportswear",
"pageLikeCount": 39493442,
"isActive": true,
"startDate": "2026-10-26T07:00:00.000Z",
"endDate": "2026-10-28T07:00:00.000Z",
"platforms": ["instagram"],
"displayFormat": "DPA",
"bodyText": "Transitional pieces for seasonal layering. Move effortlessly with a new NikeSKIMS all-day uniform.",
"title": "NikeSKIMS Sherpa",
"linkUrl": "https://www.nike.com/w/nikeskims-b2asd",
"displayUrl": "nike.com",
"linkDescription": "Find NikeSKIMS at Nike.com. Free delivery and returns.",
"ctaText": "Shop now",
"imageUrls": ["https://scontent.xx.fbcdn.net/v/t39.35426-6/…"],
"videoUrls": [],
"thumbnailUrl": "https://scontent.xx.fbcdn.net/v/t39.35426-6/…",
"cards": [{ "title": "NikeSKIMS Sherpa", "linkUrl": "https://www.nike.com/t/…", "imageUrl": "https://scontent.xx.fbcdn.net/…", "ctaText": "Shop Now" }],
"collationCount": 1,
"byline": null,
"spend": null,
"impressions": null,
"searchType": "pageUrl",
"source": "https://www.facebook.com/nike",
"searchCountry": "US",
"position": 27,
"totalAdsInSearch": 70,
"scrapedAt": "2026-10-28T13:01:04.492Z"
}

totalAdsInSearch is Meta's own count for the search, so you always know how many ads there are in total. Image and video links are temporary Meta CDN links: download what you want to keep within a few days.

💡 Use cases

  • Competitor monitoring: every new ad of your competitors, every day, in a spreadsheet or in Slack.
  • Creative ideas: the hooks, offers, formats and landing pages that brands in your niche are running right now (newest first) or the most seen ones.
  • Promotion tracking: catch Black Friday, sales and launch campaigns as soon as they start (startedAfter: "1 day").
  • Agencies: watch the advertisers of all your clients' markets in one scheduled run.

📊 Measured performance (October 2026)

  • 60 advertisers in one run: 1,178 ads in 88 seconds, 99.6 % of the ads Meta shows, 0 duplicates, 0 failed page.
  • 300+ page loads in a row without a block or a CAPTCHA.
  • Default memory 1 GB (512 MB works too, twice slower).

💰 Pricing

$0.50 per 1,000 ads, everything included. You pay only for ads delivered: no start fee, no add-on, and the run stops cleanly at your spending limit.

ActorPrice per 1,000 adsExtra feesAds per search
This actor$0.50noneup to 30, newest first
apify/facebook-ads-scraper$3.40 – $5.80paid optionsall
automation-lab/facebook-ads-library$0.30 – $0.58+ $0.005 per runall
igolaizola/facebook-ad-library-scraper$0.30 – $0.75+ $0.003 – $0.0075 per runall

Prices from the Apify Store on 28 October 2026. For a daily watch of 10 advertisers (~200 ads), no per-run fee makes this actor one of the cheapest options. For a one-off export of thousands of ads from a single search, the other actors return more ads.

❓ FAQ

Is it legal? The Meta Ad Library is a public transparency tool that anyone can browse without an account. The actor only reads what a logged-out visitor sees, at a moderate pace, and collects no personal data about the people who see the ads: only ads and the public information of the advertisers.

Why only 30 ads per search? That is what Meta shows logged-out visitors from servers, and this actor does not log in or bypass Meta's limits. Add more advertisers or keywords, or run it daily: newest ads come first.

How do I find a page ID? Open the advertiser in facebook.com/ads/library: the number after view_all_page_id= in the URL. You can also paste the Facebook page URL or the name: the actor finds the page ID (and logs it).

Can I get one specific ad? Yes: paste its Ad Library link (https://www.facebook.com/ads/library/?id=…) in Ad Library URLs.

Do I get EU reach by age and gender? Not included: Meta loads that detail separately for each ad, it is not part of the public results page. You get everything the results page shows.

What if a run is interrupted? Resurrect it: finished searches are skipped and nothing is delivered or charged twice.

Something missing or broken? Open an issue on the actor page.

🔗 Also by fit_melon

Need local business leads? Google Maps Scraper with emails: places, phones, websites, emails and social profiles at $0.50 per 1,000 places.