competitive-intelligence · 7 min read

How to spy on your competitor's ads on Meta Ad Library — a 10-minute weekly workflow

Last updated: May 2026

Fast answer

Go to facebook.com/ads/library, set the country filter to the European Union, type the competitor's Facebook page name into the search box, and read the captions of every ad that has been active 30 or more days. That last filter — "active 30+ days" — eliminates 80 percent of the noise because Meta does not let ads with poor performance run for that long. The whole workflow takes 10 minutes per week per competitor and the data is the same data Meta would charge you to use through a paid API.

Why the European Union setting is the key

Meta publishes ALL ads active in the European Union under the Digital Services Act — a legal requirement, not a courtesy. For the rest of the world, the library shows a SUBSET of ads, weighted toward political content and large advertisers. If you run the search with no country filter, you get noise: dormant ads, fragments, low-volume tests.

Setting the country to "European Union" specifically (not Spain, not Germany — the umbrella region) returns the complete advertiser library that the Digital Services Act covers. For a Spanish operator targeting a Spanish competitor, this is the highest-fidelity surface that exists, paid or unpaid.

For competitors targeting only the United States, only Latin America, or only Asia, this approach degrades. The library will show the EU subset of their ads, which may not be representative. At that stage, paid tools like Pipiads or Adspy that supplement non-EU data with their own scraping become worth the EUR 99 to EUR 299 monthly cost — see our Meta Ad Library vs Pipiads vs CW Ops comparison for when the maths shifts.

The 10-minute weekly workflow

Step 1 — Identify the 3 to 5 competitors that matter

Not 10. Not 20. The point is to read every ad they ran in the past 30 days, which means each competitor on your list adds 2 to 3 minutes of reading time. Five is the practical ceiling. Choose the three based on:

  • Direct overlap. Same product category, same price range, same target ICP.
  • Aspirational benchmark. One competitor that is doing the thing you are trying to do, but better — to see what direction the niche is moving.
  • Wild-card. One adjacent advertiser whose creative might leak into your niche next.

If you do not yet have your list of three, default to the three most-followed Facebook pages in your category. You can refine later.

Step 2 — Search and lock the filters

In Meta Ad Library, the search box at the top accepts either an advertiser name or a Facebook page URL. The Facebook URL approach is more precise — multiple pages can share a brand name.

Once results load, lock these filters:

  • Country: European Union.
  • Ad category: All ads.
  • Active status: All.
  • Languages: All.
  • Platforms: Facebook, Instagram, Audience Network, Messenger. (Leave all four checked.)

The "active 30+ days" filter is NOT in the side panel — it is implicit in the "Active period" data point on each ad card. You filter manually by reading the active period below each ad.

Step 3 — Read the captions, not the videos

This is the highest-leverage shift in the workflow. Watching every video for every competitor takes 60 minutes per session and most of the signal is NOT in the video — it is in the caption.

The caption tells you:

  • The HOOK structure (the first sentence the user reads — the highest signal).
  • The OFFER framing (price anchor, scarcity device, social proof type).
  • The CALL TO ACTION pattern (shop now, comment for link, DM to claim, etc.).
  • The TARGETING language (demographic implications in tone, slang, references).

The video tells you the visual execution — important if you are also producing the creative, less important if you are buying it or hiring a creator. For most operators, the caption is 80 percent of the actionable intelligence at 20 percent of the time cost.

Step 4 — Tag every "active 30+ days" ad

Below each ad card, Meta shows the "Active period" — a date range. Any ad whose active period exceeds 30 days is a HIGH-SIGNAL ad. The bar for an ad to run that long is that Meta's optimisation engine decided it converts above the click-through-rate threshold for its objective. Meta does not waste money on ads that do not perform.

Specifically, you are looking for:

  • 45+ days active. This is a top-decile creative for the advertiser. Copy the caption structure, the offer framing, the CTA.
  • 30 to 44 days active. Solid performer. Worth noting the hook structure.
  • 15 to 29 days active. Mid-tier. Read for patterns but do not over-weight.
  • Under 15 days active. Either a test the advertiser is running or a creative they will pause. Low signal unless you are sampling for fresh ideas.

Step 5 — Note the patterns, not the words

The output of the 10-minute read is NOT a list of captions to copy. It is a 3-line note per competitor that captures the PATTERN. Examples from a recent skincare read:

  • "Competitor A — week 3 in a row using 'Comment NUMBER for link' as primary CTA. Pattern persisting; consider testing."
  • "Competitor B — pivoted from before-after to dermatologist-quote framing last 14 days. Trend signal."
  • "Competitor C — testing 4 product-bundle variants concurrently. Pre-launch behaviour, watch for a campaign."

Three lines per competitor times five competitors = 15 lines per week. After 12 weeks you have a notebook of 180 pattern observations indexed by competitor and week. That is the actual asset the workflow produces — the captions themselves are a starting point, the pattern memory is the compounding value.

What the workflow does NOT do

It does not predict next week. The Meta Ad Library shows you what HAS run, not what WILL run. Saturation kills hooks within 7 to 14 days of going mainstream — by the time three competitors are using the same pattern in the same week, the window to be early on that pattern is closing.

It does not estimate spend. Meta hides budget data in the public library. If you need spend ranges, you need either the Meta Reporting Beta (which Meta enrolls advertisers in selectively) or a paid tool that estimates spend through impression-data triangulation.

It does not give you the on-site signal. Knowing a competitor is running a video ad is one data point. Knowing they are also redirecting to a specific landing page variant, running a specific email capture form, and shipping a specific email sequence — that is the OPERATIONAL intelligence, and Meta Ad Library cannot see it. For that you need to actually buy something from the competitor (the highest-fidelity operational research) or use a tool with on-site signal coverage.

Combine with the niche-level read

The 10-minute competitor workflow tells you what specific advertisers are doing this week. It does not tell you what the WHOLE NICHE is doing — which hook structure is dominating across 50 unrelated advertisers, which emotional trigger has the highest persistence across the category. That is the gap that CommonWealth Ops fills, for fitness, skincare, supplements, home goods, and apparel niches: the weekly intelligence digest that reads the whole niche, not just the competitors you watch.

The two views compound. Watch your 5 competitors weekly with this manual workflow; read the niche digest weekly for the broader signal. You will know within 6 weeks whether a hook your competitors are testing is a niche-wide trend or a competitor-specific experiment — and that single distinction is worth more than any specific creative idea.

Frequently asked questions

Is reading a competitor's Meta Ad Library legal?
Yes. Meta is required by the European Union Digital Services Act to publish every ad active in the European Union. The library is a public surface, no account is needed, and the data is intended for exactly this purpose — competitive transparency. The page that publishes the ads consented to publishing them when they ran them.
How often should I run this workflow?
Once per week, same day each week. The cadence matters more than the frequency. The point of the workflow is to spot creative patterns that persist for 2 to 4 weeks — a daily read gives you noise, a monthly read makes you miss the window. Weekly is the right granularity.
What if the competitor has no recent ads in the library?
Two possibilities. Either they paused their ad spend (interesting signal in itself — track when they resume) or they are advertising exclusively outside the European Union and the library only shows EU-active ads. For non-EU competitors, the library is incomplete and the workflow's value drops. Pair it with a paid tool only at that stage.
Can I do the same thing for TikTok?
TikTok publishes the Creative Center which is the equivalent surface but with a different shape — see our separate guide on reading TikTok Ads Library in 10 minutes. The workflow is similar but the filters differ; do not assume the Meta workflow transfers without adjustment.
Does CW Ops replace this workflow?
No, it compounds with it. Run this 10-minute weekly read for your top 3 to 5 competitors, then read the CW Ops weekly intelligence digest for the broader niche pattern. The competitor read tells you what specific competitors are testing; the niche read tells you what is working across the whole category. Both are useful, neither replaces the other.

Become an operator

Stop guessing what to sell.

CommonWealth Ops turns your market's competitor activity into ranked, data-backed intelligence — and protects your capital before you spend a euro on ads. EUR 49/mo + 20% of net profit. No free trial: skin in the game both ways.

Join the waitlist
See pricingReal and aspirational stories
Written by Jacobo López · Founder, CommonWealth Ops

← All posts