Facebook Ads Library Scraper — Ad Intelligence avatar

Facebook Ads Library Scraper — Ad Intelligence

Pricing

from $2.40 / 1,000 ad scrapeds

Go to Apify Store
Facebook Ads Library Scraper — Ad Intelligence

Facebook Ads Library Scraper — Ad Intelligence

Scrape Facebook Ads Library creatives, advertisers, copy, media, landing pages, dates, and targeting signals for competitor and campaign research.

Pricing

from $2.40 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

Facebook Ads Library Scraper — Meta Ad Intelligence Tool

Free-plan limit: Apify free-plan users receive at most 5 delivered records per run. Paid users may use the Actor’s configured result limit.

Scrape ads from the Meta/Facebook Ads Library by keyword, advertiser Page URL, or pre-configured Ad Library URL. Get ad copy, creatives, CTA, spend estimates, reach data, running days, winner scores, and EU transparency data — all in clean, flat, structured JSON.

No login required. No Meta API token needed.

Features

  • 3 input modes: Search by keyword, advertiser Page URL, or paste an Ad Library URL with filters
  • Ad intelligence signals: Winner score (0-100), winner tier, winner signals, CTA detection, ad categorization, running days
  • EU transparency data: Spend ranges, impression ranges, EU total reach, demographic distribution (age/gender breakdown)
  • Full creative extraction: Images, videos (HD/SD/preview), carousel cards, CTA text/type/URL
  • Advertiser metadata: Page name, ID, URL, profile picture, like count, verification status, page category
  • Flat, clean output: No nested API dumps — every field is at the top level, ready for spreadsheets, databases, and AI pipelines
  • 52 countries supported: Or search all countries at once
  • No login: Works entirely from the public Ad Library

Use Cases

  • Competitor ad research: Monitor rival brands' ad creatives, copy, and strategies
  • Dropshipping & product research: Find winning ads by winner score and running duration
  • Agency reporting: Bulk-collect active ads for clients across countries and platforms
  • Political ad monitoring: Collect DSA/transparency data (spend ranges, reach, demographics) for regulatory analysis
  • Creative benchmarking: Compare CTAs, formats, and copy angles across competitors
  • Market research: Track seasonal spend shifts and creative strategy changes

Input

FieldTypeRequiredDefaultDescription
searchTermsstring[]No*["nike"]Keywords to search (e.g. "skincare", "crypto trading")
pageUrlsstring[]No*[]Facebook Page URLs or numeric page IDs
adLibraryUrlsstring[]No*[]Full Ad Library URLs with filters pre-configured
countrystringNoALLCountry code or ALL for worldwide
adActiveStatusstringNoALLACTIVE, INACTIVE, or ALL
adTypestringNoALLALL, POLITICAL_AND_ISSUE_ADS, HOUSING_ADS, EMPLOYMENT_ADS, CREDIT_ADS
mediaTypestringNoALLALL, IMAGE, VIDEO, MEME, NONE
maxResultsintegerNo100Maximum ads to collect across all sources
proxyConfigurationobjectNoResidentialProxy settings (residential recommended for deep pagination)

*At least one of searchTerms, pageUrls, or adLibraryUrls must be provided.

Output

Each ad is returned as a flat JSON record:

FieldTypeDescription
adIdstringMeta Ad Library archive ID
pageNamestring|nullAdvertiser page name
pageIdstringAdvertiser page ID
pageUrlstring|nullFacebook Page URL
pageLikeCountnumber|nullPage like count
pageVerifiedboolean|nullPage verification status
adTextstring|nullAd body copy
headlinestring|nullAd headline
ctaTextstring|nullCTA button text
ctaTypestring|nullCTA type code
ctaUrlstring|nullLanding page URL
displayFormatstringimage, video, carousel, or unknown
mediaTypestringimage, video, or meme
imageUrlsstring[]Direct CDN image URLs
videoUrlsobject[]Video objects with hd, sd, preview URLs
carouselCardsobject[]Carousel card data
platformsstring[]Platforms (facebook, instagram, etc.)
isActivebooleanCurrently running?
startDatestring|nullStart date (YYYY-MM-DD)
endDatestring|nullEnd date (YYYY-MM-DD)
daysRunningnumber|nullDays the ad has been running
winnerScorenumber0-100 score (longer running + active + more variants = higher)
winnerTierstringhigh (>=70), medium (>=40), low (<40)
winnerSignalsstring[]Signals: long_running, still_active, high_variants, etc.
detectedCtasstring[]CTA phrases detected in ad text
hashtagsstring[]Hashtags in ad text
emojiCountnumberEmoji count in ad text
wordCountnumberWord count of ad body
adCategorystringAuto-detected: ecommerce, lead_gen, app_install, etc.
spendobject|nullEU spend range: {lower, upper}
impressionsobject|nullEU impression range: {lower, upper}
euTotalReachnumber|nullTotal EU reach estimate
demographicDistributionarray|nullAge/gender breakdown
containsAiMediabooleanAI-generated content flag
scrapedAtstringISO 8601 scrape timestamp
sourceUrlstringSource Ad Library URL

Winner Score

The winner score helps identify proven, high-performing ads:

ScoreTierMeaning
70-100highLong-running, active, with multiple creative variants — likely a winner
40-69mediumEstablished ad with some signals of success
0-39lowNew or inactive ad — unproven

Signals: long_running (60+ days), still_active, high_variants (3+ carousel cards), multiple_variants, proven_active (30+ days AND active).

Pricing

This Actor uses pay-per-event pricing. These are the current Apify Store event prices:

EventPrice (USD)When it is charged
apify-actor-start$0.00005Actor Start — Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).
result-item$0.001Ad Scraped — One Facebook/Meta ad extracted from the Ad Library with ad copy, creatives, CTA, platforms, dates, page info, winner score, and EU transparency data.

Apify platform usage for this Actor run is included alongside the event prices above; no separate per-run platform-usage fee is passed to users.

This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.

Proxy Requirements

The actor defaults to Apify residential proxies (RESIDENTIAL group), which are required for:

  • Scraping more than ~30 ads per search (Facebook rate-limits pagination per IP)
  • Accessing country-specific Ad Library content

For heavy bulk scraping, consider providing your own premium residential proxy via the proxyConfiguration field.

Limitations

  • The Meta Ad Library is a dynamic SPA — occasional rate limiting may reduce result counts
  • EU transparency data (spend, reach, demographics) is only available for ads targeting EU/UK markets
  • Instagram follower counts and page "About" data require visiting individual pages (not included in base scraping for speed)
  • The Ad Library may not show ads from pages that have been deleted or restricted

Example Input

{
"searchTerms": ["running shoes", "fitness app"],
"country": "US",
"adActiveStatus": "ACTIVE",
"mediaType": "VIDEO",
"maxResults": 200
}
{
"pageUrls": ["https://www.facebook.com/nike"],
"country": "ALL",
"adActiveStatus": "ALL",
"maxResults": 500
}

Export scraped data

Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.

# Run via Apify CLI
apify run USERNAME/facebook-ads-library-scraper --input='{"searchTerms":["nike"],"maxResults":50}'
# Get results
apify dataset get-default --format=json