Facebook Ad Library Scraper - Active Ads & Creatives avatar

Facebook Ad Library Scraper - Active Ads & Creatives

Pricing

from $22.00 / 1,000 results

Go to Apify Store
Facebook Ad Library Scraper - Active Ads & Creatives

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

Thirdwatch

Maintained by Community

Actor stats

1

Bookmarked

27

Total users

4

Monthly active users

an hour ago

Last modified

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:

FieldDescription
brandBrand or keyword searched
countryCountry filter applied, or ALL
adTypeAd category requested
activeStatusAd status filter applied (all, active, inactive)
mediaTypeMedia type filter applied
urlMeta Ad Library search URL
activetrue when the search matched at least one ad
adCountNumber of matching ads reported by the Ad Library (capped at 50,000)
adCountIsLowerBoundtrue when the Ad Library reports "more than 50,000"
creativesArray of captured ads (see below)
creativeCountNumber of ads captured
scrapedAtScrape timestamp (UTC)

Creative fields

FieldDescription
library_idAd Library ID
ad_urlDirect link to the ad in the Ad Library
is_activeWhether the ad is currently running
startDate / start_date_isoDate the ad started running
endDate / end_date_isoDate the ad stopped running (empty for active ads)
platformsFacebook, Instagram, Messenger, Audience Network, Threads, WhatsApp
page_name, page_id, page_url, page_like_count, page_categoriesAdvertiser page details
bodyAd body text
titleAd headline
captionDisplay domain shown under the ad
link_urlDestination link
cta, cta_typeCall-to-action button text and type
display_formatAd format, e.g. IMAGE, VIDEO, CAROUSEL, DCO, DPA
image_url, image_urls, video_urlCreative media URLs
variants_countNumber of cards/variants in the ad
textSnippetPage name, body, headline and CTA combined
spend, currency, reach_estimateDisclosure 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

ParameterRequiredDescription
brandsYesBrand 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.
countryNoISO country code (e.g. US, IN, GB, CA, AU) or ALL for worldwide. Default ALL.
adTypeNoAd category to search: all (default), political_and_issue_ads, housing_ads, employment_ads, or credit_ads.
adActiveStatusNoall (default), active, or inactive.
mediaTypeNoall (default), image, video, meme, image_and_meme, or none.
maxCreativesNoMaximum number of individual ad creatives to capture per brand (0-200). Set to 0 for a count-only check. Default 20.
proxyConfigurationNoProxy 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_name if 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