Most contractors pay $99–$300/month for ad spy tools that ultimately scrape one source: the Meta Ad Library. The Library itself is free, public, requires no login, and shows every active Facebook + Instagram ad on the planet. If you spend 30 minutes a week here, you'll out-research every competitor in your market — without paying for a single SaaS subscription.
This guide is the actual contractor workflow: how to get to the Library, the exact filters that surface winning ads, what to extract from each ad you find, and how to build a swipe file that actually improves your creative ROAS. Plus the ethical line you should not cross.
What the Meta Ad Library actually is
Meta launched the Ad Library in 2019 in response to the Cambridge Analytica fallout. By law (in the EU + several US states), every Facebook + Instagram ad must be publicly searchable while it's running. The Library is Meta's compliance layer — but for contractors, it's the most powerful free competitive-research tool ever built.
What you can see for every active ad
- Full ad creative (image, video, carousel — exact files)
- Primary text, headline, description, CTA button label
- Advertiser's Facebook Page name
- Which platforms the ad runs on (Facebook, Instagram, Messenger, Threads, WhatsApp)
- Start date — i.e. how long the ad has been live
- All A/B variations the advertiser is currently testing
- Active vs inactive status
What you CAN'T see (and why it matters)
- Audience targeting (interests, demographics, lookalikes) — Meta hides this
- Spend amount or daily budget
- Performance metrics (CTR, CPM, CPL, ROAS)
- Whether the ad is profitable — longevity is the only proxy
- Landing page conversion rates — you have to click through to estimate
The Library is creative-forward, not performance-forward. You see what they're saying — you don't see if it's working. Use ad longevity as your proxy: 7+ days = probably working, 30+ days = almost certainly a winner, 90+ days = bulletproof creative your competitor would never kill.
Step 1 — Access (the URL most contractors don't know)
Go to facebook.com/ads/library. No login required. No Facebook account needed. No payment. Set your country to United States, then either search by competitor name OR by keyword. Both modes are powerful — use them differently.
Step 2 — Search by competitor name (the 80% workflow)
Type your direct competitor's company name into the search bar. Their Facebook Page should appear. Click it. You'll see every active ad they're currently running across Meta's platforms.
What to look for in each competitor result
- Ad count — how many active ads are they running? More than 5 means they're testing aggressively. 1–2 means they're just maintaining presence.
- Variation patterns — are they running 4 versions of the same headline with different CTAs? They're A/B testing copy. 4 versions of the same copy with different images? Testing creative.
- Start dates — sort by oldest first to find their longest-running ads. Anything 60+ days old is their proven winner.
- Format mix — are they running mostly video, mostly static image, or carousels? That tells you what's working in your geography.
- Landing pages — click the CTA. Where does the ad send traffic? A bare phone-call CTA? A full quote-request landing page? A booking calendar? That's the funnel they're optimizing.
Step 3 — Search by keyword (the high-leverage 20% workflow)
Switch the search type from 'Advertiser name' to 'Keyword.' Now you can find EVERY ad currently running that contains a phrase. This is where most contractors miss the biggest insights.
Example keyword searches for home-service contractors
Step 4 — Apply the right filters (most miss these)
The Filter button next to the search bar is where the real intelligence happens. Most contractors skip it. Don't.
Filters that change what you see
- Country: set to United States (default), or narrow to your specific service-area state if your competitor runs national + local ads.
- Platform: Facebook, Instagram, Messenger, Threads, WhatsApp. Filter to Instagram-only to see ads optimized for visual feed (different from typical Facebook native).
- Media type: All / Image / Video / No image or video. Filter to Video to find owner-on-camera testimonial ads — the highest-converting format for contractors in 2026.
- Active status: Active / Inactive. Inactive ads are either out of budget OR were killed by the advertiser. If a competitor has 90% inactive ads in their library, they're testing fast and killing losers — a sign of an experienced advertiser.
- Ad delivery period: shows you exactly how long each ad has been running. The single most important data point in the Library.
Meta added a 'Low Impression Count' badge in December 2025. Ads with this badge reached fewer than 100 people — meaning they were either just launched OR running on a tiny budget. Skip these for inspiration: a winning ad gets meaningful impressions, badge or no badge.
Step 5 — What to extract from every winning ad you find
When you find an ad that's been live 30+ days from a top-performing competitor, don't just screenshot and move on. Reverse-engineer it. Every winning ad teaches you 5 things.
Step 6 — Build a swipe file that actually improves ROAS
A swipe file is a curated database of ads you reference when building your own creative. Done right, it's the single highest-leverage asset in your marketing. Done wrong, it's a folder of screenshots you never look at again.
What works for contractors in 2026
- Use Notion or Airtable, not Google Drive. You need filterable metadata — file folders don't have that.
- Tag every ad you save with: trade (roofing/HVAC/plumbing), funnel stage (awareness / consideration / conversion), hook type (problem / solution / social-proof / financial), format (static / video / carousel), longevity (7d / 30d / 90d+).
- Note the page admin's date the ad started — track 'still running 60 days later' as a separate flag.
- Save the actual creative files (right-click image → save / record video on screen) — Meta has been known to remove old creatives over time.
- Add a one-line 'why I saved this' field. 6 months from now you won't remember.
Free Chrome extensions that streamline saving
- Denote — one-click save from any Facebook ad page directly into a Notion / Airtable database
- Foreplay — paid swipe-file tool, but free tier covers basic saving from Meta + TikTok + LinkedIn
- Native screenshot tools — works fine if you're disciplined about metadata tagging
The ethical line — inspire, never copy
Meta Ad Library access does not give you license to copy competitor creative. Stealing exact copy or visual layouts gets ads rejected (Meta's image-recognition systems will flag duplicates), creates legal exposure on copyrighted images, and kills your differentiation in the local market.
What's fair game
- Hook patterns — 'Here's what most homeowners don't know about [X]' is a structural pattern, not protected creative
- Offer structures — '0% financing for 24 months on installs over $5k' is a commercial term, not protected creative
- CTA patterns — 'Get your free roof inspection' is a generic phrase
- Social-proof formats — showing your Google rating + review count is a UI pattern
- Format choice — 'before/after carousel' is a format, not a creative
What's NOT fair game
- Exact copy — copying primary text or headlines verbatim
- Stock or copyrighted images they're using — assume everything in a competitor ad is licensed only to them
- Customer photos / testimonial videos — never reuse another contractor's actual customers
- Trademarked phrases or slogans — even local trade names can be trademarked
- Brand colors / logo treatments — visual identity is protected
The mental model that wins: extract the principle, apply it with your own materials. If a competitor's hook is 'We replaced 47 roofs in [your city] this month,' your version becomes 'We just installed 31 new HVAC systems in [your city] in the last 4 weeks.' Same hook structure, completely different specific facts. Your version is original. Theirs informed yours.
The 30-minute weekly workflow that beats paid spy tools
The contractors who actually maintain a useful swipe file have a fixed weekly cadence. Ours:
- Mon 9:00am — Open Meta Ad Library, search top 5 direct competitors by name. Note which ads are new this week vs which have been running 30+ days.
- Mon 9:15am — Run 3 keyword searches: your top service + 'free,' your top service + 'financing,' your top service + your city. Save any ad running 30+ days.
- Mon 9:30am — Tag everything you saved in your swipe file. Add the 'why' field for each.
- End of month — review the swipe file. Pick 2 hook patterns + 2 offer structures from competitor winners. Build new creative variations using your own materials.
- Quarterly — audit which competitors stopped advertising entirely vs which doubled down. The ones spending more in your zip code = your real competitive set.
Bonus — what to do when YOUR ads show up in a competitor's swipe file
If you're winning, your competitors will copy you. Three defenses:
- Refresh creative every 60–90 days even if it's still working — kills any copy-cat advantage and beats Meta's creative fatigue penalty.
- Lead with proof that's hard to fake — your actual Google rating, your actual customer count, your actual photos. Generic copy can be copied; your specific results cannot.
- Build a brand asset — owner-on-camera videos of YOU. Competitors can't copy your face. Owner-led creative consistently beats stock-feeling agency creative on Meta.