Main image
primaryImageUrl
Optional
Facebook Ads Library Scraper — Meta Ad Library & Ad Spy
Pricing
from $0.60 / 1,000 ad scrapeds
Facebook Ads Library & Meta Ad Library scraper (Facebook Ad Library, Meta ads, Instagram ads): search by keyword, advertiser, page or URL, spy on competitor ads, find winning ads (score, reach/day, days running), products & prices behind them, plus a new & stopped ads monitor. $0.60/1,000 ads.
Pricing
from $0.60 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer
Mr Zack
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
9
Monthly active users
6 days ago
Last modified
Categories
Share
Ad Library ID
adArchiveId
Optional
Ad Library link
libraryUrl
Optional
Page ID
pageId
Optional
Advertiser
pageName
Optional
Page URL
pageUrl
Optional
Page likes
pageLikes
Optional
Page categories
pageCategories
Optional
Page picture
pageProfilePictureUrl
Optional
Active
isActive
Optional
Started
startDate
Optional
Ended
endDate
Optional
Last seen
lastSeenDate
Optional
Days running
daysActive
Optional
New
isNew
Optional
Platforms
platforms
Optional
Format
displayFormat
Optional
Ad copy
bodyText
Optional
Headline
title
Optional
Link description
linkDescription
Optional
Caption
caption
Optional
CTA
ctaText
Optional
CTA type
ctaType
Optional
Destination URL
linkUrl
Optional
Landing domain
landingDomain
Optional
Landing page status
landingStatus
Optional
includeLandingPage only: ok · blocked (site refused automated visits) · not-found · error · no-link (lead form / no destination) · skipped-app-link (App Store / Google Play) · skipped-on-platform (Facebook, Instagram, Messenger, WhatsApp) · skipped-limit (over 300 pages per run / 100 per site) · skipped-time · skipped-invalid.
Landing page (final URL)
landingFinalUrl
Optional
includeLandingPage only: the destination after redirects, tracking parameters removed.
Store / site platform
landingPlatform
Optional
includeLandingPage only: shopify, woocommerce, bigcommerce, magento, salesforce-commerce, prestashop, wix, squarespace, webflow, clickfunnels, gohighlevel, wordpress, app-store, google-play, messenger, whatsapp, facebook, instagram — null when unknown.
Landing page title
landingPageTitle
Optional
includeLandingPage only: og:title or of the destination page.
Product
landingProductName
Optional
includeLandingPage only: product name from the page's public product data (schema.org Product / Shopify).
Product brand
landingBrand
Optional
includeLandingPage only.
Price
landingPrice
Optional
includeLandingPage only: current price (lowest in-stock variant; Shopify: the product's price).
Compare-at price
landingCompareAtPrice
Optional
includeLandingPage only (Shopify): the crossed-out "was" price when it is higher than the price.
Discount %
landingDiscountPct
Optional
includeLandingPage only: (compare-at − price) / compare-at, rounded.
Currency
landingCurrency
Optional
includeLandingPage only: ISO currency of the price as the page states it.
Stock status
landingAvailability
Optional
includeLandingPage only: InStock, OutOfStock, PreOrder … (schema.org availability).
Product rating
landingRating
Optional
includeLandingPage only: aggregate rating published on the page.
Product reviews
landingReviewCount
Optional
includeLandingPage only: number of reviews published on the page.
Images
imageUrls
Optional
Videos
videos
Optional
Main image
primaryImageUrl
Optional
Main video
primaryVideoUrl
Optional
Media links expire
mediaExpiresAt
Optional
When Meta's signed image/video links of this row stop working (earliest oe= expiry). Download creatives before this time.
Carousel cards
cardCount
Optional
Cards
cards
Optional
Versions
versionsCount
Optional
Collation ID
collationId
Optional
Paid for by
disclaimer
Optional
Spend range (political ads)
spend
Optional
Impressions
impressions
Optional
Impressions range (political ads)
impressionsRange
Optional
Meta's impressions bucket as numbers: {lower, upper, text}, e.g. {1000000, null, ">1M"}.
Currency
currency
Optional
Reach (political ads)
reachEstimate
Optional
AI media
containsAiGeneratedMedia
Optional
Query
searchQuery
Optional
Country searched
searchCountry
Optional
Ads in library for this query
queryAdsTotal
Optional
Meta's reported total for the query with your filters (for an advertiser/page query: that advertiser's ad count).
Ads in library (last run)
queryAdsTotalPrev
Optional
queryAdsTotal of the previous run of this monitor/watchlist. null without monitor memory.
New since last run
newSinceLastRun
Optional
With a watchlist or monitor mode: not delivered by the previous run and started after it. null on the first run or without memory.
Scraped at
scrapedAt
Optional
Rank in results
rankInQuery
Optional
Sorted by
sortedBy
Optional
Winning score 0-100
winningScore
Optional
Reach per day (EU/UK)
reachPerDay
Optional
reachTotal / days running. null when Meta publishes no reach for the ad (outside the EU/UK).
Men in reach %
reachMalePct
Optional
Share of men in the ad's EU/UK reach (people of unknown gender left out).
Creative key
creativeKey
Optional
Same copy + headline + image/video → same key. Group by it to collapse identical creatives.
Identical copies
creativeCopiesInRun
Optional
Ads of this advertiser in this query's results with the identical creative (creativeKey).
Ads with this copy
copyVariantsInRun
Optional
Ads of this advertiser in this query's results with the same copy and headline (any image/video).
Advertisers using this copy
copyAdvertisersInRun
Optional
Different advertisers in this query's results running the same copy and headline (2+ = shared or copied text).
Scaled message
isScaled
Optional
true when the advertiser runs this copy in 3 or more ads (copyVariantsInRun >= 3).
Details fetched
detailsFetched
Optional
Reach (EU/UK)
reachTotal
Optional
Reach region
reachRegion
Optional
Reach by country
reachByCountry
Optional
Reach by age & gender
reachByAgeGender
Optional
Targeting age
targetingAge
Optional
Targeting gender
targetingGender
Optional
Targeting locations
targetingLocations
Optional
Payer
payer
Optional
Beneficiary
beneficiary
Optional
Advertiser Instagram
advertiserIgUsername
Optional
Instagram followers
advertiserIgFollowers
Optional
Verification
advertiserVerification
Optional
Advertiser about
advertiserAbout
Optional
Taken down
adTakenDown
Optional
Advertiser political spend
advertiserPoliticalSpend
Optional
Political/issue pages only (with ad details): Meta's page-level spend {lifetime, weekly, lifetimeByDisclaimer, weeklyByDisclaimer}. Meta gives no currency with these figures.
Row type
rowType
Optional
"count" on the rows of the countOnly mode (one per search × country); "ai-digest" on the AI daily digest rows (aiDigest, one per search). Ad rows have no rowType.
Search counted
query
Optional
countOnly rows: the keyword, page ID, advertiser ("name → page") or Ad Library link that was counted.
Country counted
country
Optional
countOnly rows: ISO-2 country of the count (or ALL).
Ad status counted
activeStatus
Optional
countOnly rows: active, inactive or all — as in your input.
Ad category counted
adType
Optional
countOnly rows: all, political_and_issue_ads, housing_ads, employment_ads or financial_products_and_services_ads.
Ads in library
adsTotal
Optional
countOnly rows: the number of ads Meta reports for this search in this country with your filters (0 = none).
Ads in library (last run)
adsTotalPrev
Optional
countOnly rows with a watchlist: adsTotal of the previous run of this search × country. null on the first run or without a watchlist.
Change since last run
change
Optional
countOnly rows with a watchlist: adsTotal − adsTotalPrev. null without a previous count.
Newest start on page 1
firstPageNewestStart
Optional
countOnly rows: the latest startDate (YYYY-MM-DD) among the ads on Meta's first page of results (sorted by your sortBy). null when there are no ads.
Formats on page 1
firstPageFormats
Optional
countOnly rows: number of ads per format on Meta's first page of results, e.g. {"image": 18, "video": 9, "dco": 3}. {} when there are no ads.
Counted at
checkedAt
Optional
countOnly rows: when Meta's total was read (ISO timestamp).
Saved creative files
savedCreatives
Optional
saveCreatives only: the ad's creative files saved in this run's key-value store — [{ type (image · video-thumbnail · video), key, url (link to the stored file), bytes, contentType }]. The same file used by several ads appears under the key it was first saved with.
Creative files saved
creativesSavedCount
Optional
saveCreatives only: number of entries in savedCreatives.
Creative files not saved
creativeErrors
Optional
saveCreatives only, never charged: [{ type, sourceUrl, reason }] — reason: blocked · not-found · http- · not-media · too-large · timeout · network · host-not-allowed · store-failed · charge-limit (your max charge) · skipped-time (run about to time out) · per-ad-limit (more than 10 files) · error.
aiAnalysis
Optional
v0.2.8 includeAiAnalysis: { status (ok | no-copy | failed | refused | skipped), summary, hook, angle, offer, offerType, audience, painPoints[], benefits[], ctaIntent, tone, sentiment, adLanguage, model, error }. Charged (ai-analysis) only when status is ok.
Digest: previous run
digestSince
Optional
aiDigest rows: the day of the previous monitored run the digest compares with (null on the first run).
Digest: first run
firstRun
Optional
aiDigest rows: true on the first run of the watchlist — the digest then describes the current ad strategy (baseline).
Digest: new ads
newAdsCount
Optional
aiDigest rows: ads new since the previous run in this search.
Digest: stopped ads
stoppedAdsCount
Optional
aiDigest rows: ads gone since the previous run (null when the scan could not prove it — see RUN_SUMMARY stoppedCheck).
Digest: new ad ids
newAdIds
Optional
aiDigest rows: Ad Library ids of the new ads (up to 100).
Digest: stopped ad ids
stoppedAdIds
Optional
aiDigest rows: Ad Library ids of the stopped ads (up to 100).
AI digest
aiDigest
Optional
v0.2.9 aiDigest rows: { status, headline, whatChanged, newAngles[], newOffers[], hooks[], formats[], stoppedNote, notableNewAds[{adArchiveId, why, libraryUrl}], takeaways[3], language, model }. Charged (ai-digest) once per digest row.