Facebook Ads Library Scraper: Meta Ad Spy Tool avatar

Facebook Ads Library Scraper: Meta Ad Spy Tool

Pricing

from $0.005 / actor start

Go to Apify Store
Facebook Ads Library Scraper: Meta Ad Spy Tool

Facebook Ads Library Scraper: Meta Ad Spy Tool

Scrape Facebook & Instagram ads from Meta Ad Library by keyword, page or URL. Get ad copy, creatives, carousel cards, CTA links, EU spend, impressions, age/gender audience reach and running-days per ad. Filter by country, language, status. For ad spy, dropshipping, agencies. $0.75/1K ads.

Pricing

from $0.005 / actor start

Rating

5.0

(1)

Developer

Walid

Walid

Maintained by Community

Actor stats

8

Bookmarked

106

Total users

45

Monthly active users

9 days ago

Last modified

Share

Facebook Ads Library Scraper — Meta Ad Spy Tool

Facebook Ads Library Scraper lets you search and extract Facebook & Instagram ads from the official Meta Ad Library — without any API token or developer account. Enter a keyword and country, get ad copy, page info, platforms, dates, creative URLs, EU spend, impressions & age/gender audience reach, and auto-enrichment (CTA detection, ad categorization, running duration).

No API token needed. No proxy needed. Just enter a keyword and click Start. The fastest way to spy on competitor ads.

🎯 Two signals most scrapers skip: (1) how long each ad has been running (duration_days) — the #1 way to spot a competitor's winning, long-lived creatives, and (2) EU age/gender audience reach (demographic_distribution) — who an ad actually reaches, straight from Meta's DSA transparency data.

Found this useful? Click the Bookmark button at the top of this page — it helps the scraper stay visible to others who need it. Takes 1 click. No signup beyond your existing Apify account.


What can Facebook Ads Library Scraper do?

  • 🔍 Search ads by keyword — find all ads containing "fitness", "dropshipping", "skincare", etc.
  • 📄 Search ads by page — get all ads from a specific Facebook page
  • 🌍 Filter by country — target ads shown in any country or worldwide
  • 📊 Active/inactive filter — see only running ads or recently stopped ones
  • 🤖 Auto-enrichment — CTA detection, ad category (ecommerce/lead gen/app install), running duration, hashtags, emoji count
  • 📱 Platform detection — which platforms the ad runs on (Facebook, Instagram, Messenger)
  • No API token required — works out of the box, zero configuration

What data can you extract from Facebook Ads?

FieldDescription
page_nameAdvertiser page name
ad_textFull ad copy / creative body
start_dateWhen the ad started running
end_dateWhen the ad stopped (null if still active)
is_activeWhether the ad is currently running
platformsFacebook, Instagram, Messenger, Audience Network
ad_snapshot_urlDirect link to view the ad creative
ad_idMeta Ad Library ID
media_typeImage, video, or carousel
cardsCarousel cards — each with its own copy, CTA, link & creative
link_urlLanding page URL the ad drives traffic to
ad_categoryAuto-detected: ecommerce, lead_gen, app_install, video, brand_awareness
detected_ctasCall-to-action phrases found (Shop Now, Sign Up, Learn More...)
duration_daysHow many days the ad has been running — spot winning creatives
spendEU spend range (DSA transparency)
impressionsEU impressions range (DSA transparency)
eu_total_reachTotal people reached in the EU
demographic_distributionAge × gender audience breakdown (who the ad reaches)
reach_by_countryReach split per EU country
hashtagsHashtags used in the ad copy
word_countNumber of words in the ad text

How to search Facebook ads

  1. Create a free Apify account — no credit card required
  2. Open Facebook Ads Library Scraper in Apify Store
  3. Enter a keyword (e.g. fitness) and select a country (e.g. FR)
  4. Choose filters — active/inactive, max results
  5. Click Start — ads start appearing in seconds
  6. Download your results in JSON, CSV, or Excel

How much does it cost to scrape Facebook ads?

$0.00075 per ad extracted ($0.75 per 1,000 ads) — up to 4× cheaper than comparable scrapers.

Run sizeAdsApify costTime
Quick test (10 ads)10~$0.0075~15s
Small batch (50 ads)50~$0.04~30s
Standard (200 ads)200~$0.15~1min
Large (500 ads)500~$0.38~2min

Input

ParameterTypeRequiredDefaultDescription
searchTermsstringKeywords to search (e.g. fitness)
pageIdstringFacebook Page ID to get all its ads
countrystringALLCountry code (FR, US, GB, DE...) or ALL
activeStatusstringallall, active, or inactive
maxResultsinteger50Max ads to return (1-500)
enrichAdsbooleantrueAdd CTA detection, category, duration

Provide either searchTerms or pageId (or both).


Output example

{
"ad_id": "1234567890",
"page_name": "FitnessBrand",
"ad_text": "Get 50% off our best-selling protein powder! Limited time offer. Shop now at fitnessbrand.com #fitness #protein",
"start_date": "Mar 16, 2026",
"end_date": null,
"is_active": true,
"platforms": ["facebook", "instagram"],
"ad_snapshot_url": "https://www.facebook.com/ads/library/?id=1234567890",
"media_type": "image",
"link_url": "https://fitnessbrand.com/protein",
"ad_category": "ecommerce",
"detected_ctas": ["shop now"],
"duration_days": 13,
"spend": { "lower_bound": 1000, "upper_bound": 1499 },
"impressions": { "lower_bound": 100000, "upper_bound": 149999 },
"eu_total_reach": 84200,
"demographic_distribution": {
"25-34": { "male": 18200, "female": 21000, "unknown": 120 },
"35-44": { "male": 14100, "female": 16800, "unknown": 80 }
},
"reach_by_country": { "FR": 51200, "DE": 33000 },
"hashtags": ["#fitness", "#protein"],
"emoji_count": 0,
"word_count": 18
}

Use cases

  • Competitor ad research — see exactly what ads your competitors are running right now
  • Dropshipping product research — find winning products by searching ad keywords
  • Agency reporting — track client competitors' ad strategies over time
  • Creative inspiration — browse thousands of ad copies in your niche
  • Market research — understand what's being advertised in any country and industry

Use Facebook Ads Scraper via API

Python:

import requests
run = requests.post(
"https://api.apify.com/v2/acts/dltik~facebook-ads-scraper/runs",
headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},
json={
"searchTerms": "fitness",
"country": "FR",
"maxResults": 100,
"enrichAds": True
}
).json()
print(f"Run started: {run['data']['id']}")

curl:

curl -X POST "https://api.apify.com/v2/acts/dltik~facebook-ads-scraper/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": "fitness", "country": "FR", "maxResults": 50}'

FAQ

Do I need a Facebook account or API token? No. The Meta Ad Library is a public transparency tool. This actor scrapes it directly — no login, no API token, no developer account needed.

What's the difference between this and the Meta Ad Library API? The official API requires a developer account, app review, and access token management. This actor gives you the same data with zero setup. Just enter a keyword and click Start.

Can I search ads from a specific competitor? Yes. Use the pageId parameter with your competitor's Facebook Page ID. You can find the page ID in the page's URL or About section.

Can I see who an ad targets — age and gender? Yes, for ads served in the EU. Meta publishes age × gender audience reach and total EU reach under its DSA transparency rules, and this scraper returns it as demographic_distribution, eu_total_reach, and reach_by_country. Most Facebook ad scrapers — including the most popular ones — don't expose this.

How do I find a competitor's best-performing ads? Sort by duration_days. Ads that have been running for weeks or months are the ones converting — advertisers kill losers fast and keep winners alive. This running-duration signal is the fastest shortcut to a competitor's proven creatives.

Why do some ads have no text? Some ads are image-only or video-only without body text. The ad_text field will be empty but you'll still get the page name, dates, platforms, and snapshot URL.

How often does the Ad Library update? Meta updates the Ad Library in near-real-time. New ads appear within hours of going live. Stopped ads are marked inactive.

I need help or a custom solution. Open an issue on the Issues tab or contact us through Apify.


Connect with Make, Zapier & n8n

This actor integrates with any automation platform via the Apify API.

Make (Integromat)

  1. Add an Apify module in your Make scenario
  2. Select Run Actor and choose this actor
  3. Configure the input (paste your JSON)
  4. Add a Get Dataset Items module to retrieve results
  5. Connect to Google Sheets, HubSpot, Slack, or any other app

Zapier

  1. Use the Apify integration on Zapier
  2. Set trigger: Actor Run Finished
  3. Action: Get Dataset Items
  4. Send results to your CRM, email tool, or spreadsheet

n8n

  1. Add an HTTP Request node to call the Apify API
  2. POST to https://api.apify.com/v2/acts/dltik~facebook-ads-scraper/runs
  3. Wait for completion, then fetch dataset items
  4. Route results to any n8n node

Webhooks

Set up a webhook to get notified when a run finishes:

run = client.actor("dltik/facebook-ads-scraper").call(
run_input={...},
webhooks=[{
"eventTypes": ["ACTOR.RUN.SUCCEEDED"],
"requestUrl": "https://your-webhook-url.com"
}]
)


Found this Facebook Ads Library Scraper useful? Bookmark it — Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility. One click = directly helps this actor stay surfaced.

Other scrapers by dltik

ActorWhat it doesPrice
Google Maps Email ExtractorExtract emails, phones, WhatsApp from Google Maps businesses$25/1K
TikTok ScraperScrape profiles, videos, hashtags, search, trending$1/1K
TikTok Video DownloaderDownload TikTok videos without watermark$5/1K
Trustpilot ScraperScrape reviews, ratings, company profiles with sentiment$0.50/1K
HackerNews MCP ServerHN search for AI agents — tech audience research$5/1K