Facebook Ad Library Scraper (cheap) avatar

Facebook Ad Library Scraper (cheap)

Pricing

from $0.41 / 1,000 ads

Go to Apify Store
Facebook Ad Library Scraper (cheap)

Facebook Ad Library Scraper (cheap)

Low-cost scraper for the public Facebook / Meta Ad Library: keyword searches and Page URLs, with the same input and output fields as the popular ad library scrapers. No login needed. $0.41 per 1,000 ads.

Pricing

from $0.41 / 1,000 ads

Rating

0.0

(0)

Developer

Istmobot

Istmobot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

A cheaper drop-in alternative for scraping the public Facebook / Meta Ad Library. It uses the same input and output fields as the popular ad library scrapers, so you can switch without code changes. No login and no cookies needed.

Price
Per ad$0.00041 ($0.41 per 1,000 ads)
Per run start$0.005
Error rowsFree

Input

Paste Ad Library search URLs or Facebook Page URLs into urls.

{
"urls": [
{ "url": "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=nike&search_type=keyword_unordered&media_type=all" },
{ "url": "https://www.facebook.com/ZapierApp" }
],
"limitPerSource": 200,
"count": 500
}
FieldWhat it does
urlsAd Library search URLs (build the search on facebook.com/ads/library and copy the URL) or Page URLs.
scrapeAdDetailsAdds advertiser, EU reach and transparency fields to each ad. Off by default. Needs one extra request per ad, so runs are slower. Same price per ad.
limitPerSourceStops a URL at the end of the page that reaches this number, so it can exceed the limit by up to 30 ads.
countStops the whole run at exactly this many ads.
scrapePageAds.periodPage URLs only: all time, or the last 24 hours, 7, 14 or 30 days.
scrapePageAds.activeStatusPage URLs only: all, active or inactive.
scrapePageAds.sortByPage URLs only: impressions_desc or most_recent.
scrapePageAds.countryCodePage URLs only: 2-letter country code, or ALL.
runTagCopied to a runTag column on each ad.
proxyOptional custom proxy. By default the Actor uses datacenter proxies, with residential as a fallback.

Output

One row per ad, in the order the Ad Library shows them.

  • Ad fields: ad_archive_id, collation_id, collation_count, is_active, page_id, page_name, snapshot (body, title, images, videos, cards, link, call to action), categories, currency, spend, reach_estimate, impressions_with_index, publisher_platform, start_date, end_date, targeted_or_reached_countries, and more.

  • Added fields: url, position, ads_count, start_date_formatted, end_date_formatted, ad_library_url.

  • Search URLs add total, the number of ads Facebook reports for the search.

  • Page URLs add pageInfo: page_id, creation_date, admin_info, ad_status, transparency_see_all.

  • With scrapeAdDetails each ad also has advertiser, aaa_info (payer and beneficiary, audience, eu_total_reach, reach by country, age and gender), violation_types, verified_voice_context, transparency_by_location and is_violating_eu_siep.

A URL that fails produces a free row with url, errorType and error.

Limitations

  • With scrapeAdDetails, an ad whose details still fail after retries keeps its other fields, with the detail fields set to null, and the run log says how many.
  • Image and video links are signed by Facebook and expire after some days. Download the files if you need to keep them.

This Actor reads the public Ad Library without logging in. Ads can still contain personal data, such as names in ad text or on Pages, which laws like the GDPR protect. Only process it if you have a legitimate reason, and ask your lawyers if you're unsure.