Why your Meta ads suddenly stopped working: a 7-step diagnostic
When a campaign that was printing money goes flat overnight, the cause is rarely random. Here's the diagnostic sequence to find which of the seven usual suspects broke your account this time.
Something changed yesterday and you can feel it before the dashboard confirms it. The ad set that hit a 3.4 ROAS for six weeks is at 1.1 today. Spend is pacing fine. CPMs look normal. The creative didn't change. Nothing on your end is different, and yet the account is broken.
This is the worst kind of debugging because every instinct says "give it 24 hours" and every operator who has lost a quarter this way will tell you that 24 hours is exactly the wrong answer. Sudden drops are almost never random. They're a signal that one specific thing changed, and the cost of finding it climbs every day you don't.
Below is the sequence we run when a client account goes flat overnight. It takes about 45 minutes end to end and resolves roughly 8 out of 10 cases without needing to talk to support.
Before you start: confirm the drop is real
Half of "sudden drop" emergencies are reporting artifacts. Run these three checks first or you will waste the next hour chasing a phantom.
Check the attribution window. Meta's default 7-day click can swing a one-day view of ROAS by 40% or more depending on weekday seasonality. Compare the affected day to the same weekday two weeks ago, not to yesterday.
Check if pixel events are still firing. Open Events Manager and look at the last 24 hours of Purchase events. If the count is materially below normal, the problem is tracking, not creative. Stop reading this article. Fix the pixel first.
Check the date range in your reporting tool. Triple Whale, Northbeam, and even Ads Manager will quietly recompute attribution windows when you change the date selector. Pull the same range twice in two different sessions. If the numbers move, your reporting layer is the problem.
If the drop survives all three of those checks, it's real. Move into the diagnostic.
The 7-step diagnostic
Work through these in order. The order matters because the cheaper-to-fix causes are listed first and you don't want to be rebuilding a campaign at step 6 when the answer was sitting at step 2.
1. Did the algorithm reset?
Any of the following counts as a reset and forces the algorithm back into learning:
- A budget change greater than 20% in either direction
- A new audience layered onto an existing ad set
- A creative pause and re-activation
- Switching from CBO to ABO or vice versa
- Any edit to the conversion event
Resets don't always show "Learning" on the ad set. Some of them trigger a soft reset that looks identical to a normal active state in the UI. If anyone on the team touched the account in the last 72 hours, ask them what they edited. Don't ask if they edited anything. Ask what.
Fix: revert the change if it's recent. Otherwise, let the ad set run untouched for the full learning window (50 conversions, typically 3 to 7 days) before judging it again.
2. Did the audience size drop?
Open the ad set and look at the estimated audience size. If it shrank by more than 15% from your historical average, the algorithm is now competing for a smaller pool, which inflates CPMs and crushes ROAS. This happens when:
- An interest tag was deprecated by Meta (more common than you'd think)
- A lookalike source audience shrank because Shopify or your CRM lost rows
- A geo exclusion got accidentally widened
- A custom audience expired (180-day default for website visitors)
Fix: rebuild the audience from a current source. If a lookalike was the engine, refresh the seed list this week regardless of whether you ship anything else.
3. Did frequency cross 3.5?
Pull frequency at the ad level for the last 14 days. If your top spender is above 3.5 and trending up, you are watching ad fatigue in real time. We wrote a separate diagnostic for the slower version of this problem: how to diagnose ad fatigue before it tanks your ROAS. The sudden version is the same root cause arriving in compressed form, usually because budget jumped and Meta accelerated delivery.
Fix: pause the highest-frequency ad. Don't wait to launch a replacement first. The lift from removing the fatigued ad alone is often enough to stabilize the ad set within 48 hours.
4. Did a competitor enter the auction?
CPMs in your category can jump 30% in a week when a well-funded competitor starts running aggressive prospecting in your geos. You won't see this in Meta. You'll see it in your own CPMs trending up while your CTR and CVR stay flat.
Fix: there's no fix you can ship today. What you can do is acknowledge that the same creative that won at a $14 CPM is a losing creative at a $22 CPM. The bar moved. Either accept a lower ROAS, narrow the audience, or ship stronger creative. Trying to outbid the new entrant rarely works.
5. Did a piece of creative quietly break?
This is the one that catches the most operators. A creative that was driving 60% of spend gets disapproved (often without a clear notification), or a video's hosted file gets corrupted, or a landing page change broke the pixel match on that specific ad. Spend reallocates automatically to the next-best creative, which is usually 30 to 40% less efficient.
Fix: sort your ads by spend over the last 30 days. Look at the top 3 by spend. For each, check (a) status, (b) policy review notes, (c) does the link still resolve, (d) does the pixel fire on the landing page when you click through. One of these usually shows the problem.
6. Did the creative itself fatigue against the new auction conditions?
This is different from frequency fatigue. The creative didn't get over-exposed. The market got more expensive, and the same creative that worked at a $14 CPM doesn't earn the click at a $22 CPM. The hook that was "good enough" yesterday is now under-performing relative to the new cost-per-attention.
The signal here is a falling CTR with flat frequency. Not rising frequency with falling CTR. Different problem, different fix.
Fix: replace the lowest-CTR creative in the ad set with something that scores higher on Hook and Persuasion. The fastest way to figure out which of your existing creatives qualifies is to score them on the 8 dimensions and rank by composite score. The top one becomes the new control.
7. Did something change off-platform?
Less obvious, often the actual answer. Things that look like a Meta problem but aren't:
- Your checkout page got slower (a 200ms page speed regression can cut conversion 10 to 20%)
- Inventory ran out on the SKU you were driving traffic to
- A coupon expired without anyone noticing
- An iOS update changed your post-click flow
- Your email program paused a welcome sequence that was carrying a third of conversions
Fix: pull the same date range in your e-commerce or CRM platform. If conversion rate on the landing page is down by the same percentage your ROAS dropped, the problem isn't Meta. The ad is still working. The page or the offer underneath it isn't.
What to do once you've found the cause
The most common mistake at this stage is to fix the cause and immediately ship three more changes "while you're in there." Don't. Each additional change costs you a learning reset and obscures whether the fix actually worked.
Make one change. Wait 48 hours. Measure against the pre-drop baseline, not against the worst day. If the metric recovers, you're done. If it doesn't, work back through the list because you found a contributing factor, not the root cause.
The fastest accounts to fix are the ones that resist the urge to "refresh everything." The slowest are the ones where the operator changes the budget, swaps creatives, narrows the audience, and edits the conversion event in the same afternoon.
Building the muscle to catch this faster next time
Most overnight drops don't actually happen overnight. The signal was in the data 3 to 5 days earlier and nobody was looking at the right cut.
Two habits make the next drop easier to catch:
- Weekly creative scoring. Score your top 10 spenders every Monday on the 8 dimensions. Drift in the bottom-quartile creatives is the earliest signal that the auction is getting more expensive for you specifically.
- A frequency alert at 3.0. Don't wait for 3.5. If you have ads above 3.0 going into a weekend, plan the replacement on Friday so you can ship Monday morning.
If you want to run the scoring habit on this week's creative, score it free on Adverdly. You'll get the composite plus the priority fix for each ad, which is enough to decide what to keep, what to replace, and what to retire before next Monday.
The drops you catch in week one are cheap. The ones you catch in week three pay for the whole quarter.