META Ads Library Scraper
Pricing
from $1.50 / 1,000 ad results
META Ads Library Scraper
Scrape the Meta (Facebook & Instagram) Ads Library. Paste any Ad Library search URL or Facebook page URL. Get ad text, CTA, publisher platforms, language signals, dates and full advertiser page data. No login required.
Pricing
from $1.50 / 1,000 ad results
Rating
0.0
(0)
Developer

Alexandre Manguis
Actor stats
0
Bookmarked
18
Total users
8
Monthly active users
11 hours ago
Last modified
Categories
Share
Scrape the Meta (Facebook/Instagram) Ads Library to extract ads from any advertiser or keyword search. Supports all built-in Ad Library filters — just paste your search URL and run.
✨ What you get
- Ad content — body text, landing domain, headline, description, snapshot URL
- Publisher info — which platforms the ad ran on (Facebook, Instagram, Messenger, Audience Network)
- Language signals — language codes detected in the ad creative (e.g.
["en", "fr"]) - Delivery dates — start date, end date, creation time
- Advertiser page — name, category, likes, verification status, Instagram username & followers, country
- Ad status — ACTIVE or INACTIVE (derived from your search filter)
Note: Spend, impressions, and estimated audience size are only populated by Meta for Special Ad Categories (political, housing, employment). They are
nullfor standard commercial ads.
Sample output
Standard commercial ad (e-commerce / sportswear)
{"adArchiveID": "3948271054812","sourceUrl": "https://www.facebook.com/ads/library/?country=US&q=nike&active_status=active","pageID": "15087023444","pageName": "Nike","pageURL": "https://www.facebook.com/15087023444","pageCategory": "Sportswear store","pageLikes": 34800000,"pageVerified": true,"pageInstagramUser": "nike","pageInstagramFollowers": 302000000,"pageCountry": "US","adText": "Just Do It. Shop the latest collection.","adCreativeBodies": ["Just Do It. Shop the latest collection.", "New arrivals — limited time only."],"publisherPlatforms": ["facebook", "instagram"],"adStatus": "ACTIVE","languages": ["en"],"startDate": "2024-11-01T00:00:00+0000","endDate": null,"adCreationTime": "2024-10-30T14:22:11+0000","estimatedAudienceSize": null,"adLibraryURL": "https://www.facebook.com/ads/library/?id=3948271054812","adSnapshotUrl": "https://www.facebook.com/ads/archive/render_ad/?id=3948271054812","ctaDomain": "nike.com","ctaHeadline": "Shop the latest collection","ctaDescription": "Free shipping on orders $50+"}
Real-estate agency ad (multi-platform, carousel)
{"adArchiveID": "7261039485012","sourceUrl": "https://www.facebook.com/ads/library/?country=FR&q=orpi&active_status=active","pageID": "204817389612445","pageName": "Orpi Immobilier","pageURL": "https://www.facebook.com/204817389612445","pageCategory": "Real estate agency","pageLikes": 42300,"pageVerified": false,"pageInstagramUser": "orpi_immobilier","pageInstagramFollowers": 18500,"pageCountry": "FR","adText": "Vendez votre bien au meilleur prix. Estimation gratuite en ligne en 2 minutes.","adCreativeBodies": ["Vendez votre bien au meilleur prix.","3 500 agences partout en France.","Estimation gratuite, sans engagement."],"publisherPlatforms": ["facebook", "instagram", "audience_network"],"adStatus": "ACTIVE","languages": ["fr"],"startDate": "2025-01-15T00:00:00+0000","endDate": null,"adCreationTime": "2025-01-14T09:11:42+0000","estimatedAudienceSize": null,"adLibraryURL": "https://www.facebook.com/ads/library/?id=7261039485012","adSnapshotUrl": "https://www.facebook.com/ads/archive/render_ad/?id=7261039485012","ctaDomain": "orpi.com","ctaHeadline": "Estimation immobilière gratuite","ctaDescription": "Obtenez une estimation en 2 minutes"}
Special Ad Category — political (audience size populated)
{"adArchiveID": "1092847362015","sourceUrl": "https://www.facebook.com/ads/library/?country=US&ad_type=political_and_issue_ads&q=example+campaign","pageID": "998877665544","pageName": "Example Campaign 2024","pageURL": "https://www.facebook.com/998877665544","pageCategory": "Political candidate","pageLikes": 87200,"pageVerified": true,"pageInstagramUser": null,"pageInstagramFollowers": null,"pageCountry": "US","adText": "Our community deserves better. Join us and make your voice heard.","adCreativeBodies": ["Our community deserves better. Join us and make your voice heard."],"publisherPlatforms": ["facebook"],"adStatus": "INACTIVE","languages": ["en"],"startDate": "2024-09-01T00:00:00+0000","endDate": "2024-11-05T00:00:00+0000","adCreationTime": "2024-08-28T17:04:30+0000","estimatedAudienceSize": { "lower_bound": 500000, "upper_bound": 600000 },"adLibraryURL": "https://www.facebook.com/ads/library/?id=1092847362015","adSnapshotUrl": "https://www.facebook.com/ads/archive/render_ad/?id=1092847362015","ctaDomain": "example-campaign.com","ctaHeadline": "Make your voice heard","ctaDescription": "Register to vote by November 1st"}
Note:
estimatedAudienceSizeis only populated by Meta for Special Ad Categories (political, housing, employment). It isnullfor standard commercial ads.
🚀 Usage
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | string[] | — | Required. Meta Ad Library search URLs or Facebook page URLs |
maxResults | number | 10 | Max ads to return |
onlyTotalCount | boolean | false | Return only the count, not the ads |
includeAboutPage | boolean | true | Enrich with advertiser page info (category, likes, Instagram…) |
scrapeAdDetails | boolean | true | Include CTA domain, headline, link description, snapshot URL |
| activeStatus | select | ALL | Filter by ACTIVE / INACTIVE / ALL |
| countryFallback | string | ALL | Country code if not detected in URL (e.g. US, FR, GB) |
Supported URL formats
Meta Ad Library search URL (copy-paste from ad library — all filters are preserved):
https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=nike&publisher_platforms[0]=instagram&media_type=video
Facebook page URL (scrape all ads from a specific advertiser):
https://www.facebook.com/nikehttps://www.facebook.com/15087023444
💡 Tips
- To scrape all ads from a specific brand, use their Facebook page URL — the scraper will find their Page ID and search the library for all their ads.
- You can mix Ad Library URLs and page URLs in the same run.
- Use
onlyTotalCount: trueto quickly check how many ads match your search before committing to a full scrape. - The
countryFallbackfield is only used when nocountryparam is found in the URL. Set it to restrict results to a specific market. /people/profile URLs (e.g.facebook.com/people/Name/ID) point to personal profiles, not Pages. The scraper falls back to a keyword search using the name slug, so results may not be page-specific.
💰 Pricing
This actor charges based on results. Each ad record extracted costs $0.0015 (= $1.50 per 1,000 ads) — billed in addition to Apify platform compute costs (typically $0.01–0.02 per 1,000 ads with 256 MB RAM).
Compare: The official Meta Ads Scraper charges $3.40–$5.80 per 1,000 ads. This actor is 2–4× cheaper with the same data.
⚠️ Limitations & legal
- This scraper uses the official Meta Ads Library API (public data only). No login required. No scraping of private data.
adStatusis derived from your search filter (ACTIVE / INACTIVE). When searching ALL statuses the field isnull, since Meta does not return per-ad status for standard ads.estimatedAudienceSizeis only populated by Meta for Special Ad Categories (political, housing, employment) — it isnullfor standard commercial ads.- CTA button type (Shop Now, Sign Up…) and ad creative images are not exposed by Meta's Ads Library API for standard ads.
- Ad creative images/videos are not downloaded — only the snapshot URL is provided.
Built by Leadsbrary — The B2B Lead Generation Platform.