← Resources

Tools

Meta ad library search

Most Meta Ad Library searches return noise. The configuration order, advertiser-first queries, and filter sequence that turn the search box into a real research surface.

Updated

The Meta Ad Library search box looks like a Google query field and lies to you. Type a keyword and you get thousands of irrelevant affiliate listings; type a brand and the country defaults silently sabotage half your results. The library's search surface is a layered configuration tool, not a free-text engine - and the order in which you set the filters changes what comes back. This guide walks through the search workflow specifically: how to configure the page before you type, what to type, and how to read the result set so you can tell signal from noise in under thirty seconds per advertiser.

Default failure rate

~60% of first-attempt searches

Right-config search time

~30 sec / advertiser

Search cost

Free, no login required

Walkthrough

How to use it, step by step

  1. 1

    Open facebook.com/ads/library and configure before typing

    The library lives at facebook.com/ads/library and the search page renders three configuration controls above the search box: Country, Ad category, and the search input itself. Configure the first two before you type. If you type first and configure after, the library re-runs the query on every filter change and you'll burn 30-60 seconds watching result sets repopulate.

    Bookmark a pre-configured URL for your most-used country. Example: https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&search_type=page lands you straight into US-active-all-ads, ready to paste an advertiser name.
  2. 2

    Set country explicitly - never trust the default

    The Meta Ad Library partitions results by country, not by language. A brand running ads in the United Kingdom is invisible from a US-defaulted search, even if the creative is in English. The default country is whatever Meta has inferred from your IP - which on a VPN, on mobile data, or in a colocation network is often wrong. This is the single most common reason marketers say 'this brand isn't running ads' when they actually are.

    For multi-region brands, do one search per region. There is no 'global' or 'all countries' option - that's a deliberate constraint of the library's regulatory architecture.
  3. 3

    Switch Ad category to 'All ads'

    The default ad-category dropdown is set to 'Issues, elections or politics' in most regions - the regulatory backbone of the library. For commercial competitor research you want 'All ads'. This single dropdown is the second-most-missed setting in the entire library and the reason many first-time searches return suspiciously small result sets. Always set it before searching.

  4. 4

    Search by advertiser, not keyword

    The search input toggles between two modes: 'Keyword' and 'Advertiser'. Keyword search returns every ad whose body copy, headline, or product catalog contains your term - which on Meta means tens of thousands of affiliate sites, drop-shippers, and unrelated noise. Advertiser search anchors on a specific Facebook Page name and returns only that brand's ads. For 95% of competitive-research use cases, you want Advertiser mode.

    Find the canonical Page name by opening the brand's Facebook profile and reading the URL slug after facebook.com/. The slug is what the library's autocomplete matches against - paste it, then pick from the dropdown of verified Pages.
  5. 5

    Pick the verified Page from autocomplete - don't free-text

    When you start typing an advertiser name, the search input drops a list of matching Pages with their verification checkmarks, follower counts, and a small avatar. Always pick from this dropdown rather than submitting the free-text query. Free-text submission runs a fuzzy match that returns every Page containing your search string, including impersonator pages, fan pages, and unrelated accounts that happen to share a word. The dropdown selection guarantees you're querying the canonical Page.

    If the brand has multiple Pages (regional splits like 'Brand US' / 'Brand UK', sub-brands, or agency-managed accounts), each Page is a separate query. The library does not aggregate across Pages even if they're owned by the same parent.
  6. 6

    Layer the post-search filters in this order: status, media, language, platform, date

    Once results render, narrow them in this order: Active status (set to Active for current benchmarking), Media type (Video / Image / Carousel - never mix in a single audit), Languages (useful for multinational Pages), Platforms (Facebook / Instagram / Messenger / Audience Network - filter to one when studying placement-specific creative), then Date range (use 'Last 7 days' for trend-spotting, 'Last 30 days' for monthly competitive sweeps). The order matters because each filter narrows the set the next filter operates against - filtering by media after status gives you cleaner counts.

  7. 7

    Sort by start date and read time-on-platform as a fatigue proxy

    Use the start-date sort that Meta shipped in Q1 2026 to surface a brand's evergreen winners. Sort by 'Started oldest' and the first 5-10 results are the ads that have survived the longest on the same creative - the closest free signal to 'this ad is performing' you'll get from a free public tool. Sort by 'Started newest' to see what the brand just shipped this week.

    Ads alive >60 days on the same creative are evergreen winners. Ads from the last 14 days are tests; most won't make it. This is the most useful intuition pump in the entire library.
  8. 8

    Click 'See ad details' for variants, placements, and the actual delivery surfaces

    Every result has a 'See ad details' button that opens an expanded view with the platforms the ad delivers against, the languages it runs in, and - most usefully - all the creative variants the advertiser has shipped under the same ad ID. Variant analysis tells you exactly which axes the brand is testing: different hook lines, different aspect ratios, different thumbnail frames, different CTAs. A brand shipping 8 variants of the same concept is running a structured test; a brand shipping 1 variant per concept is winging it.

Cheatsheet

Filters that matter

FilterWhat it doesWhen to use
CountryPartitions the search by the geography ads are delivering in.Always set explicitly as the first action before any search.
Ad categoryToggles between 'All ads' and regulated categories (Politics, Housing, Employment, Credit).Set to 'All ads' for commercial research. Default is 'Politics' in most regions.
Search type (Keyword / Advertiser)Switches the search input between full-text content search and Page-name search.Advertiser mode for 95% of competitive research. Keyword mode only when researching a category-level theme.
Active statusFilters to ads currently delivering vs ads that have been paused or stopped.'Active' for benchmarking, 'Inactive' for historical pattern work.
Media typeNarrows by Image, Video, Carousel, or Meme.Always set a single format before comparing - mixed-format result sets confuse hook analysis.
PlatformsRestricts to ads delivering on a specific surface (Facebook / Instagram / Messenger / Audience Network).Use when researching placement-specific creative (Reels-only vs Feed-only).
Date rangeFilters by start date - the date the ad first went live.Set to 'Last 7 days' weekly to track new launches, 'Last 30 days' for monthly sweeps.

What it won't tell you

The gaps

  • No fuzzy-tolerant brand name matching

    The library's advertiser search is case-tolerant but typo-sensitive. 'Liquid IV' will match the Page; 'Liquid I.V.' may not, depending on punctuation indexing. Always check the autocomplete dropdown rather than trusting your spelling - and try 2-3 spellings if the brand has stylized punctuation in its real name.

  • No saved searches or watchlists

    The library has no way to save a query, no watchlist for tracked advertisers, no email alert on new ads from a Page. Every search is from scratch every time. Teams running weekly competitive sweeps end up bookmarking pre-configured URLs per advertiser or moving to a paid tool that maintains the watchlist layer.

  • No cross-brand search

    You cannot search for 'every ad in the protein powder category right now' across all advertisers. The library is advertiser-anchored by design. Category-level views require either keyword search (which is noisy) or a third-party tool that has pre-classified Pages by category.

  • Search results cap silently at ~100 per query

    Past roughly 100 results in a single query, the library stops loading new ads even with infinite scroll. For high-volume Pages (brands with 500+ active ads) you'll only ever see the first ~100 - typically the most recent. To see deeper history use the 'See all ads from this advertiser' link on the Page header rather than the search results page.

Shuttergen

Stop fighting the search box - audit competitors automatically.

Shuttergen runs the Meta Ad Library search for your competitor set on a weekly cadence, tags every ad by hook and format, and surfaces only what changed. The search workflow you wish the library had natively.

Why the search box is the worst part of the library

Most public-data tools are search-first: you type, results come back, you refine. The Meta Ad Library inverts this - the search is the last step in a configuration chain, not the first. The country filter, ad-category dropdown, and search-type toggle have to be set before the input box does anything useful. Most marketers learn this the hard way after their first three searches return inexplicable noise.

The reason is the library's regulatory architecture. Meta built the library to satisfy political-ad disclosure requirements (the US Honest Ads framework, the EU's transparency rules, similar laws elsewhere). The default search behavior optimizes for that use case - a journalist researching political ads in a single country, by category. Commercial competitive research was bolted on as a transparency goodwill gesture and inherits a search UX that fights it.

Practical implication: build muscle memory around the configuration order. Country → Ad category → Search type → Advertiser dropdown → post-result filters. Skip a step and you'll get noise; do them all and you'll find anyone's ads in under thirty seconds.

The advertiser-name failure mode and how to dodge it

The single highest-frequency failure in Meta Ad Library searches is the wrong Page problem. You type a brand name, you get a Page, the Page has 'verified' on it - and it's the wrong one. Big brands have impersonator Pages with high follower counts and convincing avatars. Mid-market brands have legacy Pages from old agency relationships, regional sub-brands, and corporate parent accounts that look right but aren't.

Three checks separate the right Page from the lookalike. Check the verification mark - the blue checkmark only appears on Meta-verified Pages, though increasingly common for impersonators since Meta opened verification to anyone with a paid Meta Verified subscription. Check the follower count against the brand's known social audience - off-by-an-order-of-magnitude is a tell. Click through to the Page itself before doing the audit - the right Page has consistent brand voice and recent organic posts; the wrong Page is either dormant or weirdly off-brand.

For agency-managed brands, the Page name often includes a market suffix ('Brand US', 'Brand Europe') or runs under the agency's own naming convention ('Brand by [Agency]'). When a search returns no results for what should be an active advertiser, try variants: append country codes, drop and re-add punctuation, search the agency name directly.

Stop fighting the search box - audit competitors automatically. Shuttergen runs the Meta Ad Library search for your competitor set on a weekly cadence, tags every ad by hook and format, and surfaces only what changed. The search workflow you wish the library had natively.

Automate my searches free

Building a repeatable search workflow

The fastest way to make the library useful is to stop treating each search as ad-hoc and start running them as a workflow. Three components: a bookmark set of pre-configured URLs, a competitor list of canonical Page handles, and a search rhythm that runs the same queries on the same cadence.

Bookmark set: build one URL per country/category combination you research, with country and ad-category set in query params. Example: ?active_status=active&ad_type=all&country=GB&search_type=page. Five bookmarks covers most teams.

Competitor list: maintain a spreadsheet of canonical Page handles for your 8-15 competitors, with the URL of their library page (advertiser-anchored, country-anchored, status-anchored) prebuilt. Click the URL, ads load - no configuration step. A competitor list with prebuilt URLs cuts research time per advertiser from 3-4 minutes to 30-45 seconds.

Search rhythm: run the same queries weekly. The first pass is the baseline. The compound intelligence comes from the diff between this week and last week - which new ads launched, which ads paused, which evergreen winners are still alive. Without the rhythm, the library is a one-shot tool. With it, it becomes a competitive monitoring system.

When the search is the wrong tool

The library's search surface is built for advertiser-anchored queries. If your research question is category-anchored ('what is everyone in the meal-kit category running?'), or format-anchored ('what video hooks are winning across all DTC right now?'), or trend-anchored ('which hooks are spiking this week?'), the search is the wrong tool. Keyword search is noisy. Category-level views don't exist. Trend-detection is impossible from the UI.

For those questions, you need a layer on top of the library: a paid tool like Foreplay, Atria, or Motion that has pre-classified ads by category, format, and trend, or an internal pipeline that consumes the Ad Library API and applies your own classification. The library's search is best at one thing - finding a specific advertiser's current ads, fast - and worst at everything else.

Pragmatic split: use the library directly for your 4-5 closest competitors (where you need full fidelity and frequent updates), and use a paid tool for the long-tail category sweep (where you need breadth without the manual overhead). Internal: Foreplay deep dive and Atria deep dive cover the leading paid options.

FAQ

Frequently asked

Why is my Meta Ad Library search returning no results?
In order of frequency: (1) wrong country filter - the default is unreliable; (2) ad category set to 'Politics' instead of 'All ads'; (3) search type set to 'Keyword' instead of 'Advertiser'; (4) the brand runs ads under a different Page name than the consumer brand. Fix all four before concluding the brand is dark.
Can I search the Meta Ad Library by keyword instead of advertiser?
Yes - flip the search type toggle to 'Keyword'. The results are noisy because Meta returns every ad whose copy or catalog contains the term, which includes thousands of affiliate listings. Useful for category-level trend-spotting; bad for specific competitor research.
Does Meta Ad Library search work for Instagram-only ads?
Yes. The library covers all four Meta delivery surfaces (Facebook, Instagram, Messenger, Audience Network) regardless of where the search lives. Use the 'Platforms' filter after search to narrow to Instagram-only delivery if you're researching Reels or Stories creative specifically.
How do I search Meta Ad Library by date?
Use the 'Date range' filter that appears after your initial search renders results. The most useful presets are 'Last 7 days' (for weekly trend-spotting) and 'Last 30 days' (for monthly competitive sweeps). For deeper historical search, sort by 'Started oldest' to surface evergreen winners.
Is there a Meta Ad Library search API?
Yes - the Meta Ad Library API at facebook.com/ads/library/api/. It requires a Meta developer account with business verification and an approved access token. Commercial-ads coverage is currently EU and Brazil only as of mid-2026; outside those regions the political-ads tier is the only programmatic path.
Why does Meta Ad Library search show different results for the same query?
Two reasons: (1) the country filter silently defaults to your inferred location, so the same advertiser name returns different ads from different IPs; (2) the library updates within ~24 hours of ad launches and pauses, so the active set genuinely changes day-to-day. Set country explicitly and accept that the result set is a snapshot, not a fixed dataset.
Can I save a Meta Ad Library search?
No native save feature. The workaround is bookmarking pre-configured URLs with query params (country, ad_type, active_status, search_type, advertiser ID). Bookmarked URLs survive Meta UI changes and land you straight into a configured result page. For watchlist and alerting features, you'll need a paid tool that layers on top of the library.

Related

Keep reading

Sources

Stop fighting the search box - audit competitors automatically.

Shuttergen runs the Meta Ad Library search for your competitor set on a weekly cadence, tags every ad by hook and format, and surfaces only what changed. The search workflow you wish the library had natively.