Facebook Ads Library Scraper
Pricing
from $1.00 / 1,000 results
Go to Apify Store
Facebook Ads Library Scraper
Scrape ads from Facebook Ad Library without cookies or authentication. Search by keywords or page names, filter by country, ad status, ad type, and media type. Extracts ad text, page info, media URLs, dates, CTA, landing page links, and more.
Pricing
from $1.00 / 1,000 results
Rating
1.0
(1)
Developer
Crawler Bros
Maintained by CommunityActor stats
1
Bookmarked
250
Total users
15
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape ads from the Facebook Ad Library.
- Zero-result searches are automatically retried with a fresh residential proxy session each attempt — Facebook blocks individual residential IPs intermittently, and a new IP per retry materially improves recovery (user report: "Got zero results for the query run for a simple keyword").
- Explicit zero-result diagnostics — if a search term still returns nothing after all retries, the run emits a
facebook_ads_library_diagnosticrecord stating the exact reason (login_required,blocked,no_content, orerror). - Facebook cookies support (recommended) — Facebook gates Ads Library search behind login on many residential IPs (live-verified 2026-08: unauthenticated sessions receive a "you must log in" page on a large share of IPs, which is why manual research shows ads but the scraper may not). Paste cookies from a logged-in browser session (Netscape cookie-file text or JSON array — export with any "Get cookies.txt" browser extension) into the
cookiesinput for reliable, login-gated access. Without cookies, the actor still works on the subset of IPs Facebook leaves open to unauthenticated sessions.
Features
- Search by keywords or page names
- Filter by country, ad status, ad type, and media type
- Extracts ad text, page info, media URLs, dates, platforms, and more
- No login or cookies required
- Residential proxy support for best results
- Fresh residential IP per retry + explicit zero-result diagnostics
Input
| Field | Type | Description | Default |
|---|---|---|---|
searchTerms | array | Keywords or page names to search | (required) |
country | string | Country code (e.g., "US", "GB") or "ALL" | "ALL" |
adActiveStatus | string | "all", "active", or "inactive" | "active" |
adType | string | "all", "political_and_issue_ads", "housing", "employment", "credit" | "all" |
mediaType | string | "all", "image", "video", "meme", "none" | "all" |
resultsPerSearch | integer | Max ads per search term (1-500) | 50 |
proxyConfiguration | object | Proxy settings (residential recommended) | Apify residential |
Output
Each ad in the dataset contains:
| Field | Description |
|---|---|
ad_id | Unique Facebook ad archive ID |
page_name | Name of the Facebook page running the ad |
page_id | Facebook page ID |
ad_text | Ad creative text/copy |
ad_snapshot_url | URL to view the ad in Facebook Ad Library |
start_date | When the ad started running |
end_date | When the ad stopped (if inactive) |
status | Active or inactive |
platforms | Platforms where the ad runs (Facebook, Instagram, etc.) |
media_type | Type of media (image, video, none) |
media_url | URL to the ad media |
cta_text | Call-to-action button text |
link_url | Destination URL of the ad |
search_term | The search term that found this ad |
scraped_at | Timestamp when the data was scraped |
Example Input
{"searchTerms": ["nike", "adidas"],"country": "US","adActiveStatus": "active","resultsPerSearch": 20}