You wake up to a Slack alert. ROAS halved overnight. Standup is in 17 minutes and the team will want a reason.
When Facebook ads ROAS drops suddenly, the worst thing you can do is open Ads Manager and start changing things. The second-worst is to pause every campaign before coffee. Both feel productive at 7am. Both add variables to a problem you haven't even confirmed is real.
This is the 15-Minute Triage: a time-boxed sweep designed to answer one question before you touch a single switch - pause, hold, or wait.
Step 1: Minutes 0-3 - Was the ROAS drop real or just noise?
Before you assume the account is broken, confirm the drop is bigger than the normal day-to-day swing of the campaign.
- Pull the campaign's spend and revenue for the last 14 days, day by day.
- Eyeball the variance. If yesterday's ROAS is inside the swing the campaign has been doing all fortnight, this is noise, not a break.
- Confirm yesterday's spend is in the band that delivers a readable result - under your normal daily spend, a single day's ROAS is mostly statistical wobble.
A single day on a $300/day campaign carries enormous variance. One late-firing pixel event, one slow shipping notification, and a 4x ROAS day reads as a 2x day. The drop isn't always a drop. Sometimes it's just the same campaign on a quiet Tuesday.
Step 2: Minutes 3-7 - Read the change log
Real overnight ROAS drops almost always trace to something a human did in the last 48 hours. Pull the account change log and the team calendar for any change that touched the funnel.
- Did a budget jump fire? A +50% step yesterday re-opens the Facebook ads learning phase, and learning-phase results are always uglier than steady-state results.
- Did new creative go live? A fresh ad set on cold delivery prints terrible numbers on day one. That isn't the account breaking - that's a new ad set behaving like a new ad set.
- Did the offer or landing page change? Price update, promo expiry, free-shipping pulled, hero banner swap - any one of these can crater conversion overnight while the ads look identical.
- Did tracking change? A site deploy, a consent banner update, a new cookie policy, a domain switch - anything that touches the pixel or Conversions API can silently halve reported conversions without halving real ones.
If exactly one change shipped in the last 48 hours and ROAS dropped the next day, you almost certainly have your culprit. The fifteen-minute job here is to find the change. The fix comes later, with full attention.
Step 3: Minutes 7-11 - Locate the leak
If nothing changed, the next four minutes are about labelling which layer of the funnel is leaking. You're not fixing it now. You're naming the conversation you'll have at 9am.
| Symptom in the dashboard | Likely layer | What it tells you |
|---|---|---|
| CPM up sharply, CTR holding | Auction / competition | Someone flooded the auction, or you've hit audience saturation |
| CPM flat, CTR falling | Creative fatigue | The ad has been seen too many times - the frequency check confirms |
| CTR holding, CVR collapsed | Offer / landing page | Traffic is fine, the destination broke |
| Reported conversions don't match back-end sales | Tracking | You don't have a ROAS problem, you have a measurement problem |
A clean read of those four rows tells you which conversation you're walking into. If CPMs spiked overnight, the Facebook ads high CPM fix is rarely a same-day move - it usually means revisiting bid strategy or widening the audience, not panic-pausing. If CTR collapsed while CPM held, you've got fatigue and need a fresh concept ready, which is exactly what the question "why are my Facebook ads not converting" looks like when it shows up at 7am instead of over a quiet month.
The dashboard doesn't tell you what to do. It tells you which question to ask before you do anything.
This is the creative-first lens applied under stress: most overnight ROAS drops that are real and not noise come from the ad or the page, not the targeting. Targeting rarely breaks overnight. Creative and pages can break in a single deploy.
Step 4: Minutes 11-15 - Pause, hold, or wait
You have four minutes left. The decision matrix is simple, and the default is to under-react, not over-react.
- Pause only if the drop is large, the daily spend is high enough to matter, AND you've identified the cause - or it's a tracking failure where you're flying blind. Pausing a winner on noise costs more than holding through a soft day.
- Hold if a budget bump, new creative, or recent learning-phase trigger explains the dip. The signal needs 3-7 days to stabilise. Pause at hour 18 of a fresh learning phase and you never find out whether it would have worked.
- Wait one more window if it's a low-spend campaign on a quiet day with no change log and no leak pattern. Set a hard checkpoint for tomorrow morning. If the drop is real, it will still be there. If it was noise, you saved yourself a panic move.
In all three cases, the deliverable is a one-paragraph note in the team channel: what you saw, what you ruled out, what you'll do tomorrow. The note closes the loop. The 15-minute window is over.
What good looks like
A team with this triage doesn't pause campaigns by reflex. They walk the four steps, write a clear note, and either stand the campaign down with a real reason or hold it through the next 24 hours with a checkpoint. Most overnight ROAS drops turn out to be variance, a recent change, or a fatigue signal that was visible a week earlier and got missed. The real answer to why are my Facebook ads not converting almost never lives in a single panicked switch flip, and the so-called Facebook ads high CPM fix at 7am usually only papers over the actual cause.
That last part is the unglamorous job BAVai is built for. The account gets scanned at 7am, the change log gets read, yesterday's variance is compared against the campaign's own 14-day baseline, and the triage note lands in Slack before the team has opened a laptop. The human still decides. The machine just makes sure the right four cells are already on the screen.
When the cause isn't an overnight event at all but a slow degradation that's been building for weeks, the top-down conversion diagnostic takes over from here - same logic, longer window.
The 15-minute checklist
- Spend and revenue for the last 14 days pulled and eyeballed for variance
- Confirmed yesterday's spend is large enough to read as signal, not noise
- Account change log scanned for the last 48 hours (budget, creative, audience)
- Site, offer, and tracking changes checked for the same window
- Four-row symptom read done: CPM, CTR, CVR, back-end reconciliation
- Decision made - pause, hold, or wait - with the reason written down
- One-paragraph note posted to the team before any switch is touched
The point of a 15-minute triage isn't to fix the account. It's to stop you fixing the wrong thing. So next time your dashboard cracks overnight, the question isn't what to change first - it's whether the drop has earned the right to a change at all.
