Meta Ad Library Scraper
Pricing
from $5.00 / 1,000 results
Meta Ad Library Scraper
Scrape ads from Meta Ad Library by keyword search or from Facebook page URLs. Extracts ad creatives, CTAs, platforms, and targeting data.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Admo Solutions
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
18 days ago
Last modified
Categories
Share
Scrape ads from Meta's Ad Library using Playwright. Supports two modes:
- Keyword search — Search the Ad Library by keyword
- Facebook page scraping — Scrape all ads from specific Facebook pages
Extracts ad creatives, CTAs, platforms, and targeting data. No API key required.
Features
- Dual-mode — Ad Library search + Facebook page scraping
- Bulk cursor pagination — Fetches up to Max Items per source via the Relay GraphQL cursor endpoint (doc_id sniffed live from Meta's JS bundles; no login required)
- Relay cache extraction — Parses embedded GraphQL data for complete field coverage
- Date-range filtering — Filter ads by start date (min/max), applied server- and client-side
- Deduplication — Automatically deduplicates by ad archive ID
- Clean output — Structured JSON dataset
Yield & proxy note: Direct (proxy-off) runs load the initial ~30 ads per source. Bulk cursor pagination requires a residential-class IP — Facebook rate-limits datacenter IPs on its GraphQL endpoint (error 1675004). Enable Apify proxy with the RESIDENTIAL group (session pinning is handled automatically) to fetch up to Max Items. When the IP is rate-limited, the actor falls back to the ads already collected and logs a warning instead of failing.
Input
| Field | Description | Default |
|---|---|---|
| URLs | Ad Library or Facebook page URLs | [] |
| Search Term | Keyword for Ad Library search (if URLs empty) | "Nike" |
| Country Code | ISO 2-letter country code | "US" |
| Ad Type | Filter by ad category | "ALL" |
| Active Status | Active/Inactive/All | "ALL" |
| Start Date Min | Only ads started on/after this date (YYYY-MM-DD) | "" |
| Start Date Max | Only ads started on/before this date (YYYY-MM-DD) | "" |
| Max Items | Maximum ads per source (bulk pagination target) | 100 |
| Max Scrolls | Scroll iterations | 20 |
| Scroll Delay | Delay between scrolls (ms) | 2000 |
| Enrich with Page Data | Visit advertiser pages for contact info/likes | false |
| Proxy Configuration | Off = first ~30 ads/source; RESIDENTIAL group = bulk up to Max Items | useApifyProxy: false |
Supported URL formats
https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=skincarehttps://www.facebook.com/ZapierApphttps://www.facebook.com/profile.php?id=123456facebook.com/YourPage
Output
Each ad contains:
| Field | Description |
|---|---|
| adArchiveId | Unique ad identifier |
| pageId | Facebook page ID |
| pageName | Advertiser page name |
| pageUrl | Page URL |
| body | Ad text content |
| title | Ad headline |
| linkUrl | CTA destination URL |
| ctaText | CTA button text |
| ctaType | CTA type (SHOP_NOW, LEARN_MORE, etc.) |
| startDate | When ad started running |
| endDate | When ad stopped running (if known) |
| isActive | Whether ad is active |
| platforms | Where ad runs (Facebook, Instagram, etc.) |
| mediaType | Ad format (image, video, carousel) |
| displayFormat | Creative display format |
| caption | Ad caption / link description |
| imageUrls | All creative image URLs |
| videoUrls | Creative video URLs (HD/SD) |
| profileImageUrl | Advertiser page profile picture |
| beneficiaryName | EU transparency: who benefits from the ad |
| payerName | EU transparency: who paid for the ad |
| languages | Ad languages (when provided) |
| source | Which source this ad came from |
Usage
Search by keyword
{"searchTerm": "skincare","country": "US","maxItems": 100}
Filter by start date range
{"searchTerm": "skincare","country": "US","startDateMin": "2026-09-01","startDateMax": "2026-10-01","maxItems": 100}
Scrape from Facebook pages
{"urls": ["https://www.facebook.com/ZapierApp","https://www.facebook.com/ceraveusa"],"maxItems": 50}
Mixed mode
{"urls": ["https://www.facebook.com/ads/library/?active_status=all&q=skincare&country=US","https://www.facebook.com/ZapierApp"],"maxItems": 100}
Cost
- 100 ads: ~$0.05-0.15 compute
- 1000 ads: ~$0.50-1.50 compute
- Residential proxy additional
Disclaimer
This scraper only extracts publicly available data from Meta Ad Library. Users are responsible for complying with applicable laws and regulations.