Facebook Ad Library Scraper Lowcost (0.3$/1K 🤑) avatar

Facebook Ad Library Scraper Lowcost (0.3$/1K 🤑)

Pricing

from $0.30 / 1,000 ads

Go to Apify Store
Facebook Ad Library Scraper Lowcost (0.3$/1K 🤑)

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

Samy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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

  1. Enter what to scrape: Ad Library URLs, search terms, page ids, or a mix of them. Each entry is one search.
  2. 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.
  3. Set Maximum ads per search.
  4. Turn on Add EU transparency details if you need them.
  5. 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"
}
  • endDate is null while the ad still runs.
  • One row is one result of the Ad Library: an ad creative. collationCount is how many ads share it, and collatedAdArchiveIds holds the ids of the ads the Ad Library lists with it, this row's ad first.
  • videos holds the videos of video ads. Carousel, dynamic and catalogue ads hold theirs in cards.
  • spend, impressions and currency are only published for ads about social issues, elections or politics.
  • euTransparency is only filled with the add-on, and only for ads shown in the European Union.
  • totalResultsOfSearch is the Ad Library's own count. 50001 means more than 50,000.
  • searchUrl opens the same search in the Ad Library.

Besides the ads, every run stores a RUN_SUMMARY record with the result of each search.

Pricing

WhatPrice
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.

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.

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.