Facebook Ads Library Scraper — Meta & Instagram Ad Spy avatar

Facebook Ads Library Scraper — Meta & Instagram Ad Spy

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Facebook Ads Library Scraper — Meta & Instagram Ad Spy

Facebook Ads Library Scraper — Meta & Instagram Ad Spy

Facebook & Instagram ad spy. Scrape the Meta Ad Library by keyword, page, or ad archive ID. Extract creatives, ad copy, video URLs, landing pages, run dates, platforms, EU DSA disclosures, political-ad spend. All 240+ countries, all 6 ad categories. No Facebook login required.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Raven

Raven

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Facebook Ads Library Scraper — Meta Ads Scraper for Competitor Research, Ad Spy & Dropshipping

The most complete Facebook & Instagram Ads Library scraper on Apify. Three explicit modes (keyword search, full page export, single-ad detail), 240+ countries, all 6 ad categories, every Meta-exposed field including carousel cards, DPA creatives, regional regulation data, and political-ad spend ranges. Built on Chrome TLS-fingerprint impersonation so it keeps working when generic scrapers get 403'd.

Tags: facebook-ads meta-ads instagram-ads ad-library ad-spy dropshipping competitor-research creative-research ecommerce affiliate-marketing political-ads media-buying marketing-intelligence social-listening ad-analytics winning-products dtc agency-tools ad-creative-database


Why this scraper vs. other Meta ad scrapers on Apify

FeatureThis actorOther Actor AOther Actor BOther Actor C
Keyword search
All ads from a page (page ID or vanity URL auto-resolved)
Single-ad detail by archive ID / URL (dedicated mode)
All 6 ad categories (incl. Financial Products)❌ (only 2)
240+ ISO countries in dropdown✅ (free-form)
Unlimited maxAds (0 = no cap)❌ (cap = 500)
Carousel card-level data (per-card CTA / link / video)partialpartial
extra_images + extra_videos from snapshot
regional_regulation_data (EU DSA disclosures)
reach_estimate + total_active_time
containsDigitalCreatedMedia (AI-disclosure flag)
Threads platform output
Auto-solves Meta JS bot challenge (__rd_verify)
Chrome TLS fingerprint (curl_cffi impersonate)
Pure public scraping — no Facebook login required
Apify-native proxy editor (custom proxies supported)
Stream output (push as you go, partial reads safe)

Things this actor deliberately doesn't bundle (yet):

  • AI-generated competitive strategy report (some actors charge extra for it)
  • Sentiment analysis on ad copy
  • Per-ad change-tracking over time

If you need an LLM-written competitive analysis on top of raw data, layer your own model on top — this actor focuses on giving you the richest, cleanest raw dataset so you're not locked into someone else's interpretation.


What this actor does

A Meta Ad Library scraper (Facebook + Instagram + Audience Network + Messenger + Threads) for marketers, performance teams, agencies, and dropshippers who need fresh, structured ad data without an expensive ad-spy SaaS subscription. Point it at a brand, a keyword, or a single ad — get clean flat JSON.

Internally: hits the same public Ad Library endpoint the Meta UI uses, fingerprints itself with TLS-level Chrome impersonation, parses the SSR'd HTML for page 1, then paginates via the official GraphQL persisted query (AdLibrarySearchPaginationQuery).

Three scraping modes

Mode (scrapeType)What you put in itemsWhat you get
searchKeywords: nike, weight loss, iphone caseAll ads matching the query, paginated
pageAdsPage IDs or URLs: https://facebook.com/nike or 15087023444Every ad currently or previously run by that page
adDetailArchive IDs or ad URLs: ?id=987654321...Full creative + metadata for a single ad

Use cases

  • Ad spy & competitor research — track every Facebook & Instagram ad your competitors run, when they launched, on which platforms, in which countries.
  • Creative research for dropshipping — find winning hooks, video angles, and offers being tested by other DTC brands. Filter by mediaType=video and sort by total_active_time to surface long-runners.
  • Media buying intelligence — long ad lifespan → likely profitable. Pull every page's ad library, filter isActive=true, rank by start_date recency.
  • Political ad transparency & journalism — funding entity, spend ranges, impression ranges, and regional disclosure data for POLITICAL_AND_ISSUE_ADS.
  • Brand monitoring & trademark protection — alert when your brand name appears in unauthorized advertisers' creatives.
  • Affiliate marketing — discover which offers and angles affiliates are actively promoting in your niche.
  • Agency reporting — bulk-export client + competitor ad libraries into Looker, Tableau, BigQuery, Postgres, Sheets.
  • AI / LLM training data — collect a clean, structured corpus of real ad copy and creatives for fine-tuning copywriting / vision models.
  • EU DSA compliance researchregional_regulation_data carries disclosures specific to the EU Digital Services Act.

Features

  • No Facebook login required — scrapes the public Ad Library only.
  • All ad formats — image, video, carousel (with full per-card breakdown), DPA (dynamic product ads), text.
  • All 6 ad categoriesALL, POLITICAL_AND_ISSUE_ADS, EMPLOYMENT_ADS, HOUSING_ADS, CREDIT_ADS, FINANCIAL_PRODUCTS_AND_SERVICES_ADS.
  • 240+ countries in the dropdown — every ISO 3166-1 alpha-2 code, plus ALL for worldwide.
  • Per-platform filtering — Facebook, Instagram, Audience Network, Messenger, Threads.
  • Pagination handled automatically — set maxAds per item or leave 0 for unlimited.
  • Concurrency control — process up to 20 input items in parallel with a single shared Apify proxy session.
  • Resilient HTTPcurl_cffi Chrome impersonation, exponential backoff retry, automatic Meta __rd_verify JS-challenge solver, rate-limit (1675004) backoff.
  • Charge-limit aware — exits cleanly when the run budget is hit, never wasting credits.
  • Stream output — one push per page, so partial reads on long-running scrapes are safe.
  • Flat JSON output — one row per ad creative, ready for CSV / Excel / BigQuery / Postgres without any post-processing.

Input

{
"scrapeType": "search",
"items": ["nike", "adidas", "puma"],
"country": "US",
"adType": "ALL",
"activeStatus": "active",
"mediaType": "all",
"platforms": ["FACEBOOK", "INSTAGRAM"],
"maxAds": 200,
"maxConcurrency": 5,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Scrape a single brand's full ad library

{
"scrapeType": "pageAds",
"items": [
"https://www.facebook.com/nike",
"15087023444"
],
"country": "US",
"activeStatus": "all",
"maxAds": 0
}

Pull one ad by URL or archive ID

{
"scrapeType": "adDetail",
"items": [
"https://www.facebook.com/ads/library/?id=987654321012345",
"1677230640306960"
]
}

Full input field reference

FieldTypeDefaultDescription
scrapeTypeenumsearchsearch | pageAds | adDetail
itemsstring[]Required. Keywords / page IDs / page URLs / ad IDs (one per line in UI).
countryenumUSISO 3166-1 alpha-2 code, or ALL.
adTypeenumALLALL, POLITICAL_AND_ISSUE_ADS, EMPLOYMENT_ADS, HOUSING_ADS, CREDIT_ADS, FINANCIAL_PRODUCTS_AND_SERVICES_ADS.
activeStatusenumactiveactive | inactive | all
mediaTypeenumallall | image | video | meme
platformsstring[][]Empty = all. FACEBOOK, INSTAGRAM, AUDIENCE_NETWORK, MESSENGER, THREADS.
maxAdsinteger100Per input item. 0 = unlimited.
maxConcurrencyinteger5Items processed in parallel (1–20).
maxRetriesinteger5HTTP retry attempts.
proxyConfigurationobjectApify Residential USRequired. The Apify proxy editor supports custom proxy URLs too.

Output

One flat JSON record per ad creative, streamed into the dataset as it's scraped.

Sample output record

{
"adArchiveId": "1677230640306960",
"adLibraryUrl": "https://www.facebook.com/ads/library/?id=1677230640306960&country=US",
"pageId": "151871258163795",
"pageName": "Amazon Fashion",
"pageProfilePictureUrl": "https://scontent-dfw6-1.xx.fbcdn.net/v/...",
"pageProfileUrl": "https://www.facebook.com/AmazonFashion/",
"pageLikeCount": 4214235,
"pageCategories": ["Retail company"],
"pageIsDeleted": false,
"adContent": "Fits that go the distance and level up your A-game.",
"adTitle": "Amazon Fashion",
"adLinkCaption": "amazon.com",
"adLinkUrl": "https://www.amazon.com/b?node=...",
"adCallToActionType": "SHOP_NOW",
"adCallToActionText": "Shop now",
"adFormat": "dpa",
"imageUrls": ["https://scontent-...jpg", "..."],
"videoUrls": [],
"videoPreviewImageUrls": [],
"cards": [
{
"title": "Sneakers",
"body": "Free returns",
"cta_type": "SHOP_NOW",
"cta_text": "Shop now",
"link_url": "https://amazon.com/...",
"original_image_url": "https://scontent-...jpg",
"video_hd_url": null
}
],
"startDate": "2026-02-12T08:00:00+00:00",
"endDate": "2026-04-26T07:00:00+00:00",
"isActive": true,
"containsSensitiveContent": false,
"containsDigitalCreatedMedia": false,
"countries": ["US"],
"platforms": ["facebook", "instagram"],
"categories": ["UNKNOWN"],
"impressions": {"lower_bound": "1000000", "upper_bound": null},
"spend": null,
"currency": null,
"fundingEntity": null,
"regionalRegulationData": {"finance": null, "gambling": null},
"reachEstimate": null,
"totalActiveTime": null,
"collationCount": null,
"collationId": null,
"scrapedAt": "2026-04-29T08:59:01.004128+00:00"
}

Field reference

FieldTypeDescription
adArchiveIdstringUnique Meta ad ID. Use as primary key.
adLibraryUrlstringDirect link to the ad in the Meta Ad Library UI.
pageId / pageNamestringAdvertiser page.
pageProfilePictureUrlstringHD page avatar.
pageProfileUrlstringPublic Facebook page URL.
pageLikeCountintegerPage total likes (snapshot at scrape time).
pageCategoriesstring[]Page categories (e.g. "Retail company", "Clothing brand").
pageIsDeletedbooleanPage no longer exists.
adContentstringPrimary body text of the ad.
adTitle / adLinkDescription / adLinkCaptionstringHeadline + description shown on the ad.
adLinkUrlstringLanding page URL (deep-link decoded).
adCallToActionType / adCallToActionTextstringCTA: SHOP_NOW, LEARN_MORE, INSTALL_NOW, etc.
adFormatstringimage | video | carousel | dpa | text
imageUrls / videoUrlsstring[]All creative URLs (HD where available).
videoPreviewImageUrlsstring[]Video poster frames.
cardsobject[]For carousel/DPA: every card with its own copy, image, CTA, link.
startDate / endDatedatetimeISO-8601 UTC. endDate is null while the ad is live.
isActivebooleanCurrently running.
containsSensitiveContentbooleanMeta-flagged sensitive content.
containsDigitalCreatedMediabooleanAI-generated / digitally altered media disclosure.
countriesstring[]Targeted/reached countries (ISO codes).
platformsstring[]facebook, instagram, audience_network, messenger, threads.
categoriesstring[]Top-level ad categorization.
impressions / spendobjectRange buckets. Political/issue ads only.
currency / fundingEntitystringSpend currency + "Paid for by ..." disclaimer (political/issue).
regionalRegulationDataobjectEU DSA + financial/gambling regional disclosure data.
reachEstimateobjectTargeting reach estimate (when exposed).
totalActiveTimeintegerSeconds the ad has been live.
collationCount / collationIdint / strIf Meta groups variants, this links the variants together.
scrapedAtdatetimeWhen this row was captured.

FAQ

Is scraping the Meta Ad Library legal? The Ad Library is a public transparency tool that Meta operates specifically to make ads inspectable for journalists, researchers, and competitors. Scraping public pages is generally permitted, but the data is subject to Meta's terms — review them before commercial use, and don't republish creatives you don't own.

Why doesn't this need a Facebook login? The Ad Library is intentionally public. We use no cookies, no tokens, no Graph API access — just the same HTML/GraphQL the website serves to anonymous visitors.

Can I get spend and impression data? Only for political and issue ads — that's all Meta exposes. Set adType to POLITICAL_AND_ISSUE_ADS and look at the spend, impressions, currency, and fundingEntity fields.

Why are some ads missing creatives? Meta sometimes redacts or expires media URLs. The videoUrls / imageUrls reflect what's currently served — if the array is empty but adFormat is video, the asset has been pulled down by Meta.

How do I scrape an entire competitor's ad history? Use scrapeType: pageAds, set activeStatus: all, maxAds: 0. The actor will paginate until Meta returns no more pages.

How fresh is the data? Real-time. Every run hits Meta directly — there's no intermediate cache.

Will this work for Instagram-only ads? Yes. Set platforms to ["INSTAGRAM"], or leave it empty and filter output.platforms downstream.

Does this support the new EU DSA disclosure data? Yes — see regionalRegulationData in every output record. It carries the financial-regulation and gambling disclosure flags Meta exposes for EU member states.

What's containsDigitalCreatedMedia? Meta's AI-content disclosure flag. true means the advertiser self-disclosed that the creative was generated or significantly altered with AI.

How does this compare to other Meta Ads Library scrapers on Apify? Most other actors cover keyword search and per-page export, but stop there. This one adds a dedicated adDetail mode (one ad by archive ID), per-card data for carousels and DPA, extra_images/extra_videos, reachEstimate, totalActiveTime, EU DSA regionalRegulationData, the new AI-disclosure flag, Threads platform output, all 6 ad categories (incl. Financial Products), and unlimited maxAds. It also auto-resolves vanity-URL slugs to numeric page IDs in pageAds mode. Some actors bundle Gemini-based AI analysis for an extra fee — this one leaves that to your own pipeline so you're not locked into someone else's interpretation.

What about TikTok / Twitter / Google ads? Different platforms, different actors. This one is Meta-only (Facebook + Instagram + Audience Network + Messenger + Threads).


Keywords

Facebook ads scraper, Meta ad library scraper, Facebook ad spy tool, Instagram ads scraper, Facebook ads library API, Meta ads database, competitor ad research, dropshipping ad spy tool, winning products finder, ad creative research, Facebook ads scraping API, Meta transparency tool, Facebook ads bulk export, Facebook ads JSON, Meta ad library bulk download, ad library API alternative, Facebook ads JSON export, Meta DSA compliance scraper, political ads scraper, AI ad disclosure tracking, Facebook carousel ad scraper, DPA dynamic product ad scraper, Threads ads scraper, Audience Network scraper, Messenger ads scraper.