Meta Ad Library Scraper - Facebook & Instagram Ads avatar

Meta Ad Library Scraper - Facebook & Instagram Ads

Pricing

from $0.80 / 1,000 ad results

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

Meta Ad Library Scraper - Facebook & Instagram Ads

Scrape Facebook and Instagram ads from the Meta Ad Library by keyword, advertiser page or URL - ad copy, creatives, CTA, dates, platforms and status.

Pricing

from $0.80 / 1,000 ad results

Rating

0.0

(0)

Developer

Andrew

Andrew

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

Scrape every ad in the Meta Ad Library for any keyword, advertiser page or Ad Library URL - ad copy, headlines, creatives, call-to-action, landing page, run dates, platforms and active status. No login, no cookies, no Meta developer account.

What you get

One dataset row per ad with:

  • Identity: adArchiveId, adLibraryUrl, pageId, pageName, pageProfileUrl, pageLikeCount, pageCategories
  • Status and timing: isActive, startDate, endDate, totalActiveTimeSeconds
  • Ad copy: title, body, caption, linkDescription, ctaText, ctaType, linkUrl, extraTexts, extraLinks
  • Creatives: images (direct URLs), videos (HD/SD MP4 + preview image), cards for carousel ads, displayFormat
  • Distribution: publisherPlatforms (facebook, instagram, messenger, threads, audience_network), collationCount (number of variants)
  • Political and issue ads: spend, currency, reachEstimate, impressions, disclaimer, byline

Export to JSON, CSV, Excel or Google Sheets from the Apify console, or pull the dataset via API.

Use cases

  • Competitor ad monitoring - track every active ad a competitor page is running and when creatives change
  • Creative research and swipe files - pull ad copy, hooks and video creatives for a niche keyword
  • Ad spend intelligence - see which advertisers dominate a keyword by impressions and how long ads have run
  • Lead generation - find businesses actively advertising in a category or country
  • Political ad transparency - collect spend, reach and disclaimer data for political and issue ads

How to use

  1. Enter one or more Keywords (e.g. protein powder), Advertiser page IDs (the view_all_page_id number from an Ad Library URL), or paste full Ad Library URLs - filters embedded in a URL are honoured automatically.
  2. Pick a Country (2-letter code or ALL), Ad status (active, inactive or all), Media type, and optionally a Language and Start/End date window.
  3. Set Max ads per query (default 100; 0 pages through the whole result set).
  4. Run the actor. Results appear in the Dataset tab, one row per ad.

To find a page ID: open the advertiser's page in the Ad Library and copy the number after view_all_page_id= in the URL, or just paste that URL into Ad Library URLs.

Output example

{
"query": "lululemon",
"queryType": "keyword",
"adArchiveId": "1399070072320010",
"adLibraryUrl": "https://www.facebook.com/ads/library/?id=1399070072320010",
"isActive": true,
"startDate": "2026-08-25T07:00:00.000Z",
"endDate": "2026-09-18T07:00:00.000Z",
"pageId": "33693527731",
"pageName": "lululemon",
"pageLikeCount": 3701264,
"pageCategories": ["Clothing (Brand)"],
"publisherPlatforms": ["facebook", "instagram"],
"displayFormat": "DCO",
"title": "Bring the racket.",
"body": "Quiet? Please. New tennis gear lets your game speak volumes.",
"caption": "shop.lululemon.com",
"linkUrl": "https://shop.lululemon.com/story/tennis",
"ctaText": "Learn more",
"ctaType": "LEARN_MORE",
"images": [],
"videos": [{ "hdUrl": "https://video.xx.fbcdn.net/...mp4", "sdUrl": "...", "previewImageUrl": "..." }],
"cards": [],
"collationCount": 2
}

Pricing

Pay per event: a small fee per search page fetched plus a fee per ad returned. Free-plan users are capped at 30 ads per run; upgrade to any paid Apify plan to remove the cap.

FAQ

Which countries are supported? Any country the Ad Library covers. Use a 2-letter ISO code (US, GB, AU, DE, BR ...) or ALL.

Can I get inactive ads? Yes - set Ad status to INACTIVE or ALL. Inactive ads keep their creatives and copy.

Do I get spend and impressions? Meta only publishes those ranges for political and social-issue ads. For commercial ads the fields are null; use collationCount, totalActiveTimeSeconds and the impressions sort order as proxies.

Are the media URLs permanent? Creative URLs are signed CDN links that expire after a few days. Download them promptly if you need to keep the files.

How many ads can I scrape? The Ad Library reports up to ~50,000 matches per keyword. Set Max ads per query to 0 and the actor pages through all of them within the run timeout.