Facebook Ad Library Scraper - Active Ads & Creatives
Pricing
from $22.00 / 1,000 results
Facebook Ad Library Scraper - Active Ads & Creatives
Scrape Facebook's public Ad Library for any brand. Returns active ad count, per-creative text, CTA, start date, and platform mix (Facebook, Instagram, Messenger, Audience Network).
Pricing
from $22.00 / 1,000 results
Rating
5.0
(1)
Developer
Thirdwatch
Maintained by CommunityActor stats
1
Bookmarked
27
Total users
4
Monthly active users
an hour ago
Last modified
Categories
Share
Facebook Ad Library Scraper
Thirdwatch portfolio: 8,800+ users across 140+ public Actors, 2M+ records delivered, >95% run success. Explore all Thirdwatch Actors.
Scrape public Meta Ad Library results for brands, keywords, and ad categories. Use it to monitor active ads, collect creative text snippets, track CTAs, compare platform mix, and build competitor ad swipe files across Facebook, Instagram, Messenger, and Audience Network where Meta exposes the data.
Value prop
Meta's Ad Library is one of the most accessible public sources for seeing which ads are currently active for a brand or keyword. This actor packages that public Ad Library view into Apify dataset rows so growth teams, agencies, researchers, and compliance teams can monitor ad activity without manually searching the Library one brand at a time.
Best fit:
- Growth teams tracking competitor creative angles and CTAs.
- Agencies building swipe files and pitch research.
- Brand teams auditing their own active ad inventory.
- Researchers monitoring political, issue, housing, employment, or credit ads.
- Compliance teams checking regulated ad categories.
What's new
- Full ad details per creative: ad body text, headline, destination link, CTA, ad format, page name and page link.
- Image and video URLs for each captured ad.
- Start and stop dates (human-readable and ISO), active/inactive status and the Ad Library link for every ad.
- New filters: ad status (active, inactive, or both) and media type (image, video, meme, or none).
- Faster runs: most brands finish in a few seconds.
What data you get
One dataset item per brand or keyword:
| Field | Description |
|---|---|
brand | Brand or keyword searched |
country | Country filter applied, or ALL |
adType | Ad category requested |
activeStatus | Ad status filter applied (all, active, inactive) |
mediaType | Media type filter applied |
url | Meta Ad Library search URL |
active | true when the search matched at least one ad |
adCount | Number of matching ads reported by the Ad Library (capped at 50,000) |
adCountIsLowerBound | true when the Ad Library reports "more than 50,000" |
creatives | Array of captured ads (see below) |
creativeCount | Number of ads captured |
scrapedAt | Scrape timestamp (UTC) |
Creative fields
| Field | Description |
|---|---|
library_id | Ad Library ID |
ad_url | Direct link to the ad in the Ad Library |
is_active | Whether the ad is currently running |
startDate / start_date_iso | Date the ad started running |
endDate / end_date_iso | Date the ad stopped running (empty for active ads) |
platforms | Facebook, Instagram, Messenger, Audience Network, Threads, WhatsApp |
page_name, page_id, page_url, page_like_count, page_categories | Advertiser page details |
body | Ad body text |
title | Ad headline |
caption | Display domain shown under the ad |
link_url | Destination link |
cta, cta_type | Call-to-action button text and type |
display_format | Ad format, e.g. IMAGE, VIDEO, CAROUSEL, DCO, DPA |
image_url, image_urls, video_url | Creative media URLs |
variants_count | Number of cards/variants in the ad |
textSnippet | Page name, body, headline and CTA combined |
spend, currency, reach_estimate | Disclosure fields, when Meta publishes them (mostly political and issue ads) |
Quick-start input examples
Track active ads for brands worldwide
{"brands": ["allbirds", "hoka", "on running"],"country": "ALL","adType": "all","maxCreatives": 20}
Check one country
{"brands": ["nykaa", "myntra"],"country": "IN","adType": "all","maxCreatives": 50}
Political or issue ad monitoring
{"brands": ["climate policy", "election campaign"],"country": "US","adType": "political_and_issue_ads","maxCreatives": 100}
Count-only monitoring
{"brands": ["example brand"],"country": "ALL","adType": "all","maxCreatives": 0}
Input parameters
| Parameter | Required | Description |
|---|---|---|
brands | Yes | Brand names or pages to search in the Facebook Ad Library. Each brand returns one dataset item with the active ad count, country, and up to maxCreatives creative samples. |
country | No | ISO country code (e.g. US, IN, GB, CA, AU) or ALL for worldwide. Default ALL. |
adType | No | Ad category to search: all (default), political_and_issue_ads, housing_ads, employment_ads, or credit_ads. |
adActiveStatus | No | all (default), active, or inactive. |
mediaType | No | all (default), image, video, meme, image_and_meme, or none. |
maxCreatives | No | Maximum number of individual ad creatives to capture per brand (0-200). Set to 0 for a count-only check. Default 20. |
proxyConfiguration | No | Proxy settings. Leave default for best results. |
Sample output snippet
{"brand": "Shopify","country": "US","adType": "all","activeStatus": "all","mediaType": "all","active": true,"adCount": 50000,"adCountIsLowerBound": true,"creatives": [{"library_id": "1238141341576372","ad_url": "https://www.facebook.com/ads/library/?id=1238141341576372","is_active": false,"startDate": "13 Jan 2026","endDate": "9 Aug 2026","start_date_iso": "2026-01-13","end_date_iso": "2026-08-09","platforms": ["Facebook", "Instagram", "Messenger"],"page_name": "Shopify","page_url": "https://www.facebook.com/shopify/","body": "When it's time to start your business, it's time for Shopify.","title": "Get going and keep growing","caption": "shopify.com","link_url": "https://www.shopify.com/free-trial","cta": "Sign up","cta_type": "SIGN_UP","display_format": "DCO","image_url": "https://scontent.xx.fbcdn.net/...","video_url": null,"variants_count": 1}],"creativeCount": 1,"url": "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&is_targeted_country=false&media_type=all&q=Shopify&search_type=keyword_unordered","scrapedAt": "2026-10-17T15:20:00+00:00","error": null}
Use cases
- Competitor ad monitoring: See whether a brand is running active ads and collect examples of visible copy.
- Creative research: Build a swipe file of CTAs, hooks, platform mix, and messaging angles.
- Brand auditing: Check your own active ads by country and category.
- Agency research: Prepare pitches with public competitor ad examples.
- Political and issue monitoring: Track active political or issue ad visibility in supported countries.
- Regulated category checks: Review housing, employment, and credit ad examples where Meta exposes them.
Limitations
- Coverage varies by country and ad category because Meta controls what the public Ad Library exposes.
- In some regions, commercial ads may be less visible than political, issue, housing, employment, or credit ads.
- Searches are keyword searches, so results can include other advertisers whose ads mention the brand name. Filter on
page_nameif you only want the brand's own page. - Media URLs are signed links from Meta and expire after some time; download media you want to keep.
- If a brand cannot be checked (for example a temporary Ad Library outage), it is skipped rather than returned as an empty row, and the run status lists it.
- Spend, impression, demographic, and disclaimer fields are not consistently available for standard commercial ads.
- A brand active in one country can return no results in another country filter.
Competitor and comparison notes
- Compared with Meta's Ad Library UI: This actor is better for repeatable monitoring, exports, and multiple-brand checks. The UI is better for manual review of a small number of ads.
- Compared with Meta APIs: API access and field availability depend on Meta's permissions and ad category rules. This actor is designed for public Ad Library pages and self-serve Apify workflows.
- Compared with social post scrapers: This actor focuses on active paid ads, not organic posts.
- Compared with full creative intelligence platforms: This actor is a lightweight data extraction tool. It does not include built-in spend estimation, creative scoring, or dashboard analytics.
Pairs well with Instagram Scraper for organic post monitoring and TikTok Scraper for cross-platform competitor tracking.
FAQ
Do I need a Facebook account? No. The actor uses public Meta Ad Library pages.
Why do results differ by country? Meta shows different ad inventory by region, and availability can vary by ad category and local rules.
Can I get ad spend data? Not reliably for standard commercial ads. Spend ranges are most commonly exposed for regulated categories such as political or issue ads where Meta provides disclosures.
Can I get images or videos?
Yes. Each captured ad includes image_url, image_urls and, for video ads, video_url.
Can I monitor the same brands every day? Yes. Schedule the actor in Apify and compare counts or creative snippets over time.
Support and custom builds
Need deduplication across runs, daily monitoring, Slack alerts, Looker/Sheets exports, or a custom ad intelligence workflow? Contact Thirdwatch at thirdwatch.dev or through the Apify actor support channel.
Last verified: 2026-10