Skip to main content
Audit7 min read

5 Reasons Your Meta Ads Stopped Working

Were you hitting 5x ROAS and now you're at 2x? The 5 specific patterns we see across 200+ contractor Meta accounts when performance suddenly drops — with the exact diagnostic for each.

J
JadenFounder, Elev8 Operations
200+ contractor accounts managed7 min read · Updated 2026-05-10

Your Meta ads were hitting 5x ROAS for 6 months. Then Tuesday morning, performance falls off a cliff. CPL doubles, close rate drops, account manager has no clear answer. Sound familiar? We've debugged this exact pattern 200+ times across contractor accounts. There are 5 specific causes — fixing the wrong one makes things worse.

Reason 1: Creative Fatigue (Most Common — 40% of Cases)

Same creative running 60+ days. Meta's algorithm rewards creative novelty — same audience seeing the same ad 5+ times stops engaging, CTR drops, CPC rises, ROAS collapses.

Diagnostic

  • Check Frequency in Ads Manager for last 7 days
  • If average frequency is 4.0+: you're in fatigue territory
  • If CTR has dropped 30%+ from your 30-day baseline: confirmed fatigue

Fix

  • Launch 2-3 new creative variations within 7 days
  • Kill the lowest-performing creative in your active set
  • Aim for 2-3 ads in active rotation per ad set, not just 1
  • Schedule creative refreshes every 60-90 days going forward
  • Expected recovery: 14-21 days to baseline ROAS

Reason 2: iOS Attribution Loss (30% of Cases — Often Hidden)

If you don't have Conversion API installed, you're losing 30-50% of conversion signal due to Apple's privacy changes. Meta's algorithm optimizes against what it can see — without CAPI, that's the cheapest impressions (worst audiences). Performance silently degrades over months.

Diagnostic

  • Compare Meta's reported conversions vs your CRM-recorded conversions
  • Delta of 30-50% suggests attribution loss
  • Open Meta Events Manager — check if 'Server' shows as event source
  • If only 'Browser' shows: no CAPI installed

Fix

  • Install Meta's Conversion API via Stape, Trackify, or your CRM's native integration
  • Send ALL events server-side (PageView, Lead, Purchase)
  • Verify 'Server' shows as event source within 24-48 hours
  • Expected recovery: 14-21 days to see 30-50% performance restoration

Reason 3: Audience Saturation (15% of Cases)

Running the same Lookalike Audience for 6+ months may have reached most of your addressable audience already. The algorithm is fighting for the remaining 60%, which is harder to convert.

Diagnostic

  • Check Reach % in Ads Manager — if you've reached 40%+ of target audience size, you're saturating
  • CPL slowly rising over months without creative fatigue signs (Frequency under 4.0)
  • Lookalike Audience based on same seed for 6+ months without rebuild

Fix

  • Expand to 3% Lookalike (broader audience)
  • Layer in 5% Lookalike or interest-based audiences as separate ad sets
  • Refresh Custom Audience with newer customer data (rebuild monthly with last-12-months customers)
  • Add a retargeting layer for warm audiences who didn't convert first time
  • Expected recovery: 7-14 days

Reason 4: Seasonality / Market Shift (10% of Cases)

Most contractor trades have seasonal demand. Roofing peaks in storm season + Q4 push. HVAC has dual peaks. Plumbing spikes Q1 (frozen pipes) + Q4 (holiday clogs). If performance dropped at same time of year you're seeing demand soften, it's seasonality — not the ads.

Diagnostic

  • Compare performance drop date to your trade's seasonal pattern
  • If you're outside peak season (e.g., HVAC May-Oct), expect 20-40% CPL increase as natural drop in demand
  • Check Google Trends for your service in your geo — if interest dropped, demand dropped

Fix

  • Switch creative to seasonally-relevant offers (HVAC: spring tune-up specials in March; furnace pre-buy in October)
  • Reduce ad spend 20-30% during deepest seasonal lulls (don't fight the demand wave)
  • Layer in evergreen services that don't have the same seasonal pattern (maintenance plans, financing offers)
  • Pre-position creative 4-6 weeks BEFORE seasonal demand spikes

Reason 5: Account-Level Issue (5% of Cases — Catastrophic When It Hits)

Sometimes Meta flags your account for review (ad-policy violations like 'free' language, financing claims, weight-loss adjacent content). Account flags suppress ALL your delivery until resolved.

Diagnostic

  • Check Account Quality in Business Manager
  • Look for 'Restrictions' section
  • If account quality score is 'Poor' or specific ads are flagged: you've got an account-level problem

Fix

  • Review the Account Quality dashboard for specific restrictions
  • Submit appeal if restrictions exist (most are reversible if you remove the policy-violating element)
  • Audit recent ads for policy issues: 'free' claims, before/after weight-loss imagery, financing without proper disclaimers
  • Replace any flagged creative with policy-compliant variations
  • Recovery time: 7-30 days after appeal resolution

The 5-Minute Diagnostic Flowchart

  • Step 1: Check creative ages. Any over 60 days? → Reason 1 (creative fatigue)
  • Step 2: Is Conversion API installed? → No: Reason 2 (iOS attribution)
  • Step 3: Check audience reach %. Over 40%? → Reason 3 (saturation)
  • Step 4: Is performance drop seasonal? → Reason 4 (seasonality)
  • Step 5: Check Account Quality. Any restrictions? → Reason 5 (account flag)

Most performance drops are Reason 1 (creative fatigue) or Reason 2 (iOS attribution loss without CAPI installed). Together they cover ~70% of cases. If you're stumped, fix those two first.

Share
7 min read · Updated 2026-05-10

Frequent Questions. Short Answers.

Most common causes ranked: (1) creative fatigue at 60+ days of same creative — 40% of cases; (2) iOS attribution loss without Conversion API installed — 30% of cases; (3) audience saturation after 6+ months on same Lookalike — 15% of cases; (4) seasonality / natural demand drop — 10% of cases; (5) account-level policy issue or flag — 5% of cases. Run the 5-minute diagnostic to identify yours before changing anything.

Depends on the cause. Creative fatigue: 14-21 days after launching fresh creative. iOS attribution: 14-21 days after CAPI installation. Audience saturation: 7-14 days after expanding to wider audiences. Seasonality: until next peak season. Account-level issues: 7-30 days after appeal resolution. If you've made the right fix and 30+ days have passed without recovery, your diagnosis was wrong — re-run the 5-minute diagnostic.

Almost never. Pausing then restarting triggers a learning reset which makes things worse (CPL spikes 30-50% during the 7-14 day relearning phase). Better: leave campaigns running while you diagnose + fix. The exception: if you've identified a major creative or landing page problem, pausing for 24-48 hours to fix is fine. Avoid 7+ day pauses — they require Meta to relearn your audience from scratch.

Creative fatigue: same audience seeing same ad too many times (high frequency, dropping CTR). Fix: launch new creative. Audience saturation: you've reached most of your addressable audience already. Fix: expand to wider Lookalike % or new audiences. Diagnostic: if Frequency is 4.0+ AND CTR is dropping, it's fatigue. If Reach % is 40%+ AND CPL is rising slowly without CTR drop, it's saturation. They often happen together — if both are present, fix creative first (it's faster + cheaper).

Three signals: (1) open Meta Events Manager — your conversion events should show 'Server' or 'Both' as event source (not just 'Browser'); (2) compare Meta-reported conversions vs CRM-recorded conversions — delta should be under 15% (was 30-50% before CAPI); (3) check Event Match Quality score in Events Manager — should be 6.0+ with CAPI properly configured. If any of these are wrong, CAPI is installed but mis-configured — common issues: missing required parameters (email/phone hashed, IP address, user agent), wrong event names, deduplication failures.

Want Us to Do It For You?

Book a free 30-minute strategy call. We'll apply everything in this guide to your business, for free.

Book My Free Strategy Call