Facebook Ads Library Scraper avatar

Facebook Ads Library Scraper

Pricing

$15.99/month + usage

Go to Apify Store
Facebook Ads Library Scraper

Facebook Ads Library Scraper

The Facebook Ads Library Scraper extracts ad data from Facebook’s Ad Library, including advertiser details, ad text, impressions, and targeting info. Ideal for ad research, marketing insights, and competitor analysis, it delivers clean, structured data for analysis or integration via API.

Pricing

$15.99/month + usage

Rating

4.2

(6)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

5

Bookmarked

405

Total users

3

Monthly active users

5 days ago

Last modified

Share

📢 Facebook Ads Library Scraper Plus

Scrape the Meta (Facebook & Instagram) Ad Library — ad creatives, copy, CTAs, landing URLs, timing, advertiser context, and the EU DSA transparency reach block (audience reached by age × country × gender) that most scrapers throw away. Search by keyword or by page/Ad-Library URL, filter the results, and optionally enrich each ad's copy with AI.

Keywords: facebook ads scraper, meta ad library, instagram ads, ad intelligence, competitor ad research, ad transparency, EU DSA reach, ad spend, ad creatives, marketing intelligence, ad copy analysis, ad library API alternative, ad monitoring.

What it does

  • Two input modes: paste Facebook page URLs / Ad Library links, or just type keyword search terms + countries (no URL needed).
  • Full ad data: ad copy, title, caption, CTA text/type, landing URL, creative type (image / video / carousel / text), first image & video URLs, page likes, categories.
  • EU DSA transparency + reach (flagship): for ads delivered in the EU, the per-DSA audience-reached breakdown — euTotalReach, euReachByCountryAgeGender (age × country × gender rows), euReachCountries, age/gender audience, and the raw transparencyByLocation block. (Requires "Enrich each ad" on; populated only for EU-delivered ads — non-EU ads report null/false, never a fake 0.)
  • Per-ad deep link: adLibraryUrl opens the exact ad in Meta's Ad Library.
  • Advertiser block: page name, category, Instagram handle & followers, verification, page creation date, page spend — when Meta exposes them.
  • Derived analytics: adDurationDays, creativeType, hasVideo/hasImage/isCarousel, cardCount, destinationDomain, platformCount/isMultiPlatform, spend/impressions midpoints, scrapedAt.
  • Filters: must-contain / exclude keywords, media type, publisher platforms, min page likes, min EU reach, started-after / started-before dates, dedup (by ad ID always; by page optionally).
  • Optional AI ad-copy enrichment: sentiment, tone, one-line summary, target audience, keywords, language — multi-provider (Claude / OpenAI / Gemini / Grok / DeepSeek / Perplexity / Mistral). Needs your API key; off by default.

Input (summary)

FieldWhat it does
startUrlsFacebook page URLs or Ad Library links (strings or {url,label,limit,period}).
searchTerms + searchCountries + searchModeKeyword-search mode (no URL required).
resultsLimitMax ad rows across all sources (default 10).
isDetailsPerAdPer-ad details lookup — required for the EU reach + advertiser block (default on).
onlyTotalOne summary row per source with the total ad count.
includeAboutPageAttach a page's public "about" snippet (page sources).
countryCode / activeStatus / adType / mediaTypeQuery scope defaults.
publisherPlatforms, keywords, excludeKeywords, minPageLikes, minEuReach, onlyAdsNewerThan, onlyAdsOlderThan, filterDuplicatePageIdsResult filters.
aiEnhancement / aiModel / aiApiKeyOptional AI ad-copy enrichment.
proxyConfigurationOptional Apify Proxy (residential when enabled).

Output

One row per ad with flattened top-level columns (see the dataset Overview table) plus nested snapshot, advertiser, and transparencyByLocation. Availability notes:

  • Spend, impressions, and reach are restricted by Meta to political/issue ads and EU delivery. For ordinary commercial ads these fields are null — this actor never fabricates a 0 or a placeholder.
  • The EU reach block requires isDetailsPerAd on and an ad actually delivered in the EU.

How it works

Uses Playwright to obtain public cookies and discover the Ad Library GraphQL doc_ids from Meta's JS bundles, then paginates the public search endpoint and (optionally) an ad-details query. This is a reverse-engineered path over the public Ad Library, not the official Meta Ad Library API; Meta may change the internals at any time.

Billing

Pay-per-event: one row_result event per ad row written to the dataset (configure the event in Console → Publication → Monetization).

Public Ad Library data only. You are responsible for compliance with Meta's terms and applicable laws.