Meta Ad Library Spy — Winning & Scaled Facebook Ads | $4/1K avatar

Meta Ad Library Spy — Winning & Scaled Facebook Ads | $4/1K

Pricing

from $4.00 / 1,000 ads

Go to Apify Store
Meta Ad Library Spy — Winning & Scaled Facebook Ads | $4/1K

Meta Ad Library Spy — Winning & Scaled Facebook Ads | $4/1K

Find competitors' WINNING ads, not just ads: is_scaled flags creatives Meta runs in 3+ variants (the advertiser is spending), plus days_active & longevity_score — the signals ad-spy tools charge $99/mo for. Full creatives, CTAs, landing pages. Token-free official Ad Library source. Pay per ad.

Pricing

from $4.00 / 1,000 ads

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

a day ago

Last modified

Share

Meta Ad Library Spy — Winning & Scaled Facebook Ads | $4/1K | No Token, No Login

Built for media buyers, ad researchers and growth hackers who don't just want competitors' ads — they want their WINNING ads. Every record carries is_scaled (Meta grouped 3+ near-duplicate variants → the advertiser is actively spending on it), collation_count, days_active and longevity_score: the exact signals ad-spy SaaS charges $99+/mo for, leading every row.

Pricing: $4.00 per 1,000 ads. No monthly fees, no token, pay only for delivered ads.

Scrape the Meta Ad Library (formerly the Facebook Ad Library) token-free — no Meta account, no Graph API token, no government-ID verification. Search active and inactive ads by keyword or by advertiser page ID across any country, and get a clean, flat record per ad: creative copy, headline, call-to-action, destination link, publisher platforms (Facebook, Instagram, Messenger, Audience Network), delivery dates, active status, and inline image and video creative URLs. Pay per ad.

Pricing example

$4.00 per 1,000 ads. 100 ads = $0.40. 1,000 ads = $4.00. 5,000 ads across 5 countries = $20.00. No per-run fee. No Meta account needed.

Sample output

{
"ad_archive_id": "1234567890123456",
"page_name": "Nike",
"page_id": "15087023",
"ad_creative_bodies": ["Just Do It. Shop the new Air Max 2026."],
"cta_text": "Shop Now",
"link_url": "https://www.nike.com/air-max-2026",
"publisher_platforms": ["FACEBOOK", "INSTAGRAM"],
"display_format": "image",
"is_active": true,
"ad_delivery_start_date": "2026-05-01",
"days_active": 35,
"collation_count": 12,
"is_scaled": true,
"media_count": 3,
"ad_snapshot_url": "https://www.facebook.com/ads/library/?id=1234567890123456",
"parse_confidence": 1.0,
"scraped_at": "2026-06-05T09:00:00Z"
}

Meta Ad Library Scraper

This Meta Ad Library scraper reads the same public data the Ad Library website serves to any visitor — the internal search results behind facebook.com/ads/library. Because it never touches the official Graph API, your buyers skip the entire onboarding wall: no Meta developer app, no ID verification, no token to generate or rotate. Point it at a keyword or an advertiser and it streams ads in real time.

Facebook ads data you get per ad

FieldDescription
ad_archive_idUnique Ad Library ID
ad_snapshot_urlDirect link to the ad in the Ad Library
page_id / page_nameAdvertiser page ID and name
page_profile_uri / page_profile_picture_url / page_like_countAdvertiser profile, avatar, audience size
byline"Paid for by" / advertiser disclaimer line
ad_creative_bodiesAd body text(s)
ad_creative_link_titlesHeadline/link title(s)
ad_creative_link_descriptionsLink description(s)
cta_text / cta_typeCall-to-action button
link_urlDestination URL
display_formatImage / video / carousel / DCO
snapshot_imagesImage creative URLs (inline)
snapshot_videosVideo creative URLs (inline)
media_countCount of inline creative URLs (images + videos)
publisher_platformsFACEBOOK / INSTAGRAM / MESSENGER / AUDIENCE_NETWORK / THREADS
ad_delivery_start_date / ad_delivery_stop_dateRun dates
is_active / days_active / longevity_scoreDelivery longevity
collation_count / collation_id / is_scaledVariant count + a scaled-winner flag
spend_* / impressions_* / reach_estimateRanges (political/issue ads only)
categories / entity_type / contains_sensitive_content / state_media_run_labelClassification & trust signals
regional_regulation_dataEU DSA transparency disclosures
parse_confidence / warningsData-quality signal

How to scrape Facebook ads by keyword or advertiser

  1. Enter one or more search terms (e.g. nike, weight loss) and/or advertiser page IDs.
  2. Pick countries (ISO codes; the Ad Library requires a country, default US).
  3. Optionally filter by ad type, active status, and media type.
  4. Set max ads per search to control cost, then run.
{
"searchTerms": ["nike"],
"countries": ["US"],
"adType": "all",
"maxResults": 100
}

Use cases for Meta Ad Library data

  • Find winning creatives fast — sort by is_scaled / collation_count (how many variants an advertiser is running) and days_active to spot the ads a competitor is actually putting budget behind.
  • Competitor ad monitoring — track which creatives a brand is running and for how long.
  • Ad creative research / swipe files — pull winning ad copy, hooks, and inline media URLs at scale.
  • Lead generation — surface advertisers in a niche by keyword and capture their landing pages.
  • Market & trend analysis — measure ad longevity (days_active) as a proxy for what's working.
  • Political ad transparency — for political_and_issue_ads, capture spend, impressions, and EU disclosures.

Why this Facebook Ad Library scraper is reliable

  • Token-free — no Meta login, no ID verification; your buyers run it with zero setup.
  • Inline media URLs — image and video creative links (including every carousel card) come with the data; no per-ad render. Many scrapers hand you only the snapshot URL.
  • Self-healing pagination — Meta rotates its internal doc_id roughly monthly, which silently breaks most Ad Library scrapers at page 2. This actor re-extracts the live doc_id from each page it loads, so pagination keeps working across rotations with no update and no downtime. You can still pin a docId manually if you ever want to.
  • Scale signalcollation_count / is_scaled tell you how many variants of a creative an advertiser is running, so you can rank by what's actually getting budget — not just what exists.
  • Resilient parsing — anchors on stable JSON field names, not CSS classes, and emits parse_confidence so structural changes surface loudly instead of shipping blanks.
  • Honest metrics — spend/impressions are returned only when Meta actually publishes them (political/issue ads); commercial ads get null, never fabricated numbers.
  • Apify Proxy only — uses the standard residential proxy configuration billed to the run owner; no external proxy account required.

Frequently asked questions

Do I need a Facebook account or Meta token? No. This scraper uses the public Ad Library that any visitor can browse. No login, no Graph API token, no ID verification.

Do I get ad spend and impressions? Spend, impressions, and reach are published by Meta only for political and issue ads. Set adType to political_and_issue_ads to capture them. Commercial ads return copy, media, platforms, and dates — but no reliable spend (we return null rather than fabricating numbers).

Why is a residential proxy recommended? Meta blocks datacenter IPs. On the Apify cloud, enable an Apify RESIDENTIAL proxy in the proxy configuration (billed to the run owner) for reliable token-free scraping at volume.

Can I scrape all ads from one advertiser? Yes — add the advertiser's numeric pageIds.

What happens when Meta changes its internal pagination ID? Nothing on your end. Meta rotates the persisted-query doc_id behind the Ad Library every few weeks, which is what quietly breaks many scrapers after page 1. This actor reads the current doc_id straight out of the page on every run, so it self-heals through rotations. (Advanced: you can still override it via the docId input.)

How do I find the best-performing ads? Meta doesn't publish engagement for commercial ads, so use the proxies that it does expose: days_active (how long an ad has run) and collation_count / is_scaled (how many variants an advertiser is running). Long-running, heavily-collated creatives are the ones getting budget.

Winning ad detection workflow

Sort by days_active DESC, collation_count DESC → ads running longest with most variants = what's actually getting budget. No spend data needed for commercial ads — longevity + variant count are the reliable proxies.

EU DSA transparency data

The regional_regulation_data and state_media_run_label fields contain EU Digital Services Act transparency disclosures. Market separately to EU compliance and research teams — this is mandatory public data that Meta must expose.

Use with AI Agents (MCP)

This Meta Ad Library scraper is callable as a tool by AI agents (Claude Desktop, Cursor, VS Code, n8n, or any MCP-compatible client) via Apify's hosted Model Context Protocol server.

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=bovi/meta-ads-library-scraper",
"--header",
"Authorization: Bearer <YOUR_APIFY_TOKEN>"
]
}
}
}

Integrations

Built for ad researchers, growth hackers, and competitive-intel teams mining Facebook and Instagram creatives at scale — the JSON/dataset output drops into the tools you already run, no glue code:

  • n8n / Make / Zapier — trigger a run or pipe every new dataset item into 500+ apps (Google Sheets, Airtable, Slack, HubSpot, your database) with no code: n8n, Make, Zapier.
  • Webhooks — fire your own endpoint the moment a run finishes, to push results straight into your pipeline (docs).
  • MCP server — expose this actor as a tool to Claude, Cursor, or any MCP client so an AI agent can pull this data mid-conversation (guide).
  • API & SDKs — fetch the dataset as JSON, CSV, or Excel through the Apify REST API or the Python / JS SDKs.

See all Apify integrations.

Disclaimer

The Meta Ad Library is a public transparency tool. This actor accesses the same publicly available data any visitor can view, without logging in. Respect Meta's terms and applicable law when using the data.