The Weekly Meta Account-Health Audit Every Operator Runs
Most account problems don’t announce themselves. A pixel quietly stops deduplicating, a card declines on a Sunday, one ad gets a soft policy flag, and delivery starves for four days before anyone notices the revenue dent. By then the fault isn’t a five-minute fix — it’s a recovery project. A weekly meta ads account health audit exists to catch those faults while they’re still cheap, in the window where a single toggle solves what a week of compounding will not.
The discipline that makes this work is order. You don’t scan the account randomly — you walk it top-down, from the layers that can silently void everything beneath them to the layers that merely need tuning. Five layers, same sequence every week: integrity, payments, delivery, signal, learning. An agentic operator runs this pass continuously; a human operator runs it every Monday in twenty minutes.
For the surrounding account decisions, compare Bach.ai vs Triple Whale: Which Tool Actually Runs Your Meta Ads? and use Account Health Before Blame: The Meta Ads Diagnostic Tree as the next diagnostic.
Why order beats coverage
Each layer sits upstream of the next. A restricted asset makes your delivery analysis meaningless. A failed payment throttles the spend you’re about to “optimize.” A broken signal layer corrupts the very numbers you’d use to judge learning. If you start at the bottom — staring at ROAS and CPA — you’ll misread a plumbing failure as a performance failure and “fix” it by killing healthy campaigns. Most panic budget cuts are misdiagnosed upstream faults. Walking the layers in causal order means every check you run sits on a foundation you’ve already verified.
Layer 1: Integrity
Start where the platform can shut you down without warning.
- Account and asset status. Confirm the ad account, Business asset, and Page are all active and unrestricted. A restriction at the account level halts everything; one at the asset level can starve a single campaign while the rest run fine, which is harder to spot.
- Ad-level disapprovals and soft flags. Filter for rejected and limited ads. A “limited” status isn’t a full stop, but it suppresses reach quietly — the campaign keeps spending while delivery narrows.
- Recently edited assets. Anything touched in the last week is the plausibly thing to have broken. New creative, a swapped landing URL, an edited Page — these are where fresh policy flags hide.
The cheap-fault signature here is a single disapproved ad inside an otherwise healthy ad set. Left alone, it drags the ad set’s delivery; caught early, it’s a resubmit.
Layer 2: Payments
This is the most underrated layer because it has nothing to do with marketing skill and everything to do with revenue.
- Funding instrument health. Check that the primary payment method is valid and not near expiry. An expired card doesn’t generate a campaign alert you’ll naturally see — it generates a delivery cliff.
- Spend cap and threshold posture. If you run on a billing threshold, a recent threshold reset or an account-spend-limit you set months ago can quietly cap delivery mid-period.
- Failed-charge history. A declined charge can pause delivery account-wide until it clears. The campaigns look “paused for no reason” — but the reason is in billing, not in the ad sets.
Payments faults are the purest example of cheap-while-early. A card you update on Monday costs nothing. The same card discovered Thursday cost you three days of your best-performing window and a learning reset on top.
Layer 3: Delivery
Now — and only now — you look at whether spend is actually flowing the way you intend.
- Spend pacing. Compare planned versus actual spend per campaign. Persistent under-delivery points upstream (integrity or payments) or to an auction problem: bid caps too tight, audiences too narrow, budgets stranded in fragmented ad sets.
- Budget concentration. Check that money is sitting where intent is. Fragmentation across many small ad sets splits your conversion signal and keeps everything perpetually under-optimized.
- Frequency. Rising frequency on prospecting is an early fatigue signal long before CTR collapses. Treat a creeping frequency as a leading indicator and rotate creative before performance decays, not after.
- Auction overlap. Multiple ad sets chasing the same audience bid against you. If pacing is fine but efficiency is soft, self-competition is a common, invisible culprit.
The discipline: delivery is where most operators want to start. By arriving here third, every anomaly you find is genuinely a delivery problem, not a symptom of something you skipped.
Layer 4: Signal
Optimization is only as good as the events you feed the auction. This layer audits the data, not the ads.
- Event freshness and volume. Confirm your key optimization events are still firing at expected volume. A silent drop — a tag removed in a site deploy, a checkout flow change — looks identical to “demand fell.” It isn’t.
- Server-side and browser deduplication. If you run both browser and server events, verify they’re deduplicating cleanly. Double-counting inflates reported results and quietly mistrains delivery toward the wrong people.
- Event match quality. Weak match quality erodes attribution and optimization precision. It seldom breaks loudly; it just slowly makes every campaign dumber.
- Attribution-window drift. Make sure you’re reading results on a consistent window. A window change makes a flat account look like a swing.
Signal faults are insidious because the dashboard still shows numbers — just wrong ones. This is the layer where Bach earns its keep, watching event integrity continuously so a broken tag surfaces as a flagged anomaly instead of a month of corrupted decisions. (It surfaces the finding for your approval; it doesn’t act on its own.)
Layer 5: Learning
Last, judge performance — because now you can trust the inputs.
- Learning-phase status. Note which ad sets are still learning versus stable. Meta needs enough recent optimization-event signal to exit the learning phase; as a planning range, think on the order of dozens of conversions per ad set per week, not a precise quota. Ad sets that never accumulate enough signal stay volatile forever.
- Edit-triggered resets. Significant edits re-enter learning. If someone’s been tweaking budgets daily, you’re paying a perpetual learning tax. Check the recent-edit log against unstable ad sets.
- Efficiency against margin, not vanity ROAS. Read CPA against contribution margin and account-level efficiency (MER), not platform-reported ROAS in isolation. A campaign can post a flattering on-platform number while losing money once you account for blended efficiency.
- Patience guardrail. Resist judging anything that hasn’t cleared learning and a full attribution window. Killing an ad set mid-learning is the most expensive “optimization” there is.
Run it as a checklist
The point of a fixed sequence is that it becomes muscle memory and survives a busy week. Keep it to one pass:
| Layer | You’re confirming | Cheap-fault signature |
|---|---|---|
| Integrity | Nothing is restricted or disapproved | One limited ad starving an ad set |
| Payments | Money can actually flow | Expired card → delivery cliff |
| Delivery | Spend pacing matches intent | Auction overlap eroding efficiency |
| Signal | Events fire and dedupe correctly | Silent tag drop read as lost demand |
| Learning | Performance judged on trusted inputs | Daily edits causing endless resets |
The takeaway
A weekly meta ads account health audit is not a performance review — it’s preventive maintenance. The faults that quietly bleed accounts are almost never sophisticated; they’re an expired card, a disapproved ad, a dropped event, a budget split too thin. They’re cheap on Monday and expensive on Friday. Walk the five layers in order, top-down, so every check stands on verified ground beneath it. Twenty minutes a week, the same sequence every time, and you stop discovering problems in your revenue and start catching them in your audit.