The Facebook Ads Library is Meta's free, public archive of every ad currently running across Facebook, Instagram, Messenger, and Audience Network. Launched in 2018 as a transparency tool after the political-ads scrutiny following the 2016 US election, it has since become the single most-used competitor-research surface in performance marketing. Every brand that runs paid social shows up. Every creative is fetchable - statics, videos, carousels, reels - in their full live form. And every active ad lists its start date, platforms, and the Page that's running it.
Coverage
100% of active Meta ads
Refresh cadence
Within ~24 hours
Cost
Free, no login required
Walkthrough
How to use it, step by step
- 1
Open the library and pick the right region
Go to facebook.com/ads/library and set the country filter at the top to the geography you care about. The library is partitioned by country, not by language - an ad running in the United Kingdom is shown only when you select United Kingdom, even if its creative is in English. If you're auditing a brand that runs in multiple regions, you'll need to repeat the search per country to get full coverage.
The default country is whatever Meta thinks you're in. Always set it explicitly - the wrong country setting is the #1 reason 'I can't find ads for this brand' searches come up empty. - 2
Search by Page name, not keyword
Switch the dropdown from 'All ads' to 'Ad category: All ads' (counter-intuitively, this gives you the broadest set), then type the brand's Facebook Page name. Searching by keyword - say, 'protein powder' - returns every ad whose copy or product catalog contains that string, which on Meta means thousands of affiliate sites, drop-shippers, and unrelated noise. Page-name search anchors on a specific advertiser and filters cleanly.
If a brand has multiple Pages (regional splits, sub-brands, agency-managed accounts), each one is a separate search. Look at the URL of their main Page to find the canonical handle. - 3
Set 'Active status' to 'Active'
By default the library returns both active and inactive ads. Inactive ads can be useful for historical analysis, but for benchmarking what's working *right now* you want only active. Toggle 'Active status' to 'Active' to cut the result set roughly in half on most brands. Add the 'Media type' filter set to 'Video' or 'Image' depending on what you're researching - mixing formats makes hook comparisons noisy.
- 4
Read the start dates - they're your fatigue signal
Every active ad shows a 'Started running on' date. Ads that have been running for more than 60 days on the same creative are evergreen winners; their performance has stayed above the kill threshold despite Meta auto-rotating fresher creative. Ads that started in the last 14 days are tests - some of those will become evergreens, most will be paused. Time-on-platform is the closest free signal you can get to 'this is performing'.
Cluster ads by start date. If a brand has 15 ads with the same hook angle all started within the last week, they just shipped a new concept. If they have 3 ads from 2024 still running, those are the must-study winners. - 5
Click into each ad for platform placement and variant data
Click the 'See ad details' button on any result. The expanded view shows every placement the ad is delivered against (Feed, Reels, Stories, Marketplace, Audience Network) and lists creative variants - the same ad with different copy, different aspect ratios, or different thumbnail frames. Brands routinely ship 6-12 variants per concept; reading the variant set tells you which axes they're testing (hook line vs CTA, square vs vertical, frame 1 vs frame 3).
- 6
Save and download what matters
Meta does not provide a native export. To capture an ad's video you need to right-click and save in the browser, or use a downloader extension. For statics, the library shows the full creative inline and a screenshot is sufficient. For carousels, every card is its own object - download each. Organize by competitor + start date + hook archetype so future-you can search the swipe file later.
Build the folder structure before the audit, not after.competitor-name / YYYY-MM / hook-archetype / asset.mp4saves an hour every time you come back to the file. - 7
Use the Ads Library API for scale
Manual review caps out around 30-50 ads per session. For wider audits use the Ad Library Graph API - it's a separate endpoint with its own access flow. You'll need a Meta developer account and an approved access token (the API is free but rate-limited and gated behind business verification). The API returns the same data as the UI as JSON; pair it with a downloader and you can sweep entire categories in minutes.
The API ships only ads classified by Meta as 'about social issues, elections, or politics' for most countries. For commercial-ad coverage, you'll need to apply for the higher-tier 'Ad Library API for ads about commercial issues' (currently EU and Brazil only as of mid-2026). Outside those regions, scraping the UI is the de facto path.
Cheatsheet
Filters that matter
| Filter | What it does | When to use |
|---|---|---|
| Country | Restricts results to ads running in a specific country at the time of the search. | Always set explicitly - never trust the default. |
| Ad category | Switches between 'All ads', 'Issues, elections, or politics', 'Housing', 'Employment', and 'Credit'. 'All ads' is the right pick for commercial research. | Default to 'All ads' unless auditing regulated categories. |
| Active status | Filters to ads currently delivering vs. ads that have been paused or stopped. | Set to 'Active' for benchmarking, 'Inactive' for historical pattern work. |
| Media type | Narrows by Image, Video, Carousel, or 'Meme' (Meta's catch-all for novel formats). | Filter to a single format before comparing hooks - mixing formats produces apples-to-oranges audits. |
| Languages | Filters by the language Meta detected in the ad copy. | Useful for multinational brands that run creative in multiple languages from the same Page. |
| Platforms | Filters to ads delivered on a specific platform (Facebook, Instagram, Messenger, Audience Network). | Use when you want to study Reels-only creative vs Feed-only creative - different aspect ratios, different hooks. |
| Date range | Restricts results by the ad's start date. Most useful as 'last 7 days' / 'last 30 days' for trend-spotting. | Set to 'last 7 days' weekly to track what's newly shipping in your competitive set. |
What it won't tell you
The gaps
No spend, impression, or reach data for commercial ads
Outside political/issue advertising, the library shows zero performance signal. You see the creative, the placements, and the start date - never the budget, never the impressions, never the reach. Two ads sitting side by side could be one driving 80% of a brand's revenue and one driving zero - the library will not tell you which is which.
No engagement counts on individual ads
Even though the Page's organic posts show reactions and comments, ads ported into the library strip that engagement layer. You cannot tell whether an ad is generating positive sentiment, getting roasted in the comments, or being ignored entirely.
Audience targeting is invisible
The library never reveals who an ad is targeted to. A creative that looks like a 'general consumer' ad might be running against a 1% lookalike of high-LTV purchasers - same creative, very different cost per acquisition, and you have no way to tell.
Inactive ads disappear from search
Once an ad is paused, the library still archives it but the default search returns only active ads. The 'See all ads' button on a Page surfaces inactive history, but the further back you go the less reliable it becomes - some inactive ads vanish from public view entirely after long periods.
Shuttergen
Fill the gaps the Ad Library leaves behind.
Shuttergen pulls every ad in your competitive set, scores them by hook, structure, and time-on-platform, and flags the winners the Ad Library hides. Start free.
What the Facebook Ads Library is actually for
Meta did not build the Ads Library for marketers. It was built to comply with regulators after the 2016 disinformation cycle - first as a US-only political ad archive in 2018, then expanded to all ads globally in 2019 under pressure from the European Commission and the Digital Services Act framework. The fact that it accidentally became the world's most-used competitive intelligence tool is a side effect, not the product spec.
That origin matters because it explains the gaps. The library shows you everything Meta is *required by law* to disclose - the creative, the advertiser, the start date, the platform delivery. It withholds everything Meta is not required to disclose - performance metrics, audience targeting, spend. This shape is unlikely to change. Treat the library as a creative archive, not as an analytics platform.
Used correctly, the library answers four questions well: what is my competitor running right now, what creative formats are they testing, how long has each ad been alive (a proxy for whether it's working), and which placements are they buying. It answers zero questions about budget, audience, or actual ROAS. Pair it with another source - a spend-estimation tool, a brand's earnings disclosures, or third-party social-listening - if you need the performance layer.
Building a competitor swipe file from the library
The single highest-leverage workflow with the library is the rolling competitor swipe file. Pick 8-12 brands you compete with, do an initial deep audit (every ad they're running, organized by start date and hook archetype), then sweep weekly to catch new launches and pause-and-replace cycles. The first audit takes a day. Subsequent sweeps take 15 minutes per brand.
Tag each ad with three dimensions when you save it: hook archetype (problem-solution, day-in-the-life, founder-to-camera, customer-testimonial, transformation, demo, etc.), format (UGC, studio, motion graphics, screen recording), and angle (price, status, ease, identity, comparison). After 100-200 tagged ads from your competitive set you start to see the meta-pattern - which archetypes dominate your category, which angles are saturated, where the whitespace is.
Most teams stop here. The brands that pull ahead pair the swipe file with a time-on-platform cutoff: every ad that has been alive >45 days on the same creative goes into a winners bucket and gets a forensic teardown. Why does this hook work? What's happening in the first 1.2 seconds? What does the on-screen text say? You should be able to draw a wireframe of every winner in your category from memory.
Internal links: see the Best Meta Ad Library tools for the third-party tools that automate the tagging step, and the Foreplay deep dive for how the leading swipe-file tool layers AI-assisted hook detection on top of the library's raw output.
Fill the gaps the Ad Library leaves behind. Shuttergen pulls every ad in your competitive set, scores them by hook, structure, and time-on-platform, and flags the winners the Ad Library hides. Start free.
Why scraping the library yourself is fragile
Every PMM eventually thinks about building a scraper. Don't, unless you have a dedicated maintenance budget. Meta intentionally rate-limits the library, rotates its DOM structure, and adds CAPTCHA challenges aggressively against unauthenticated traffic. A scraper you build in a weekend will work for 3-6 weeks before breaking on a DOM update, and the maintenance overhead compounds across the 8-12 brands in your sweep.
The legal layer is similarly murky. Meta's terms of service prohibit automated access outside the official API, and they've sent cease-and-desists to commercial vendors that crawl the library at scale. The official Graph API is the only fully sanctioned path, and as covered above, its commercial-ad coverage is patchy outside the EU.
Pragmatic path for most teams: combine manual review for your top 4-5 competitors (where you need fidelity) with a paid tool for the long tail (where you need breadth). Tools like Foreplay, Atria, and Motion maintain the scrapers so you don't have to, and they layer hook-tagging and AI-classification on top.
What changed in 2026
Meta's Andromeda update (rolled out broadly in late 2025 / early 2026) compressed the ad lifecycle on the platform. Average time-to-fatigue on Reels placements dropped from ~14 days to ~9. The downstream effect on the library: more ads in the 'Started running on: 1-7 days ago' bucket, fewer in the long-tail evergreen bucket. If your competitive audit feels noisier in 2026 than it did in 2024, that's the macro reason.
The library itself shipped two small but meaningful improvements: variant grouping (creative variants of the same ad now collapse under a single entry by default, instead of cluttering the result set), and start-date sort (you can now sort results by start date directly, instead of scrolling chronologically). Both shipped quietly in Q1 2026; neither was announced.
Nothing else of substance has changed at the library level. The structural gaps - no spend, no engagement, no targeting - remain. Most likely they will keep remaining; Meta has no commercial or regulatory incentive to open the data further than its current required disclosures.
FAQ
Frequently asked
Is the Facebook Ads Library free?
Why can't I see a brand's ads even though I know they advertise?
Can I download videos from the Facebook Ads Library?
Does the Facebook Ads Library show how much a brand spent?
How often does the Facebook Ads Library update?
Is scraping the Facebook Ads Library legal?
Is there a Facebook Ads Library for TikTok or LinkedIn?
Related
Keep reading
Resource
Meta ad library
The library's older name - same product, separate keyword cluster.
Resource
Tiktok creative center
TikTok's equivalent transparency surface.
Resource
Linkedin Ads Library
LinkedIn's transparency tool for B2B ad research.
Research
Foreplay Deep Dive
How the leading swipe-file tool layers on top of the library.
Research
Anatomy Of Good Meta Ad Library
Anatomy of a forensic Meta Ad Library audit.
Sources
Fill the gaps the Ad Library leaves behind.
Shuttergen pulls every ad in your competitive set, scores them by hook, structure, and time-on-platform, and flags the winners the Ad Library hides. Start free.