Facebook Ads Library Scraper avatar

Facebook Ads Library Scraper

Pricing

from $0.30 / 1,000 facebook ad scrapeds

Go to Apify Store
Facebook Ads Library Scraper

Facebook Ads Library Scraper

Scrape Facebook Ads Library using Ads Library URLs. Extract creatives, media, delivery, and optional reach/spend data. Get the complete result set for any search URL with automatic monthly date partitioning. $0.45 per 1,000 ads, with reach and spend data included for each ad.

Pricing

from $0.30 / 1,000 facebook ad scrapeds

Rating

0.0

(0)

Developer

Krazee

Krazee

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

a month ago

Last modified

Features

Limited permissions

Share

๐Ÿ“ข Facebook Ads Library Scraper

Scrape publicly available advertisements from Facebook Ads Library and collect structured ad data for competitor research, advertising analysis, and market research. Extract advertiser information, ad creatives, destination URLs, and other available details.

Simply apply your desired filters in Facebook Ads Library, copy the search URL, and paste it into the actor.


โญ Why Use This Actor?

  • ๐Ÿ“… Automatic Monthly Date Partitioning: Automatically partitions long date ranges into monthly requests, helping collect complete historical datasets.

  • ๐Ÿ“Š Additional Facebook Ad Details: Optionally retrieve extra information, such as reach estimates, spend, and advertiser details when available.

  • โšก Fast API-Based Extraction: Collect Facebook Ads Library data through direct API requests instead of browser automation, making scraping faster, more reliable, and resource-efficient.

  • ๐Ÿ›ก๏ธ Reliable Session Management: Built-in session handling, retries, and recovery mechanisms help keep long-running scraping jobs stable and resilient.

  • ๐Ÿ”„ Apify Resurrect Run Support: Long-running scraping jobs can automatically resume from the last saved progress after an interruption instead of starting over.

  • ๐Ÿ’ฐ Affordable Pricing: Scrape Facebook Ads Library data for as little as $0.30 per 1,000 ads, with pricing based on your Apify subscription plan.


๐Ÿ“Š What Data Can You Extract?

The actor returns one dataset item per ad.

Standard Ad Data

CategoryIncluded Data
๐Ÿ“ข Ad InformationAd Archive ID, ad status, delivery dates, display format, ad title, ad text, caption, CTA text, CTA type, disclaimers, and reshared content information
๐Ÿข Advertiser InformationPage ID, page name, profile URL, profile picture, page categories, page likes, and page status
๐Ÿ–ผ๏ธ Creative AssetsImages, videos, carousel cards, thumbnails, media URLs, extra images, extra videos, and creative metadata
๐Ÿ”— Landing Pages & LinksLanding page URLs, captions, bylines, link descriptions, destination URLs, and additional links
๐ŸŒ Delivery InformationPublisher platforms, targeted countries, regional regulation data, content flags, and other delivery metadata

โญ Additional Ad Details (Optional)

Enable Include Extra Ad Details to enrich each ad with the following additional information when available.

CategoryIncluded Data
๐Ÿ‘ค Advertiser ProfileAdvertiser About, Instagram username, followers, verification, page alias, category, cover photo, profile photo, page verification, and profile type
๐Ÿ“Š Transparency & AudienceReach insights, audience demographics, transparency by location, age, gender, country breakdowns, and regional transparency information
โš–๏ธ Compliance & Page InsightsPage spend, political advertiser indicators, restriction status, verified voice context, violation types, AI disclosure eligibility, and other compliance metadata

๐Ÿ’ก Use Cases

  • E-commerce & Dropshipping: Discover competitor products, offers, and long-running ads to research potential product opportunities.
  • Ad Creative Research: Collect ad copy, images, videos, and carousel details to inspire new advertising campaigns.
  • Competitor Analysis: Examine competitors' advertising strategies, creatives, and available reach and spend data.
  • Marketing Agencies: Collect competitor ads to support client research, campaign planning, and audits.
  • Market Research & Data Analysis: Export structured Facebook Ads Library data for market research, reporting, and further analysis.

๐Ÿš€ How to Scrape Facebook Ads Library

Scrape Ads from an Advertiser

The simplest way to scrape ads from a Facebook page is to copy the advertiser's Ads Library URL and provide it as input.

{
"urls": [
"https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=IN&is_targeted_country=false&media_type=all&search_type=page&sort_data[direction]=desc&sort_data[mode]=total_impressions&view_all_page_id=15087023444"
]
}

Scrape Ads with Additional Details

Enable Include Ad Details to enrich each ad with additional advertiser information, reach, spend, and transparency data when available. Since this performs one additional request per ad, runs may take slightly longer to complete.

{
"resultsPerUrl": 100,
"includeAdDetails": true,
"urls": [
"https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=IN&is_targeted_country=false&media_type=all&search_type=page&sort_data[direction]=desc&sort_data[mode]=total_impressions&view_all_page_id=15087023444"
]
}

Scrape Ads Within a Date Range

Apply date filters directly in your Facebook Ads Library URL, or use the actor's impressionsFrom and impressionsTo inputs if the URL doesn't specify those dates. URL date filters take priority over the corresponding input fields.

{
"impressionsFrom": "2025-01-01",
"impressionsTo": "2025-06-30",
"urls": [
"https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=IN&is_targeted_country=false&media_type=all&search_type=page&sort_data[direction]=desc&sort_data[mode]=total_impressions&view_all_page_id=15087023444"
]
}

๐Ÿ“ฅ Sample Output

{
"ad_archive_id": "1007351262282618",
"ad_id": null,
"collation_id": "2083367189052591",
"collation_count": 1,
"is_active": false,
"start_date": "2026-08-03T07:00:00Z",
"end_date": "2026-10-01T07:00:00Z",
"page_id": "2140630076185020",
"page_name": "JD Sports US",
"page_profile_uri": "https://facebook.com/jdsportsus",
"page_profile_picture_url": "https://scontent-iad6-1.xx.fbcdn.net/v/t39.35426-6/763119864_1756378638722392_5955320780976829838_n.jpg?stp=dst-jpg_s60x60_tt6&_nc_cat=102&ccb=1-7&_nc_sid=c53f8f&_nc_ohc=kPL4jFtfgkwQ7kNvwHdyETb&_nc_oc=AdpX7KEaVADzHTczerQE0sOTkEjg_UaLCe0Rm81DW8Y54vq-8dBa-Ah03PVmR3Zx4_snunDo3m7YpjZtQpRDaowe&_nc_zt=14&_nc_ht=scontent-iad6-1.xx&_nc_gid=sDMoSlZV7VmVno0vAb59vA&_nc_ss=79180&oh=00_AQNfkyMLY2UonlHO-JZJt8cArznLf3QdK4lA4uyGD1uzvw&oe=6AD698FA",
"page_categories": ["Retail company"],
"page_like_count": 160656,
"page_is_deleted": false,
"title": "{{product.name}}",
"ad_text": "{{product.brand}}",
"caption": "jdsports.com",
"cta_text": "Shop now",
"cta_type": "SHOP_NOW",
"cards": [
{
"body": "Liquid-inspired cushioning built for movement that never slows down. Introducing the Nike Air Liquid Max โ€” now at JD. Tap in. Available now.",
"cta_type": "SHOP_NOW",
"caption": "",
"link_description": null,
"link_url": "https://www.jdsports.com/pdp/mens-nike-air-liquid-max-casual-shoes/prod30142121/IQ7635/005",
"title": "Liquid Max Lands At JD",
"cta_text": "Shop Now",
"video_hd_url": "https://video-iad6-1.xx.fbcdn.net/o1/v/t2/f2/m366/AQP5oYuf63jUZDF3BRYgpzliyxEifoqw77YMzWiIgZ3y7kS3c3WVDwDn9hfr58pVaxoWOp5YpJnScLjVY-lDd5zbsSO516A2Z2QbfD1f5cjekQ.mp4?_nc_cat=106&_nc_sid=b66105&_nc_ht=video-iad6-1.xx.fbcdn.net&_nc_ohc=sqzIFWqdPWkQ7kNvwGrNQxE&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5WSV9VU0VDQVNFX1BST0RVQ1RfVFlQRS4uQzMuNzIwLmRhc2hfaDI2NC1iYXNpYy1nZW4yXzcyMHAiLCJ4cHZfYXNzZXRfaWQiOjEwNjM4MTE1OTMyOTcwNDMsImFzc2V0X2FnZV9kYXlzIjo3MiwidmlfdXNlY2FzZV9pZCI6MTA3OTksImR1cmF0aW9uX3MiOjYsInVybGdlbl9zb3VyY2UiOiJ3d3cifQ%3D%3D&ccb=17-1&vs=2521f3594f19f927&_nc_vs=HBksFQIYRWZiX2VwaGVtZXJhbC8xMzRGRTIwREU4MEI4Q0E5RjQ0NjQ4N0Q3Njk0RDJBRF9tdF8xX3ZpZGVvX2Rhc2hpbml0Lm1wNBUAAsgBEgAVAhhAZmJfcGVybWFuZW50L0MzNDI5NUExNDBFN0NEMENDOUY1QzM3MzQwMEExMDkyX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACam8oKC_uHjAxUCKAJDMywXQBgAAAAAAAAYGWRhc2hfaDI2NC1iYXNpYy1nZW4yXzcyMHARAHUAZd6oAQA&_nc_gid=sDMoSlZV7VmVno0vAb59vA&_nc_ss=79180&_nc_zt=28&oh=00_AQMeDAaSwYWLga6nwK5LfRhyu9Nr9pPc-87m2nzgnLc_YQ&oe=6AD68C36",
"video_preview_image_url": "https://scontent-iad3-2.xx.fbcdn.net/v/t39.35426-6/760654622_801162743086984_7581802339056868830_n.jpg?_nc_cat=103&ccb=1-7&_nc_sid=c53f8f&_nc_ohc=mTlOW4xYBOYQ7kNvwEUUAN8&_nc_oc=Adr-IJRJGgLnI0BGnaYg1S1CcNU_QWDkC6SJ5f4_SmbmnuHv7bEivgjdnTSiJcNz1Q96FtuHlWK4F40HzPVuGrB7&_nc_zt=14&_nc_ht=scontent-iad3-2.xx&_nc_gid=sDMoSlZV7VmVno0vAb59vA&_nc_ss=79180&oh=00_AQNGeRB1LuBRZvYzBybezjTDk9sPYmJxH5UkKWxrMXseeA&oe=6AD68419",
"video_sd_url": "https://video-iad6-1.xx.fbcdn.net/o1/v/t2/f2/m412/AQNMY6q4lEzygLb3nd-fl_BOwWxCENuUmYxvLGEFBut47sg_9FqUBfsKbVPSuFpjJQp7R1rWIu80TQYWaKB00qXZVOdJjaCsMgexbqViUA.mp4?_nc_cat=107&_nc_sid=ef5aa3&_nc_ht=video-iad6-1.xx.fbcdn.net&_nc_ohc=htNHP4FhvawQ7kNvwHvMXC1&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5WSV9VU0VDQVNFX1BST0RVQ1RfVFlQRS4uQzMuMzYwLnN2ZV9zZCIsInhwdl9hc3NldF9pZCI6MTA2MzgxMTU5MzI5NzA0MywiYXNzZXRfYWdlX2RheXMiOjcyLCJ2aV91c2VjYXNlX2lkIjoxMDc5OSwiZHVyYXRpb25fcyI6NiwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&_nc_gid=sDMoSlZV7VmVno0vAb59vA&_nc_ss=79180&_nc_zt=28&oh=00_AQMQntk7455cak3IE6bOKLXif1YJeNqXVDIsB0gPN4ofVg&oe=6AD69F73",
"watermarked_video_hd_url": null,
"watermarked_video_sd_url": null,
"image_crops": [],
"original_image_url": null,
"resized_image_url": null,
"watermarked_resized_image_url": null
},
{
"body": "Liquid-inspired cushioning built for movement that never slows down. Introducing the Nike Air Liquid Max โ€” now at JD. Tap in. Available now.",
"cta_type": "SHOP_NOW",
"caption": "",
"link_description": null,
"link_url": "https://www.jdsports.com/pdp/mens-nike-air-liquid-max-casual-shoes/prod30142121/IQ7635/005",
"title": "Liquid Max Lands At JD",
"cta_text": "Shop Now",
"video_hd_url": "https://video-iad3-1.xx.fbcdn.net/o1/v/t2/f2/m366/AQMSCa2INW40PECKSBo74jn9QyWsOshK3EOI5Tj6f3Osu72pgLhcbKD4Q6QFmGc0YIR6VwbVQ-3UY-a2R3yQ_vRf_wMtk5qddUOMz7CClJDvvg.mp4?_nc_cat=101&_nc_sid=b66105&_nc_ht=video-iad3-1.xx.fbcdn.net&_nc_ohc=oL0JAbVDe6oQ7kNvwF4D6cR&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5WSV9VU0VDQVNFX1BST0RVQ1RfVFlQRS4uQzMuNzIwLmRhc2hfaDI2NC1iYXNpYy1nZW4yXzcyMHAiLCJ4cHZfYXNzZXRfaWQiOjIzMDg2NzU4OTI4NzIyNzAsImFzc2V0X2FnZV9kYXlzIjo3MiwidmlfdXNlY2FzZV9pZCI6MTA3OTksImR1cmF0aW9uX3MiOjYsInVybGdlbl9zb3VyY2UiOiJ3d3cifQ%3D%3D&ccb=17-1&vs=1a67622b61714695&_nc_vs=HBksFQIYRWZiX2VwaGVtZXJhbC8zRTQyRjc3MzMyNDQ5OUY2QzNERENCRDYwRTc4MEQ5Ql9tdF8xX3ZpZGVvX2Rhc2hpbml0Lm1wNBUAAsgBEgAVAhhAZmJfcGVybWFuZW50L0FDNEJGRkY5MDc5RjM0MTlFNEMzMDNDNkNBNjZDQkE1X2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACackfjnz-6ZCBUCKAJDMywXQBgAAAAAAAAYGWRhc2hfaDI2NC1iYXNpYy1nZW4yXzcyMHARAHUAZd6oAQA&_nc_gid=sDMoSlZV7VmVno0vAb59vA&_nc_ss=79180&_nc_zt=28&oh=00_AQPXP9i0FLJGYG6DolRAPTSU0uhr26XaMEYG20oOYd9NUQ&oe=6AD696C7",
"video_preview_image_url": "https://scontent-iad6-1.xx.fbcdn.net/v/t39.35426-6/763103501_1031543386272146_4210173969647757820_n.jpg?_nc_cat=107&ccb=1-7&_nc_sid=c53f8f&_nc_ohc=OgBMAXOT224Q7kNvwGy0hmW&_nc_oc=Adoq9Nx_M43jxaL1wrb1wGsXircQ4TEgSBuybqQHDAzwcpeeTPMdKX5ek9VojG-2EbUnN7Rkt75MWM3faKagH0lz&_nc_zt=14&_nc_ht=scontent-iad6-1.xx&_nc_gid=sDMoSlZV7VmVno0vAb59vA&_nc_ss=79180&oh=00_AQOyhcRzkwxZ2K24Q7KkK3payzrgu2GQr4OQLAeepPFJZg&oe=6AD68685",
"video_sd_url": "https://video-iad3-1.xx.fbcdn.net/o1/v/t2/f2/m412/AQML1lIPzp8qfoExipRDpaIzCM7bCSDDAwMhnBFuWJmFSeO2I_jWYrZoDdTW4l5bWh7rhcVCgAMuo-rnN9v1QGo162A1G28BJP6ItGoCFA.mp4?_nc_cat=101&_nc_sid=ef5aa3&_nc_ht=video-iad3-1.xx.fbcdn.net&_nc_ohc=79MMtUgZUbsQ7kNvwEx216D&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5WSV9VU0VDQVNFX1BST0RVQ1RfVFlQRS4uQzMuMzYwLnN2ZV9zZCIsInhwdl9hc3NldF9pZCI6MjMwODY3NTg5Mjg3MjI3MCwiYXNzZXRfYWdlX2RheXMiOjcyLCJ2aV91c2VjYXNlX2lkIjoxMDc5OSwiZHVyYXRpb25fcyI6NiwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&_nc_gid=sDMoSlZV7VmVno0vAb59vA&_nc_ss=79180&_nc_zt=28&oh=00_AQP_1DqyV79_LwlcYWl8Yw3gHFJIVOBoEm3BsT09YLmnwQ&oe=6AD6941D",
"watermarked_video_hd_url": null,
"watermarked_video_sd_url": null,
"image_crops": [],
"original_image_url": null,
"resized_image_url": null,
"watermarked_resized_image_url": null
}
],
"extra_links": [],
"extra_texts": [],
"extra_images": [],
"extra_videos": [],
"disclaimer_label": null,
"country_iso_code": null,
"byline": null,
"root_reshared_post": null,
"is_reshared": false,
"display_format": "DCO",
"link_url": "https://www.jdsports.com/pdp/mens-nike-air-liquid-max-casual-shoes/prod30142121/IQ7635/005",
"link_description": "{{product.description}}",
"images": [],
"videos": [],
"publisher_platform": [
"FACEBOOK",
"INSTAGRAM",
"AUDIENCE_NETWORK",
"WHATSAPP",
"THREADS"
],
"targeted_or_reached_countries": [],
"reach_estimate": null,
"currency": "",
"spend": null,
"contains_sensitive_content": false,
"gated_type": "ELIGIBLE",
"contains_digital_created_media": false,
"hide_data_status": "NONE",
"regional_regulation_data": {
"finserv": {
"is_deemed_finserv": false,
"is_limited_delivery": false
},
"tw_anti_scam": {
"is_limited_delivery": false
}
},
"total_active_time": null,
"impressions_with_index": {
"impressions_text": null,
"impressions_index": -1
},
"advertiser_about": "Global Access is here. ๐ŸŒ Unlock your worldwide connection.\n\nFor customer care support, please visit: www.jdsports.com/customercare",
"is_delegate_page_with_linked_primary_profile": false,
"is_political_page": false,
"page_spend": {
"current_week": null,
"lifetime_by_disclaimer": [],
"weekly_by_disclaimer": [],
"is_political_page": false
},
"entity_type": "PERSON_PROFILE",
"ig_username": "jdsportsus",
"ig_followers": 1156059,
"ig_verification": true,
"page_alias": "jdsportsus",
"page_category": "Retail company",
"page_cover_photo": "https://scontent-mia3-3.xx.fbcdn.net/v/t39.30808-6/487454301_3958220017759341_4571207204284804665_n.jpg?_nc_cat=108&ccb=1-7&_nc_sid=957871&_nc_ohc=dDOg8aiSUMEQ7kNvwHcF9q4&_nc_oc=AdrPndyTOGRXcscog-Qmo9FcYpPZdoqPI2nngnsdOCI2-umOFR32mYkHS16BnvqJkSQpSOitP9OwQZ7dwexaKTcR&_nc_zt=23&_nc_ht=scontent-mia3-3.xx&_nc_gid=F0693q5brbTF922Q7ymGUQ&_nc_ss=79180&oh=00_AQNVKGym-_8ImOaYyPdtCQAXXCdERH3eiusOGcGqxytajg&oe=6AD68977",
"page_is_restricted": false,
"page_verification": "BLUE_VERIFIED",
"profile_photo": "https://scontent-mia5-1.xx.fbcdn.net/v/t39.30808-1/352792584_24058384897093808_7740950368409050375_n.png?stp=dst-png_s148x148&_nc_cat=1&ccb=1-7&_nc_sid=418b77&_nc_ohc=YVEgB4QcYOUQ7kNvwGuSQJ_&_nc_oc=AdqmTgK5zMDWfSxJ_xz5OdtjJHTvHYy_9erf1O2Z63te_5aOn7xw7Q3Xbt4YSqOTa8G9HpbcTw29joGkjC72z3IT&_nc_zt=24&_nc_ht=scontent-mia5-1.xx&_nc_gid=F0693q5brbTF922Q7ymGUQ&_nc_ss=79180&oh=00_AQOn2VEgzAM8QUurcN6uzSi62U9xnQfslGJS2XGdKTwFNw&oe=6AD68965",
"is_profile_page": false,
"violation_types": [],
"verified_voice_context": null,
"transparency_by_location": {
"br_transparency": null,
"eu_transparency": {
"targets_eu": false,
"location_audience": [],
"gender_audience": "All",
"age_audience": null,
"eu_total_reach": 1173,
"age_country_gender_reach_breakdown": [
{
"country": "MT",
"age_gender_breakdowns": [
{
"age_range": "25-34",
"male": null,
"female": 1,
"unknown": 1
},
{
"age_range": "18-24",
"male": 1,
"female": null,
"unknown": null
}
]
},
{
"country": "NL",
"age_gender_breakdowns": [
{
"age_range": "25-34",
"male": 9,
"female": 1,
"unknown": 1
},
{
"age_range": "35-44",
"male": 1,
"female": 1,
"unknown": 2
},
{
"age_range": "18-24",
"male": 13,
"female": 12,
"unknown": 1
}
]
}
]
},
"uk_transparency": {
"location_audience": [],
"gender_audience": "All",
"age_audience": {
"min": 18,
"max": 40
},
"total_reach": 251,
"age_country_gender_reach_breakdown": [
{
"country": "GB",
"age_gender_breakdowns": [
{
"age_range": "25-34",
"male": 55,
"female": 10,
"unknown": 1
},
{
"age_range": "Unknown",
"male": null,
"female": 1,
"unknown": null
},
{
"age_range": "35-44",
"male": 11,
"female": 3,
"unknown": null
},
{
"age_range": "18-24",
"male": 115,
"female": 52,
"unknown": 4
}
]
}
]
}
},
"is_siep_advertiser_eligible_for_ai_disclosure": true,
"is_violating_eu_siep": false
}

Understanding Null Values

Some fields may contain null when Facebook Ads Library does not return a value for them. This is expected and does not necessarily indicate a scraping error.

Some ads contain multiple creative cards, such as images or videos. When available, these are returned in the cards array, with details for individual cards.


โš™๏ธ Input Parameters

InputDescription
urlsOne or more Facebook Ads Library search URLs to scrape.
resultsPerUrlMaximum number of ads to collect per URL. Defaults to 50.
includeAdDetailsFetch additional details, such as reach, spend, and advertiser information when available. Requires one extra request per ad.
sortBySort ads by impressions (high to low) or most recent.
activeStatusFilter for active ads, inactive ads, or both.
impressionsFromStart date for filtering ads by impressions. Used when the URL doesn't specify a date range.
impressionsToEnd date for filtering ads by impressions. Used when the URL doesn't specify a date range.

๐Ÿ“… Date Range Behavior

  • Priority: Dates specified in the Ads Library URL take precedence over the input date filters.
  • Default: If neither the URL nor the input fields specify a date range, the actor searches the past 7 years, starting from the current date.

Automatic Monthly Date Partitioning

Facebook Ads Library limits the number of ads returned by a search. This actor automatically splits the selected date range into monthly intervals and collects results from each interval, helping retrieve more ads than a single broad date-range search.

For example, a one-year search is split into 12 monthly intervals instead of relying on a single request for the entire year.


โšก Apify Resurrect Run Support

The actor supports Apify resurrect runs for interrupted or partially completed scraping jobs.

If a run crashes or stops unexpectedly, the resurrected run can continue from the same scraping position instead of starting from the beginning.


๐Ÿ’ฐ Pricing

This actor uses a pay-per-event pricing model. The price per 1,000 ads depends on your Apify subscription plan.

Apify PlanPrice per 1,000 AdsActor Limits
Free$0.50Up to 2 URLs and 50 ads per URL
Starter$0.45Higher limits
Scale$0.40Higher limits
Business$0.30Higher limits

Free users: You can start with up to 2 Ads Library URLs and 50 ads per URL to test the actor and explore its output.

Need to scrape more ads? You can upgrade your Apify subscription to access higher scraping limits and benefit from lower prices per 1,000 ads on higher-tier plans. Visit Apify Pricing to explore the available plans.

๐Ÿ’ก Tip: We recommend starting with a small test run to check the output and estimate your costs before running larger scraping jobs.


โš ๏ธ Limitations & Troubleshooting

  • No ads returned

    Verify that the Facebook Ads Library URL is valid and returns ads when opened in your browser. Searches with no matching ads will produce an empty dataset.

  • Fewer ads than expected

    The actor follows the search criteria defined by your Ads Library URL and any additional filters configured in the actor input. Check that your country, date range, active status, and other filters are not overly restrictive.

  • Missing ad details

    Additional advertiser, reach, spend, and transparency information is only available when Include Ad Details is enabled and Facebook provides those details for the specific ad.

  • Include Ad Details increases scraping time

    When Include Extra Ad Details is enabled, the actor performs one additional request for each scraped ad to retrieve Facebook's See ad details information. As a result, runs with this option enabled may take longer than standard scraping runs.

  • Monitoring progress

    Open the actor run and check the Logs tab to monitor scraping progress, extracted ads, and any warnings generated during the run.


โ“ Frequently Asked Questions

Can I scrape Facebook Ads Library without logging in?

Yes. The actor extracts publicly available ads from Facebook Ads Library without requiring a Facebook account, cookies, API keys, or manual authentication.

Can I scrape ads from a specific advertiser or Facebook page?

Yes. Simply copy the advertiser's Facebook Ads Library URL and provide it as input. The actor will scrape ads matching that search.

Can I scrape Facebook Ads by keyword?

Yes. Create a keyword search on Facebook Ads Library, copy the generated search URL, and use it as input. The actor supports both keyword and advertiser-based searches.

Can I scrape ads from multiple Facebook Ads Library URLs in one run?

Yes. Provide multiple Ads Library search URLs, and the actor will process each one during the same run.

Can I filter ads by date?

Yes. You can either apply date filters while creating the Ads Library search URL or use the actor's built-in impression date filters to further refine the results.

What additional information does Include Extra Ad Details provide?

When enabled, the actor performs one additional request per ad to retrieve Facebook's See ad details information, including advertiser details, reach, spend, transparency data, audience breakdowns, and other publicly available metadata when available.

Why is my scraping run taking longer than expected?

Large searches naturally require more requests. Enabling Include Ad Details also performs one additional request for every scraped ad, which may increase the total run time.

Can I export the scraped data to CSV or Excel?

Yes. Data is stored in an Apify dataset and can be exported to CSV, Excel, JSON, XML, HTML, RSS, and other formats supported by Apify.


๐Ÿ’ฌ Support

Check the troubleshooting section above before opening an issue.

For bug reports, scraping issues, or feature requests, please open an issues on the actor page.

If you need custom scraper modifications, automation workflows, or additional extraction features, feel free to contact:

๐Ÿ“ง kamakrazeekaushik@gmail.com

When reporting issues, please include the Actor Run ID or relevant run logs to help speed up debugging.


  • ๐ŸŽฅ Facebook Reels Scraper โ€“ Scrape Facebook Reels and their comments from public profiles and pages with a single actor.

  • ๐Ÿ“˜ Facebook Posts & Comments Scraper - Scrape Facebook posts from one or multiple public Facebook pages, including comments for every post. Configure comment limits and sorting options without using a separate comments scraper.