Facebook Ad Library Scraper
Pricing
$3.00 / 1,000 ad scrapeds
Facebook Ad Library Scraper
Scrape the public Facebook Ad Library by keyword or page: advertiser, ad copy, media, CTA, start date and platforms. No login required.
Facebook Ad Library Scraper
Pricing
$3.00 / 1,000 ad scrapeds
Scrape the public Facebook Ad Library by keyword or page: advertiser, ad copy, media, CTA, start date and platforms. No login required.
List of advertiser names or keywords to search the Facebook Ad Library for, e.g. "Nike", "Coca-Cola", "black friday". Each term is searched separately (keyword_unordered). Leave empty if you instead search by Page ID below. At least one of Search terms or Page IDs is required.
List of numeric Facebook Page IDs to pull all of a specific advertiser's library ads (view_all_page_id). Use this when you already know the Page ID (e.g. "15087023444"). You can find a Page ID from the Ad Library URL of an advertiser. Leave empty if you search by term above.
Two-letter ISO country code the Ad Library filters ads by, e.g. "US", "BR", "GB", "DE", or "ALL" for all countries. The Ad Library always requires a country context; US is a safe default with the most inventory.
Which slice of the library to search. "all" = all ads currently running across Facebook's apps. "political" = only political & issue ads (these expose extra data such as spend and impression ranges).
Filter by whether the ad is currently running. "active" = only ads active right now (default), "inactive" = only stopped ads still archived, "all" = both active and inactive library ads.
Maximum number of ads to collect in total across every search term / Page ID in this run. The scraper scrolls the results to load more until this cap is reached or the library has no more matches. Returns fewer (or zero) honestly rather than padding with fake data.
Facebook aggressively blocks datacenter IPs and unauthenticated traffic. A RESIDENTIAL proxy group is strongly recommended and used by default — without it, the Ad Library GraphQL requests are very likely blocked or return empty.
{ "useApifyProxy": true, "apifyProxyGroups": [ "RESIDENTIAL" ]}