8 Signs Your Meta Ad Account Will Be Restricted
Meta doesn't usually wake up one morning and decide to restrict your ad account out of nowhere. What actually happens is more gradual: a handful of measurable signals degrade over days or weeks, nobody catches them in time, and then the restriction notice arrives and everyone scrambles.
I know this because it happened to me. My own Business Manager went down on a Friday evening. When I dug back through the data afterward, the signals were all there — spend anomalies, a ROAS that had quietly fallen through the floor, campaigns sitting at zero delivery for two days straight. I just hadn't been watching closely enough. That experience is partly why I built Account Shield — eight specific rules that run continuously and fire the moment something looks wrong.
This article walks through all eight. Each one is a real signal, with a real threshold, that consistently shows up before accounts get restricted or throttled. None of this is theoretical. If you want more background on why Meta restricts accounts in the first place, the why accounts get disabled piece covers the policy side in detail.
The eight signals
1. SPEND_SPIKE — yesterday's spend more than 2x the 7-day daily average
This one fires when yesterday's spend was more than double your 7-day daily average. It sounds like a good problem to have — more spend means more scale, right? — but in practice a sudden 2x jump almost always means one of a few bad things: a budget cap got accidentally removed, a bid strategy went off the rails, or an automated rule fired at the wrong time.
What it predicts: Meta flags accounts with erratic spend patterns. If your billing history shows stable charges and then suddenly doubles overnight, that puts your payment method under scrutiny. Spend spikes also strain credit limits in ways that can trigger payment failures, and payment failures are one of the faster paths to account restriction. Catch this the morning it happens, not a week later when the invoice arrives.
2. ROAS_COLLAPSE — ROAS dropped more than 50% day-over-day and is now below 1.0
Two conditions have to be true at once: the drop has to be more than 50% from the prior day, and the resulting ROAS has to be under 1.0. That second part matters. A drop from 8.0 to 3.5 is a bad day; a drop from 1.8 to 0.7 is a different kind of problem.
Below 1.0 means you're losing money on every conversion. That sometimes happens because a creative broke. More often it happens because a landing page stopped loading properly, the checkout flow broke, or — and this is the one that stings — the landing page itself got flagged for a policy issue and Meta quietly reduced delivery to it. When ROAS collapses alongside a delivery drop, that combination is a strong pre-restriction signal. Don't just pause and relaunch; check the landing page policy status first via theMeta Business Help Center.
3. SPEND_DROP — yesterday's spend under 30% of the 7-day daily average
The opposite of a spike, but equally worth flagging. If your account was spending $1,000/day on average and yesterday it spent $280, something is throttling delivery. The 30% threshold is the trigger.
The causes vary. A rejected payment is the most common culprit — Meta will silently reduce delivery before it fully suspends the account, so the spend drop is often the first visible sign. It can also mean a campaign entered a "limited" learning state, an audience became too small after an iOS update reshuffled match rates, or the account hit an undisclosed delivery limit. Any of these warrant a look before they compound into something worse.
4. ZERO_DELIVERY — an active campaign with 0 impressions for 2 consecutive days
This is the one that surprises people most. A campaign shows as Active in Ads Manager. The budget is there. The ads are approved. But it has served zero impressions for two full days.
This is a classic pre-restriction signal. Meta sometimes places accounts in a restricted delivery state before issuing a formal notice — ads keep showing as Active, but they're not running. It can also mean the account hit a delivery cap it wasn't aware of, or that the campaign is stuck in a learning phase it can't exit due to low conversion volume. Two days of zero impressions on an active campaign is not a glitch. It needs investigation.
5. CTR_DROP — CTR fell more than 40% day-over-day on an active campaign
A 40% single-day drop in click-through rate is not normal creative fatigue. Normal fatigue is a slow grind over weeks. A 40% cliff in one day usually means the ad got a quality or relevance flag, or the audience changed in a way that made the creative suddenly irrelevant to who's actually seeing it.
Why does this precede restrictions? Meta's algorithm uses engagement signals to assess ad quality. A sustained low CTR after a sharp drop can lower your account's overall quality score, which affects delivery costs and — at the extreme end — can contribute to the kind of "poor ad quality" flags that sometimes appear in restriction notices. The threshold of 40% day-over-day is intentionally aggressive; smaller drops get filtered out as noise.
6. CONVERSION_DROP — conversions fell more than 50% day-over-day on an active campaign
Similar structure to the CTR rule — more than 50% drop, single day. Spend can stay flat or even rise while conversions collapse, which is a particularly expensive situation to miss.
The most common causes: pixel fires broke (someone pushed a code change that removed the event tag), the checkout page returned a 500 error for a few hours, or the landing page URL changed and Meta's tracking lost continuity. The policy-related cause is less obvious but worth knowing: if Meta determines that your conversion events are being fired misleadingly — for example, a purchase event firing before actual payment confirmation — that can trigger a review. A sudden conversion drop can be the first sign that's happening.
7. HIGH_FREQUENCY — 3-day average ad frequency above 3.5
Frequency above 3.5 over a three-day window means the same people are seeing your ads repeatedly in a short period. The number 3.5 is the threshold; accounts that run tight retargeting audiences with uncapped reach often hit this without realizing it.
High frequency drives negative feedback — the hide-this-ad and this-is-spam responses that accumulate in your account's quality history. Meta tracks these. A pattern of high negative feedback erodes your Account Quality score over time, and Account Quality is one of the factors Meta explicitly considers when evaluating accounts for restrictions. This one is slower-moving than a payment failure, but accounts with consistently high frequency scores tend to be more fragile when something else goes wrong.
8. BUDGET_EXHAUSTION — a campaign has spent 90% or more of its lifetime budget
This is the quietest of the eight, rated Info rather than Warning or Critical. A campaign that has burned through 90% of its lifetime budget is about to stop delivering abruptly. That's it. No policy issue, no algorithm problem.
The reason it matters is that abrupt delivery cliffs look like restrictions when you're not expecting them. An agency managing 30+ campaigns for a client will miss this routinely without automation. The campaign just goes dark, the client sees spend drop to zero, and the first assumption is that something is wrong with the account. Often nothing is wrong — the budget just ran out. Catching it at 90% gives you time to top it up or consciously choose to let it expire, instead of discovering it after the fact on a Monday morning call.
What to actually do when one fires
Knowing the signals is only useful if you act on them quickly. Most of these rules are most valuable in the first few hours after they fire. A SPEND_SPIKE caught at 7am can be paused before it doubles your monthly bill. A ZERO_DELIVERY catch on day two can be escalated before it becomes a formal restriction. Waiting until you do a weekly account review makes almost all of these harder to resolve.
The other thing worth saying: these signals almost never arrive alone. ROAS_COLLAPSE and CONVERSION_DROP firing the same morning is a much louder alarm than either one alone. SPEND_DROP alongside ZERO_DELIVERY on a campaign that was fine yesterday points to something at the account level, not the campaign level. When multiple rules fire at once, the combination matters more than any individual threshold.
For agencies managing multiple accounts, the challenge is coverage. You can't manually check all eight signals across ten client accounts every day. That's the problem Account Shield was built to solve — it runs these checks continuously and sends an alert the moment a rule fires, so you find out when it matters rather than after the damage is done.
If you want to put these rules to work on your accounts, you can start a trial and have monitoring running within a few minutes of connecting your Meta accounts.