How to Monitor Competitors’ Meta Ad Libraries
Build a repeatable Meta Ad Library review: find competitor ads, record what changes, and interpret visible dates without mistaking longevity for proof of performance.
To monitor competitors’ ads in Meta’s Ad Library, choose the country whose audience you want to study, search for the competitor’s Facebook Page, and record each ad’s creative, copy, format, platform, visible start date, and any visible variants. Recheck the same Pages on a consistent schedule and compare changes over time. The library is a source of public clues: ordinary commercial-ad views do not reveal an advertiser’s spend, conversions, return on ad spend, or detailed targeting.
Meta says, “To search for all ads currently running across Meta technologies, please use the Ad Library.” See Meta Ad Library and Meta’s Ad Library API documentation.
1. Choose a market and find the advertiser
- Open the Meta Ad Library.
- Choose the country whose ad delivery you want to inspect. This is the audience or delivery geography, not the advertiser’s headquarters. If the competitor operates in multiple markets, repeat the same search for each country.
- Choose the appropriate ad category, then search the competitor’s Facebook Page name. Select the matching Page from the suggestions to focus on that advertiser.
- Run separate searches for category, product, or problem-related keywords. Keyword searches can reveal advertisers you did not already have on your competitor list.
Page names can be similar, and a business may use different Page identities by country or product. Confirm the Page identity from the result before recording it. If a search produces no results, check the country and category first, then try the Page’s exact name and common product terms.
2. Narrow results with filters
Use the filters available in the current interface to make comparisons manageable. Depending on the search and market, you may be able to filter by platform, media type, language, activity status, or dates.
- Platform: compare Facebook and Instagram separately when you want to see where visible ads appear.
- Media type: group image, video, or carousel ads to compare like with like.
- Language: isolate a language when the advertiser serves multilingual markets.
- Activity and dates: set the status and date filters that answer your question. A search for active ads is different from a review of ads with other statuses.
Filter names and availability can change. Treat a missing filter as an interface limitation, not evidence that an advertiser has no ads in that category. For pattern analysis, change one filter at a time and record the settings used.
3. Capture a useful baseline
A screenshot or saved link is useful for reference, but it is not a substitute for a consistent record. Create one row per ad or clearly identified ad variant. Record the date you checked the library so you can distinguish a later observation from a historical fact.
| Field | What to record |
|---|---|
| Advertiser | Page name and, where available, Page identity or link |
| Market | Country selected in the library; add language if relevant |
| Review date | The date you performed this check |
| Ad reference | Library ID or saved link when visible |
| Creative and copy | Image, video, carousel, visible primary text, headline, offer, and call to action |
| Timing | Visible start or delivery date and whether the ad is still visible at the next review |
| Placement | Visible platforms or Meta surfaces |
| Variants | Any visible versions or repeated creative concepts; describe what differs |
| Search context | Country, category, keyword or Page query, and filters used |
Keep observations separate from interpretations. “The headline changes between two visible versions” is an observation. “The new headline improved conversions” is a hypothesis unless you have performance evidence from the advertiser.
4. Recheck on a consistent cadence
Use the same search context on each review: same Page, country, category, and relevant filters. A weekly review is a reasonable starting cadence for a working swipe file, but there is no universal schedule. Review more often if the market changes quickly or the research question is time-sensitive; review less often if the category moves slowly.
- Open each saved Page or keyword search with the recorded filters.
- Compare current results with the baseline and prior review.
- Mark new concepts, changed offers or copy, repeated variants, ads that remain visible, and ads no longer visible.
- Save the new observation with its review date. Do not overwrite the earlier record.
- Investigate notable changes with additional evidence before drawing conclusions about the advertiser’s strategy or results.
An ad that is no longer visible may have stopped, changed status, fallen outside the selected filters, or become harder to find in the current interface. Record what you observed and the search conditions; do not turn disappearance alone into a claim about performance.
5. Compare the ads without overclaiming
Compare observable features across advertisers, markets, and review dates:
- Market and language: note differences in language, offer, and framing across country searches.
- Format and placement: compare image, video, and carousel creative, along with the platforms shown in the library.
- Message and offer: record the hook, stated benefit, proof, promotion, and call to action visible in the ad.
- Iteration: describe visible versions and which creative elements differ. The presence of multiple versions is evidence of variation, not a measure of budget.
- Time: note visible start or delivery dates and whether the ad remains visible on later checks.
Long-running ads are useful candidates for closer study, but longevity does not prove profitability. An ad can persist for reasons other than strong performance, and a short promotion can work without running for a long time. The dates show what the library makes visible, not an advertiser’s conversion rate or return.
What Meta’s Ad Library does and does not show
Meta’s API documentation describes fields such as a library ID, creative content, Page name and ID, delivery dates, and where an ad appeared. It also documents additional spend and impression ranges and demographic reach information for social-issue, election, or political ads. For ads delivered to the EU, it documents estimated impression and targeting or reach demographic information, along with beneficiary and payer details. These special transparency fields should not be assumed to apply to ordinary commercial ads. See the Meta Ad Library API documentation.
The public library and the API also have different scopes. Meta describes API searches for social-issue, election, or political ads delivered worldwide during the past seven years, and ads of any type delivered to the EU during the past year. Meta directs people looking for all ads currently running across its technologies to the public Ad Library. API access involves setup requirements, including identity and location confirmation for political-ad access and a Meta for Developers account and app. Do not treat the API as a general-purpose feed of all commercial ads worldwide.
A 2024 policy paper describes public searches by location, category, advertiser, or keyword, saved searches, filters, and additional EU transparency fields. It also reports limitations in the API access process and observed inconsistencies between ads visible in an Instagram feed and their library status. Those are findings from that paper’s 2024 analysis, not a guarantee that every current search is incomplete. Interface behavior and coverage can change; consult Meta’s current documentation when building a process that depends on a specific field.
Can you automate competitor monitoring with the API?
Not as a universal feed of ordinary commercial ads. Meta’s documented Ad Library API scope is limited to specified political or social-issue ads and EU-delivered ads within the documented periods. For current ads across Meta technologies, Meta points users to the public Ad Library. Check the current API documentation for eligibility, access steps, fields, and changes before planning an integration.
For a lightweight team workflow, use a shared spreadsheet or database for observations and saved library references. A browser screenshot can preserve what a page looked like at a particular review, but it does not turn the page into structured ad data, establish historical completeness, or reveal private campaign metrics. Follow Meta’s applicable terms and access requirements; do not assume that automating page access gives you API coverage or permission to collect information beyond what the public library provides.
Troubleshooting
| Problem | Likely cause | What to do |
|---|---|---|
| No ads appear for a known advertiser | Wrong country, category, activity setting, Page identity, or a restrictive filter | Reset filters, confirm the country and category, search the exact Page name, then try a product or brand keyword. |
| The results show the wrong business | Similar Page names or a keyword search returning unrelated advertisers | Open the Page result and verify its identity. Use a focused Page search for the baseline and keep keyword discovery separate. |
| A platform or format seems absent | A platform, media, language, or date filter may be excluding results; interface options may differ | Clear one filter at a time, record the remaining search settings, and compare the broader result set. |
| An ad seen in a feed is not found in the library | Search settings or library visibility may differ; observed library status can be inconsistent with a feed sighting | Try the advertiser’s Page and relevant keywords, broaden filters, and record the feed sighting separately with its date. Do not assume one search proves the ad never existed. |
| The API does not return ordinary competitor ads | The API is not documented as a worldwide commercial-ad archive | Use the public Ad Library for current ads or recheck whether the ad and market fall within the API’s documented scope. |
| A long-running ad disappears | Its status may have changed, or the current filters and library view may not show it | Keep the dated prior observation, repeat the search with broader filters, and describe it as no longer visible in that check. |
| Two reviews are hard to compare | The market, query, category, or filters changed between checks | Restore the baseline search context and log any unavoidable difference beside the new observation. |
Performance, reliability, and cost of the workflow
The manual process costs researcher time rather than API usage: the main recurring work is opening the same searches, recording results, and reviewing changes. Keep the search set focused, save Page and keyword searches, and use a consistent record format to reduce repeated work. If you add screenshots, capture only the pages that help explain an observation instead of treating screenshots as a substitute for your structured notes.
Reliability depends on the scope of the public library and the repeatability of your search conditions. Save dates, filters, and references; preserve previous observations; and treat every review as a snapshot of what was visible under those conditions. The library’s visible information is not a performance report, and ordinary commercial ads do not expose the spend and conversion data needed to calculate profitability.
When a paid monitoring tool helps
A competitor ad monitoring tool or creative swipe file may help when a team needs saved collections, historical records, or research across more than one platform. Confirm the provider’s current data coverage, collection method, export options, price, and program relationship before choosing one. A saved collection can make research easier to organize, but it does not make the underlying ads’ performance or targeting data visible.
Or skip the browser setup
If you want a visual record of a public Ad Library page, ScreenshotNeo can capture a webpage with one GET request. It is a screenshot service, not an Ad Library search engine or structured monitoring feed. A screenshot records the page returned for that request; it does not provide ad spend, conversions, detailed targeting, or historical completeness. See the ScreenshotNeo API documentation for options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://www.facebook.com/ads/library/ -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={
"access_key": "YOUR_API_KEY",
"url": "https://www.facebook.com/ads/library/",
},
timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({
access_key: 'YOUR_API_KEY',
url: 'https://www.facebook.com/ads/library/'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const bytes = new Uint8Array(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', bytes));
Replace YOUR_API_KEY with your key. The API supports PNG, JPEG, WebP, or PDF output and options such as full-page capture, viewport and device presets, waiting for a selector or network idle, custom headers and cookies, and caching. Use only the options needed for the page you can access. Cookie-banner cleanup, popup removal, and other capture options can be turned off individually.
ScreenshotNeo removes known cookie and consent banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. Its response includes page-verdict and billing headers. The MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents. The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots, and every feature is on every plan. These features help capture pages; they do not establish what a competitor’s ads cost or how well they perform.
Sign up for 1,000 free screenshots a month, with no card required.
FAQ
How do I search the Meta Ads Library?
Choose a country and ad category, search for a Page or keyword, then use the available filters to narrow the results. Record the selected country and filters so you can reproduce the search.
How do I find ads that have been running the longest in the Facebook Ads Library?
Record each visible start or delivery date and compare the ads across dated reviews. The library’s visible dates can help identify candidates to study, but longevity alone does not establish profitability or strong performance.
Can I see a competitor’s targeting or budget?
Ordinary commercial-ad views do not reveal detailed targeting, spend, conversions, or return on ad spend. Some additional transparency fields apply to political or social-issue ads and ads delivered in the EU; check Meta’s documentation for the relevant scope.


