← Resources

Tools

Facebook ads library

How to actually use the Facebook Ads Library to audit competitor creative - the filters that matter, the gaps it won't fix, and what to do after the export.

Updated

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. 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. 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. 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. 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. 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. 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.mp4 saves an hour every time you come back to the file.
  7. 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

FilterWhat it doesWhen to use
CountryRestricts results to ads running in a specific country at the time of the search.Always set explicitly - never trust the default.
Ad categorySwitches 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 statusFilters to ads currently delivering vs. ads that have been paused or stopped.Set to 'Active' for benchmarking, 'Inactive' for historical pattern work.
Media typeNarrows 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.
LanguagesFilters by the language Meta detected in the ad copy.Useful for multinational brands that run creative in multiple languages from the same Page.
PlatformsFilters 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 rangeRestricts 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.

Audit my competitors 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?
Yes - completely. No login is required to search and view ads in the UI. Programmatic access via the Ad Library Graph API is also free but rate-limited and gated behind a Meta developer account with business verification.
Why can't I see a brand's ads even though I know they advertise?
Three common causes: (1) wrong country filter - the library partitions by region, not language; (2) the brand runs ads through an agency Page with a different name than the consumer brand; (3) you're searching by keyword instead of Page name. Try changing all three before concluding the brand is dark.
Can I download videos from the Facebook Ads Library?
The library doesn't ship a download button. You can right-click and 'Save video as' in most browsers, or use a downloader Chrome extension. For carousel ads, each card is a separate asset and must be saved individually. For high-volume needs, use the Foreplay-style tools that automate this.
Does the Facebook Ads Library show how much a brand spent?
Only for ads classified as 'about social issues, elections, or politics' - those entries include impression and spend ranges. For commercial ads (the vast majority), the library shows zero spend or performance data. To estimate competitor spend, pair the library with a third-party estimator or earnings-call disclosures.
How often does the Facebook Ads Library update?
New ads typically appear within ~24 hours of launch. Inactive-status flips when a brand pauses an ad usually propagate within a few hours. The library is not real-time - if you need the live state of a campaign, the platform's own ad-delivery view is the only source.
Is scraping the Facebook Ads Library legal?
Meta's terms of service prohibit automated access outside the official Graph API. There is established case law (most notably *hiQ Labs v. LinkedIn*) supporting that scraping publicly accessible data is not a CFAA violation in the US, but Meta can and does pursue terms-of-service breach claims and IP blocks against persistent commercial scrapers. The official API is the only fully sanctioned path.
Is there a Facebook Ads Library for TikTok or LinkedIn?
TikTok's equivalent is the TikTok Creative Center - same purpose, different coverage shape (top ads only, not exhaustive). LinkedIn has a LinkedIn Ads Library that launched in 2023 with similar transparency-first goals but narrower data than Meta's.

Related

Keep reading

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.