Meta (Facebook) Ad Library Scraper - Efficient & Fast
Pricing
from $0.55 / 1,000 results
Meta (Facebook) Ad Library Scraper - Efficient & Fast
Scrape the Meta Ad Library for Facebook and Instagram ads. Extract ad copy, images, videos, spend, impressions, and advertiser transparency data. No account or API key required.
Pricing
from $0.55 / 1,000 results
Rating
0.0
(0)
Developer

Automly
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 hours ago
Last modified
Categories
Share
Facebook Ad Library Scraper — Extract Ads from Meta Ad Library
Scrape the Meta Ad Library (Facebook Ad Library) at scale. Extract ad creatives, copy, images, videos, spend data, impressions, audience size, advertiser details, and page transparency data from the Meta Ad Library. Works with Facebook ads, Instagram ads, Messenger ads, and Audience Network ads. No API key required. No browser needed. Export to JSON, CSV, or Excel.
$0.65 per 1,000 results — the most affordable Meta Ad Library scraper on Apify.
What does Meta Ad Library Scraper do?
This Meta Ad Library Scraper (also known as Facebook Ad Library Scraper) extracts ad data from Meta's public Ad Library across all Meta platforms — Facebook, Instagram, Messenger, and Audience Network. It collects ad creatives, ad copy, images, video links, spend estimates, impression ranges, targeting info, and advertiser page details — all without requiring a Facebook account, Meta developer access, API approval, or access tokens.
Use it to scrape competitor Facebook ads, monitor Meta ad spend trends, track political advertising on Meta platforms, or build datasets for market research and ad intelligence.
Unlike the official Meta Ad Library API, which is limited to political/issue ads in the EU with a 200 requests/hour rate limit and requires identity verification, this scraper works on all ad types, in all countries, with no approval process.
What data can you extract from the Meta Ad Library?
You can extract all the fields listed below (and more) from every Facebook and Instagram ad:
| Field | Description |
|---|---|
| Ad Archive ID | Archive identifier for historical lookup |
| Ad ID | Unique identifier for the ad |
| Page ID | Advertiser's Facebook / Meta page ID |
| Page Name | Advertiser's page name |
| Page Profile URL | Link to the advertiser's Facebook page |
| Page Like Count | Number of likes on the advertiser's page |
| Page Categories | Business categories of the advertiser |
| Ad Creative Bodies | Full ad copy / text content (main + carousel cards) |
| Ad Creative Link Captions | Link preview captions |
| Ad Creative Link Titles | Link preview headlines |
| Ad Creative Link URLs | Destination URLs from the ad |
| Ad Snapshot URL | Direct link to view the ad creative on Meta |
| Ad Delivery Start Time | When the ad started running |
| Ad Delivery Stop Time | When the ad stopped (if applicable) |
| Currency | Currency used for spend reporting |
| Spend | Estimated spend range |
| Impressions | Estimated impression data |
| Estimated Audience Size | Audience reach estimate |
| Publisher Platforms | Where the ad runs — facebook, instagram, messenger, audience_network |
| Categories | Ad categories (political, housing, employment, credit) |
| Media Type | Ad creative format (VIDEO, IMAGE, DPA, etc.) |
| CTA Type | Call-to-action type (SHOP_NOW, LEARN_MORE, etc.) |
| Collation Count | Number of ad creative variants in the group |
| Is Active | Whether the ad is currently running |
| Images | Direct URLs to ad images |
| Videos | Direct URLs to ad videos (HD and SD) |
| Link URL | Primary destination URL |
Page transparency data (optional)
Enable includePageTransparency to also extract advertiser history for each unique Facebook / Meta page:
| Field | Description |
|---|---|
| Page Name | Confirmed page name from Meta transparency report |
| Page Creation Date | When the Facebook page was created |
| Last Name Change Date | When the page last changed its name |
| Last Merge Date | When the page last merged with another page |
| Total Active Ads | How many ads the page is currently running on Meta |
This is especially useful for identifying new advertisers, dropshipping stores, or brands that frequently rebrand.
Features
- Keyword search — search Meta Ad Library by any keyword (e.g., "netflix", "fitness app", "shopify store", "dropshipping")
- Advertiser page search — scrape all ads run by specific Facebook or Instagram pages
- URL-based search — paste any Meta Ad Library URL with pre-applied filters
- Advanced filters — filter by country, ad status (active/inactive/all), ad type, media type (image/video), date range, and search mode (unordered/exact phrase)
- Page transparency — get advertiser history including page creation date, name changes, page merges, and total active ad count
- Proxy support — built-in Apify Proxy with residential IP rotation for reliable scraping
- Fast and lightweight — direct HTTP + GraphQL, no headless browser. Lower compute cost, faster results
- Clean flat output — ads are flattened into a clean, table-friendly format. No nested JSON to deal with
- Incremental results — ads are pushed to the dataset as they're scraped. If a run stops, you keep everything collected so far
- Bulk scraping — run multiple keyword searches or page URLs in a single actor run
- Export to JSON, CSV, or Excel — download results directly from the Apify platform or fetch via API
How to scrape the Meta Ad Library (Facebook Ad Library)
Option 1: Search by keyword
- Go to Meta Ad Library Scraper on Apify
- Click Try for free
- Enter your search keywords in the Search Terms field (e.g., "netflix", "skincare", "saas")
- Select a country and apply any filters
- Set the maximum number of ads to scrape
- Click Start
- When the run finishes, click Export to download your data as JSON, CSV, or Excel
Option 2: Search by Meta Ad Library URL
- Visit the Meta Ad Library and search with your desired filters
- Copy the URL from your browser's address bar
- Go to Meta Ad Library Scraper on Apify
- Paste the URL into the Ad Library URLs field
- Click Start
- When the run finishes, click Export to download your data
Option 3: Scrape all ads from a Facebook / Instagram page
- Go to the Meta Ad Library and search for the page name
- Click on the page to view all their ads
- Copy the URL from the address bar (it will contain
view_all_page_id=...) - Paste that URL into the Ad Library URLs field in the scraper
- Click Start
Input example
{"searchTerms": ["netflix", "fitness app"],"country": "US","activeStatus": "active","adType": "all","mediaType": "all","searchType": "keyword_unordered","maxAds": 100,"includePageTransparency": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output example
Each result is a clean, flat ad object with all available metadata. Here is a sample:
{"ad_archive_id": "1234567890","ad_id": null,"page_id": "9876543210","page_name": "Example Brand","page_profile_url": "https://www.facebook.com/ExampleBrand/","page_like_count": 150000,"page_categories": ["Retail company"],"ad_creative_bodies": ["Shop our new collection — free shipping on orders over $50"],"ad_creative_link_captions": ["example.com"],"ad_creative_link_titles": ["New Collection — Free Shipping"],"ad_creative_link_urls": ["https://example.com/shop"],"ad_snapshot_url": "https://www.facebook.com/ads/archive/render_ad/?id=1234567890","ad_delivery_start_time": "2025-01-15","ad_delivery_stop_time": null,"currency": "USD","spend": { "lower_bound": "100", "upper_bound": "499" },"impressions": null,"estimated_audience_size": { "lower_bound": 10000, "upper_bound": 50000 },"publisher_platforms": ["facebook", "instagram"],"categories": ["UNKNOWN"],"media_type": "VIDEO","cta_type": "SHOP_NOW","cta_text": "Shop now","collation_count": 3,"is_active": true,"images": [],"videos": ["https://video.xx.fbcdn.net/..."],"link_url": "https://example.com/shop","link_description": "Free shipping on orders over $50","searchTerm": "netflix","scrapedAt": "2026-03-13T12:00:00Z"}
With page transparency enabled:
{"pageTransparency": {"pageName": "Example Brand","pageCreationDate": "Jan 15, 2020","lastNameChangeDate": "Mar 01, 2023","lastMergeDate": null,"totalActiveAds": 42}}
How to extract Meta ads data using the API
You can run this Meta Ad Library scraper programmatically using the Apify API. Integrate Facebook and Instagram ad data into your own applications, dashboards, AI agents, or marketing automation workflows.
Python example:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run_input = {"searchTerms": ["netflix"],"country": "US","maxAds": 100,"proxyConfiguration": {"useApifyProxy": True, "apifyProxyGroups": ["RESIDENTIAL"]},}run = client.actor("automly/facebook-ad-library-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript example:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const input = {searchTerms: ['netflix'],country: 'US',maxAds: 100,proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'] },};const run = await client.actor('automly/facebook-ad-library-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For full API documentation, visit the API tab on this actor's page.
How much does it cost to scrape Meta ads?
This scraper costs $0.65 per 1,000 ads — making it one of the most affordable options for bulk Meta Ad Library data extraction.
| Use case | Approximate cost |
|---|---|
| 1,000 ads without transparency | ~$0.65 |
| 5,000 ads without transparency | ~$3.25 |
| 1,000 ads with page transparency | ~$1.50 (extra requests per advertiser) |
With the Apify Free plan you get $5 of monthly platform credits, enough to scrape thousands of Facebook and Instagram ads at no cost.
Integrations
Connect this Meta Ad Library scraper with your existing tools:
- Google Sheets — export ad data directly to a spreadsheet
- Zapier / Make — trigger workflows when new Meta ads are found
- Slack / Email — get notifications when competitor ads change
- Webhooks — push data to your own server in real time
- Apify API — programmatic access from Python, JavaScript, or any language
- Scheduled runs — monitor competitor ads on Meta automatically on a daily or weekly basis
- MCP (Model Context Protocol) — give AI agents direct access to Meta ad data
Use cases for Meta Ad Library data
- Competitor ad research — see exactly what ads your competitors are running on Facebook and Instagram, what copy they use, what creatives perform, and where they advertise
- Facebook and Instagram ad spy tool — monitor any brand's Meta advertising strategy in real time without manual searching
- Market research — discover trends in ad creatives, messaging, and spend patterns across industries and countries
- Ad intelligence and analytics — build dashboards tracking Meta ad spend patterns, creative strategies, and campaign lifecycles
- Political ad tracking — track political and issue ads on Meta platforms across countries for journalism, research, or compliance
- Brand monitoring — keep tabs on how brands present themselves in paid media across Facebook, Instagram, Messenger, and Audience Network
- Lead generation — identify active advertisers in any niche by scraping who's currently running Meta ads
- Dropshipping and ecommerce research — find trending products by analyzing what's being advertised heavily on Facebook and Instagram
- Creative inspiration — browse ad copy and creative formats from top brands in your vertical
- Data for AI and LLMs — feed structured Meta ad data into AI models for creative analysis, sentiment analysis, or trend prediction
Why use this instead of the official Meta Ad Library API?
The official Meta Ad Library API has significant limitations:
| This scraper | Official Meta Ad Library API | |
|---|---|---|
| Ad types | All ads (commercial, political, housing, employment, credit) | Political/issue ads only (EU only since 2025) |
| Countries | All countries | Limited to EU for political ads |
| Rate limit | No artificial limit (respects Meta's rate limiting) | 200 calls/hour |
| Approval required | No — just run it | Yes — identity verification + app review |
| Meta account | Not required | Required (Meta developer account) |
| Data richness | Full ad object with creatives, spend, impressions, audience, transparency | Limited fields, no creatives |
| Export formats | JSON, CSV, Excel | JSON only |
This scraper gives you the same data you see when browsing the Meta Ad Library manually, but extracted at scale and delivered in a clean, structured format.
FAQ
Is it legal to scrape the Meta Ad Library?
The Meta Ad Library (Facebook Ad Library) is a public transparency tool that Meta provides for anyone to search. This scraper only extracts publicly available ad data — it does not access any private user information such as email addresses, demographics, or personal details.
We believe that scraping publicly available data for legitimate purposes is generally safe. However, you should review Meta's Terms of Service and any applicable data privacy laws (such as GDPR) before using scraped data commercially. If you're unsure, consult with a legal professional.
Do I need a Facebook account or Meta API key?
No. The Meta Ad Library is publicly accessible. This scraper works without any Facebook credentials, Meta API keys, or access tokens. No approval process required.
What proxy should I use for Meta Ad Library scraping?
Residential proxies are recommended for the best results. Meta is more likely to block or rate-limit requests from datacenter IP addresses. The default configuration uses Apify Proxy with residential IPs, which works well for most use cases.
Can I scrape Facebook ads from multiple countries?
Yes. Set the country field to any two-letter country code (e.g., US, GB, DE, BR, IN, AU) or use ALL to search across all countries in the Meta Ad Library.
Can I scrape Instagram ads from the Meta Ad Library?
Yes. The Meta Ad Library includes ads running across all Meta platforms — Facebook, Instagram, Messenger, Audience Network, and Threads. If an ad runs on Instagram, it will appear in the results with "instagram" in the publisher_platforms field.
How fast is this Meta ads scraper?
This scraper uses direct HTTP requests and GraphQL queries — no headless browser is launched. This makes it significantly faster and cheaper than browser-based alternatives. Typical runs collect hundreds of Meta ads per minute, depending on proxy speed and rate limiting.
What happens if the scraper run is interrupted?
Ads are pushed to the Apify dataset incrementally as they're collected. If a run stops unexpectedly, you still have all the data that was scraped before the interruption. No data is lost.
Can I use this scraper as a Meta Ads API?
Yes. You can run this scraper programmatically via the Apify API and retrieve structured ad data in JSON format. This effectively gives you an unofficial Meta Ad Library API without the limitations of Meta's official API.
How is this different from other Facebook Ad Library scrapers?
This scraper is built with direct HTTP + GraphQL extraction (no browser), includes page transparency data (creation dates, name changes), supports both keyword and URL-based searches, pushes results incrementally (so you don't lose data on crashes), outputs clean flat data (not raw nested JSON), and is priced at $0.65/1K results.
Can I schedule this scraper to run automatically?
Yes. Apify supports scheduled runs — you can set this scraper to run daily, weekly, or at any custom interval to automatically monitor competitor ads or track Meta advertising trends over time.
Other useful scrapers
| Scraper | Description |
|---|---|
| Instagram Scraper | Scrape Instagram posts, profiles, hashtags, and comments |
| Facebook Posts Scraper | Extract posts from Facebook pages and groups |
| Google Ads Scraper | Scrape Google Ads transparency center |
| TikTok Scraper | Extract TikTok videos, profiles, and hashtags |
Your feedback
We're always working on improving the performance and reliability of this scraper. If you have technical feedback, found a bug, or want to request a feature, please create an issue on the Issues tab.