Facebook Ad Library Scraper Lowcost (0.3$/1K 🤑)
Pricing
from $0.30 / 1,000 ads
Facebook Ad Library Scraper Lowcost (0.3$/1K 🤑)
Scrape Meta Ad Library ads by keyword, page or URL: creatives, copy, links, dates, platforms and spend, with optional EU reach. $0.30 per 1,000 ads.
Pricing
from $0.30 / 1,000 ads
Rating
0.0
(0)
Developer
Samy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Facebook Ad Library Scraper Lowcost
Get every ad of a Facebook Ad Library search as data: the advertiser, the text, the images and videos, the dates and the platforms it runs on. Paste Ad Library URLs, type keywords, or give Facebook page ids, and get one row per ad creative, with the ids of the ads the Ad Library lists for it, for $0.30 per 1,000 ads.
Marketers and agencies use it to:
- Watch what competitors advertise, and since when.
- Collect ad creatives and their texts for inspiration or analysis.
- Track political and issue ads with their spend and impressions.
- Measure the EU reach and audience of ads shown in the European Union.
What it does
For each search you enter, it collects the ads the Ad Library shows, in the same order, up to the number you choose. Each ad comes with:
- The advertiser: page name, id, link, profile picture, likes and categories.
- The creative: text, headline, caption, link, call-to-action button, images, videos, and every card of carousel and catalogue ads.
- The ad's status, the day it started, the day it stopped, and the platforms it runs on (Facebook, Instagram, Messenger, Audience Network, Threads).
- How many ads share the same creative, and the ids of the ones the Ad Library lists with it.
- For ads about social issues, elections or politics: spend and impressions.
- How many ads the Ad Library counts for the search.
- With the EU transparency add-on: the EU reach, the reach by country, age and gender, the audience the ad targeted, and who paid for it and for whom.
You don't need a Facebook account.
Why it costs less
You pay $0.30 per 1,000 ads, and $0.005 per run start (per GB of memory; runs use 1 GB by default). Other Ad Library scrapers on Apify Store charge between $0.40 and $5.80 per 1,000 ads (October 2026). There is no monthly rent. A run that finds 40 ads costs $0.017.
It is also fast. In our tests, one search of 1,000 ads took 2 to 3 minutes, and 20 searches of 100 ads each took 30 seconds together.
How to use it
- Enter what to scrape: Ad Library URLs, search terms, page ids, or a mix of them. Each entry is one search.
- For search terms and page ids, choose the country, the active status, the ad category, the media type and the dates. Ad Library URLs keep their own filters.
- Set Maximum ads per search.
- Turn on Add EU transparency details if you need them.
- Click Start, then download the ads as JSON, CSV, Excel or HTML.
Paste Ad Library URLs
Search the Facebook Ad Library as usual, then copy the URL from your browser. Every filter you set there is kept: country, category, active status, media type, platforms, language, dates and sort order. A link to one ad (a URL with ?id=) is not a search, so it is skipped.
{"urls": ["https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=DE&media_type=video&q=bmw&search_type=keyword_unordered","https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&view_all_page_id=15087023444"],"maxAdsPerSearch": 200}
Search by keyword
Each term is one search. Put a term in double quotes to match the exact phrase.
{"searchTerms": ["running shoes", "\"black friday\""],"country": "FR","activeStatus": "active","mediaType": "video","maxAdsPerSearch": 500}
Get every ad of a Facebook page
Give the page's numeric id. It is the number after view_all_page_id= in the page's Ad Library URL, and the page's Page transparency section shows it too.
{"pageIds": ["15087023444"],"country": "ALL","activeStatus": "all","maxAdsPerSearch": 1000}
Filter by date
Shown on or after and Shown on or before keep the ads shown during those days, whenever they started. An ad that started in January and still ran in October is in an October range.
Output
One row per ad creative, as the Ad Library shows its results. Fields the Ad Library does not publish are null.
{"adArchiveId": "1936432480352751","adLibraryUrl": "https://www.facebook.com/ads/library/?id=1936432480352751","pageId": "739783715881879","pageName": "BagIt","pageUrl": "https://www.facebook.com/61578816363458/","pageProfilePictureUrl": "https://scontent.fclj4-1.fna.fbcdn.net/…","pageLikeCount": 784,"pageCategories": ["Home care"],"isActive": true,"startDate": "2026-07-09","endDate": null,"publisherPlatforms": ["FACEBOOK"],"collationId": "2169601026953377","collationCount": 1,"collatedAdArchiveIds": ["1936432480352751"],"displayFormat": "VIDEO","body": "Pourquoi tes baskets blanches ne sont jamais vraiment propres ?…","title": "Des baskets propres. Sans effort.","caption": "shopbagit.com","linkUrl": "https://www.shopbagit.com/products/sac-de-lavage-bagit","ctaText": "Shop now","ctaType": "SHOP_NOW","images": [],"videos": [{"hdUrl": "https://video.fclj4-1.fna.fbcdn.net/…","sdUrl": "https://video.fclj4-1.fna.fbcdn.net/…","previewImageUrl": "https://scontent.fclj4-1.fna.fbcdn.net/…"}],"cards": [],"spend": null,"impressions": null,"currency": null,"euTransparency": {"reach": 1494741,"targetedAgeMin": 18,"targetedAgeMax": 65,"targetedGender": "All","targetedLocations": [{ "name": "Belgium", "type": "countries", "excluded": false }],"reachBreakdown": [{ "country": "BE", "ageRange": "18-24", "male": 1758, "female": 855, "unknown": 37 }],"payer": "BagIt","beneficiary": "BagIt"},"totalResultsOfSearch": 6409,"input": "nike","searchUrl": "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=FR&media_type=all&q=nike&search_type=keyword_unordered","scrapedAt": "2026-10-20T23:04:19.892Z"}
endDateisnullwhile the ad still runs.- One row is one result of the Ad Library: an ad creative.
collationCountis how many ads share it, andcollatedAdArchiveIdsholds the ids of the ads the Ad Library lists with it, this row's ad first. videosholds the videos of video ads. Carousel, dynamic and catalogue ads hold theirs incards.spend,impressionsandcurrencyare only published for ads about social issues, elections or politics.euTransparencyis only filled with the add-on, and only for ads shown in the European Union.totalResultsOfSearchis the Ad Library's own count.50001means more than 50,000.searchUrlopens the same search in the Ad Library.
Besides the ads, every run stores a RUN_SUMMARY record with the result of each search.
Pricing
| What | Price |
|---|---|
| Run start | $0.005 per run start (per GB of memory; runs use 1 GB by default) |
| Ads | $0.30 per 1,000 ads |
| EU transparency details (add-on) | $0.30 per 1,000 ads with EU transparency details |
For example, a run that gets 1,000 ads costs $0.305. With the add-on, each ad that comes with EU transparency details also costs the add-on price in the table. An ad never shown in the EU costs the same as without the add-on.
The run stops at your maximum charge per run, and you only pay for the ads you receive.
Limits
- Up to 10,000 ads per search. The Ad Library counts up to 50,000.
- The add-on looks up each ad once more. In our tests, a search of 100 ads took 35 seconds with it and 21 seconds without.
- A few ads are hidden from visitors who are not logged in to Facebook. They come with their page and text only.
- Meta stopped running ads about social issues, elections or politics in the European Union in October 2025, so these searches find few or no ads in EU countries.
- The Ad Library does not take Cuba, Iran, North Korea or Sudan as a country, so they are not offered.
FAQ
Do I need a Facebook account or cookies?
No. The Ad Library is public, and the Actor reads it as any visitor would.
Why did I get fewer ads than the count?
You get no more than your Maximum ads per search. The count is the Ad Library's own figure, and ads that share a creative show as one result.
Why does a search show "not a valid Ad Library search"?
The Ad Library refused it, for example a page id that belongs to no page, or a URL with a filter value it does not take. The run log names the search, and the others go on.
What happens to a URL or page id I typed wrong?
It is skipped and counted in the run log: a URL that is not an Ad Library search, a page id that is empty or not a number, or a date that does not exist. Page ids are numbers, and a page's name is not its id.
Can I run it every day?
Yes. Schedule it in Apify Console, and send the ads to Google Sheets, Slack, a webhook or your own app with Apify integrations.
Is it legal?
The Ad Library is the public transparency archive Meta publishes so that anyone can see who advertises what. This Actor collects only what the Ad Library shows any visitor. Advertiser pages, payers and beneficiaries can include the names of people. If you store or process them, you are responsible for doing so lawfully, for example under the GDPR.