Meta Ads Library Scraper
Pricing
from $5.00 / 1,000 ad scrapeds
Meta Ads Library Scraper
Scrape ads from the Facebook Ads Library by keyword or Facebook Page URL. Extract ad copy, creatives, targeting,CTA, start/end dates & compliance data. Export to JSON, CSV or Excel. $0.005 per ad — pay only for results.
Pricing
from $5.00 / 1,000 ad scrapeds
Rating
5.0
(1)
Developer
Mubeen Ali
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Meta Ads Library Scraper — Scrape Facebook Ads Library at Scale
Extract structured ad data from the Facebook Ads Library (Meta Ads Library) by keyword search or directly from any Facebook Page — no API key required, no manual browsing. Built on Apify, ready to run in seconds.
Pricing: $0.005 per ad · $5.00 per 1,000 ads · Actor start fee: $0.0005 USD (pay-per-event model)
What Is the Meta Ads Library Scraper?
The Meta Ads Library Scraper is an Apify actor that automates data extraction from the Facebook Ads Library — Meta's public transparency database of all ads running across Facebook, Instagram, Messenger, and the Audience Network.
Whether you are doing competitive ad intelligence, market research, brand monitoring, or compliance auditing, this scraper delivers clean, structured JSON data for every ad it finds — at scale, on demand, via the Apify platform or API.
What Data Does It Extract?
Every scraped ad is returned as a structured JSON object. Below is a full breakdown of every field the actor outputs:
🗂️ Ad Identity
| Field | Description |
|---|---|
ad_archive_id | Unique identifier for the ad in Meta's archive |
collation_id | Groups related ad variants together |
collation_count | Number of variants in the same collation group |
📄 Page / Advertiser Info
| Field | Description |
|---|---|
page.id | Facebook Page ID of the advertiser |
page.name | Display name of the advertising page |
page.profile_url | Direct URL to the Facebook Page |
page.picture_url | Profile picture URL of the page |
page.like_count | Total likes/followers of the page |
page.categories | Business category (e.g., Shopping, Finance) |
page.is_deleted | Whether the page has been deleted |
📝 Ad Content
| Field | Description |
|---|---|
content.ad_text | Primary body text / copy of the ad |
content.title | Ad headline or product title |
content.caption | Domain caption shown on the ad |
content.display_format | Format type (e.g., DPA, image, video, carousel) |
content.cta_text | Call-to-action button label (e.g., "Shop Now", "Install now") |
content.cta_type | CTA type identifier |
content.link_url | Destination URL the ad links to |
content.link_description | Link description text |
content.extra_links | Additional links associated with the ad |
🖼️ Media
| Field | Description |
|---|---|
media.media_urls | URLs of image creatives used in the ad |
media.video_urls | URLs of video creatives |
media.video_details | Detailed metadata about video content |
🎯 Targeting & Schedule
| Field | Description |
|---|---|
targeting.country | Country targeting setting |
targeting.platform | Platforms the ad runs on (facebook, instagram, etc.) |
targeting.targeted_or_reached_countries | Countries targeted or reached |
targeting.start_date | Date the ad started running |
targeting.end_date | Date the ad stopped (or expected end) |
targeting.is_active | Whether the ad is currently active |
📊 Compliance & Safety
| Field | Description |
|---|---|
compliance.gated_type | Eligibility status (e.g., ELIGIBLE) |
compliance.categories | Compliance category (e.g., UNKNOWN, political) |
compliance.contains_sensitive_content | Sensitive content flag |
compliance.contains_digital_created_media | AI/digitally created media flag |
compliance.is_aaa_eligible | AAA (About Ads) eligibility |
compliance.hide_data_status | Whether data is hidden |
compliance.has_user_reported | User-reported flag |
compliance.finserv_is_deemed | Financial services compliance flag |
compliance.finserv_is_limited_delivery | Limited delivery for financial ads |
scrapedAt | ISO timestamp of when the actor scraped this ad |
Sample Output
{"ad_archive_id": "1555263375851429","collation_id": null,"collation_count": 1,"page": {"id": "112727500143177","name": "Whatnot","profile_url": "https://www.facebook.com/RealWhatnot/","picture_url": "https://scontent.fcpq7-1.fna.fbcdn.net/...","like_count": 228076,"categories": ["Shopping"],"is_deleted": false},"content": {"ad_text": "Vintage and new Pokémon cards starting at $1 ⚡️Live on Whatnot!","title": "{{product.name}}","caption": "itunes.apple.com","display_format": "DPA","cta_text": "Install now","cta_type": "INSTALL_MOBILE_APP","link_url": "http://itunes.apple.com/app/id1488269261"},"media": {"media_urls": [],"video_urls": [],"video_details": []},"targeting": {"country": "ALL","platform": ["facebook", "instagram"],"start_date": "2025-09-11T07:00:00.000Z","end_date": "2026-05-26T07:00:00.000Z","is_active": true},"compliance": {"gated_type": "ELIGIBLE","categories": ["UNKNOWN"],"contains_sensitive_content": false,"contains_digital_created_media": false,"is_aaa_eligible": false},"scrapedAt": "2026-05-26T08:42:05.226Z"}
Key Features
✅ Keyword Search & Page Scraping
Accepts two types of input URLs:
- Ads Library search URLs — any URL from
facebook.com/ads/library/with your keyword, country, and filter parameters already applied - Facebook Page URLs — any URL in the format
facebook.com/pageNameto scrape all ads run by a specific advertiser
✅ Ad Status Filtering
Filter results by ad status using the status parameter:
all— active and inactive adsactive— only currently running adsinactive— only stopped ads
✅ Configurable Ad Limit
Use maxAds to cap how many ads are scraped per run. Set to 0 for unlimited scraping — the actor will collect every matching ad it can find.
✅ Structured JSON Output
Every ad is returned as a flat, consistent JSON object — ready to export to CSV, Excel, or pipe directly into your database or data warehouse via the Apify API.
✅ Scalable on Apify Infrastructure
Runs on Apify's managed cloud infrastructure. No local setup, no browser management, no proxy headaches. Start a run from the UI or trigger it programmatically via the API.
✅ Pay-Per-Event Pricing
You are only charged for ads that are successfully scraped and pushed to the dataset. No wasted credits on failed runs or empty results.
How to Use — Step by Step
Method 1: Scrape by Keyword Search
- Go to https://www.facebook.com/ads/library/
- Select your country, ad category, and type your keyword (e.g.,
perfume,insurance,sneakers) - Apply any filters you want (active only, by platform, etc.)
- Copy the full URL from your browser's address bar
- Open this actor on Apify and paste the URL into the Ads Library URLs field
- Set your
statusfilter andmaxAdslimit (optional) - Click Start and wait for results
- Export your data as JSON, CSV, or Excel from the Dataset tab
Example input URL:
https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=PK&q=perfume&search_type=keyword_unordered&media_type=all
Method 2: Scrape Ads from a Facebook Page
- Find the Facebook Page of the brand or advertiser you want to research
- Copy the page URL (e.g.,
https://www.facebook.com/nike/) - Paste it into the Ads Library URLs field
- Run the actor — it will find and scrape all ads associated with that page
Input Configuration Reference
{"urls": ["https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=insurance&search_type=keyword_unordered&media_type=all"],"status": "active","maxAds": 500}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array of strings | ✅ Yes | — | One or more Facebook Ads Library URLs or Facebook Page URLs |
status | string | No | all | Filter by ad status: all, active, or inactive |
maxAds | integer | No | 0 | Maximum number of ads to collect. 0 = unlimited |
How to Use via API
You can trigger this actor programmatically and retrieve results without ever opening the Apify console. This is ideal for scheduled competitive research pipelines, automated alerts, or integration with your own application.
Start a Run via API
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=nike&search_type=keyword_unordered&media_type=all"],"status": "active","maxAds": 1000}'
Fetch Results from the Dataset
$curl "https://api.apify.com/v2/actor-runs/RUN_ID/dataset/items?token=YOUR_API_TOKEN&format=json"
JavaScript / Node.js Example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({urls: ['https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=fitness&search_type=keyword_unordered&media_type=all'],status: 'all',maxAds: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python Example
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_ACTOR_ID").call(run_input={"urls": ["https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=GB&q=skincare&search_type=keyword_unordered&media_type=all"],"status": "active","maxAds": 1000})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
For full API documentation, visit the Apify API Reference.
Pricing
This actor uses a pay-per-event billing model — you are charged only for ads that are successfully scraped and written to your dataset.
| What | Cost |
|---|---|
| Per successfully scraped ad | $0.005 USD |
| Per 1,000 ads | $5.00 USD |
| Actor start fee (per run) | $0.0005 USD |
There are no monthly minimums or seat fees. You only pay for results. This model makes the actor ideal for both one-off research tasks and high-volume automated pipelines.
Cost examples:
- Scraping 200 competitor ads for a quick brand audit → ~$1.00
- Collecting 10,000 ads for a market research report → ~$50.00
- Running a daily monitor of 500 ads per day → ~$75/month
You can cap costs precisely using the maxAds parameter.
Use Cases
🔍 Competitive Intelligence
Monitor what ads your competitors are running — their copy, creatives, CTAs, and how long campaigns have been active. Track when they launch new products or promotions.
📊 Market Research
Search any keyword across any country to understand how brands in your industry advertise. Identify messaging patterns, seasonal trends, and underserved niches.
🎯 Ad Creative Inspiration
Build a swipe file of high-performing ad copy and creative formats from top advertisers in your vertical — filtered by platform (Facebook, Instagram) and ad status.
🏷️ Brand Monitoring
Track ads being run by any specific Facebook Page to monitor a brand's advertising activity over time. Useful for agencies managing client accounts and needing to watch competitor brands.
⚖️ Compliance & Transparency Auditing
The Facebook Ads Library is the official source for ad transparency. Researchers, journalists, and compliance teams use this data to audit political advertising, financial services ads, and sensitive content categories.
📈 Agency & Freelancer Reporting
Build client-ready reports on competitor ad activity. Show clients exactly what the competition is doing and use real data to inform creative strategy.
🔗 Data Pipeline Integration
Feed scraped ad data into your data warehouse (BigQuery, Snowflake, Redshift), BI tool (Looker, Tableau, Power BI), or CRM via Apify's native integrations and webhooks.
Integrations
Once your data is in Apify's dataset, you can push it anywhere:
- Webhooks — trigger downstream actions when a run finishes
- Apify API — fetch results in JSON, CSV, XML, or Excel
- Make (formerly Integromat) — connect to thousands of SaaS tools without code
- Zapier — automate workflows between Apify and your stack
- Google Sheets — export directly for collaborative analysis
- Amazon S3 / Google Cloud Storage — archive large datasets
Is It Legal to Scrape the Facebook Ads Library?
The Facebook Ads Library is a public transparency tool created by Meta specifically to allow public inspection of all active and past ads. Unlike profile scraping, the Ads Library contains no private user data — it is intentionally public by design.
This actor only collects data that Meta has made publicly available through the Ads Library. It does not collect private user information, personal profiles, messages, or any data behind a login wall.
That said, you should always ensure your use of scraped data complies with applicable laws in your jurisdiction, including data protection regulations like GDPR in the EU. If you are unsure whether your intended use is compliant, consult a legal professional.
For broader context on web scraping legality, see Apify's guide on the legality of web scraping.
Frequently Asked Questions
Do I need a Facebook account or API key to use this? No. The Facebook Ads Library is publicly accessible and this actor does not require any Facebook credentials or Meta API keys.
What countries does the Ads Library cover?
Meta's Ads Library covers ads running in all countries. You can filter by country directly in the search URL using the country= parameter (e.g., country=US, country=GB, country=PK).
Can I scrape ads from a specific advertiser?
Yes. Paste the Facebook Page URL of any advertiser (e.g., https://www.facebook.com/nike/) into the urls field and the actor will scrape all ads associated with that page.
How many ads can I scrape per run?
As many as you need. Set maxAds to 0 for unlimited. For large-scale collections, Apify handles scaling automatically.
Can I filter for only active ads?
Yes. Set the status parameter to active to return only currently running ads.
Can I schedule the actor to run automatically? Yes. Use Apify's built-in scheduler to run this actor on a daily, weekly, or custom cron schedule — ideal for ongoing competitor monitoring.
What format is the output in? Data is stored in Apify's dataset and can be exported as JSON, CSV, Excel (XLSX), XML, or RSS.
Feedback & Support
Found a bug or have a feature request? Please open an issue on the Issues tab in the Apify Console. We monitor all issues and aim to respond promptly.
We are continuously improving this actor's reliability, speed, and output schema based on user feedback.
Keywords
facebook ads library scraper, meta ads library scraper, scrape facebook ads, facebook ad library data extraction, facebook ads scraper apify, meta ads scraper, scrape meta ads library, facebook advertising data, competitor ad research tool, facebook ads intelligence, ad library api alternative, facebook page ads scraper, scrape facebook page ads, facebook ads monitor, meta transparency library scraper, social media ad scraper, facebook ads data export, apify facebook scraper, facebook ads competitive analysis, extract facebook ads data, facebook ads library api