Revenue Leaks in Meta Ads10 min read

How to audit a Meta Ads account in 10 minutes

By Santosh Valisetti

Quick answer

A 10-minute Meta Ads audit walks through six checks in order: account health (spend cap, page connection, billing), top-level ROAS trend (last 7 vs 28 days), frequency by ad set (anything >4.5 is a leak), CPM trend, conversion event quality, and attribution window comparison. Each takes 90 seconds in Ads Manager. The output is a prioritised list of leaks ranked by $-impact.

The setup (one-time, 2 minutes)

Open Meta Ads Manager. Switch to the Ad Set level. Add these five columns: Frequency, Quality Ranking, CTR (link click-through rate), CPM, Cost Per Result. Save as a custom view called "Audit". Set date range to Last 7 days with a second window comparing Previous 7 days.

These five columns + the comparison window are what the following six checks read. Default Meta views hide the columns that matter most for diagnostics.

Check 1 — Account health (90 sec)

Navigate to Business Settings → Ad Accounts → your account. Look at:

  • Status — Active, not Disabled / Restricted / Unsettled.
  • Spend cap — is one set, and is it the cap you intended?
  • Payment method — primary not expired, no recent failed charges.
  • Page connection — the Facebook Page is attached.
  • Account age — for context when reading benchmarks.

Why it matters: A spend cap set too low silently halts delivery mid-campaign. A disconnected Page disqualifies your ads from many placements. We have seen brands lose 30% of intended spend to a $200 spend cap from 2021 nobody remembered setting.

Check 2 — Top-level ROAS trend (90 sec)

Read trailing-7-day ROAS and trailing-28-day ROAS side by side.

  • If 7d > 28d × 1.1 → improving trend, scale candidate
  • If 7d ≈ 28d (±10%) → stable, no action needed
  • If 7d < 28d × 0.75 → regression, leak somewhere — continue to Check 3

Always compare against your category benchmark (see our D2C ROAS benchmarks). A "stable" 1.8 ROAS on a 12-month-old apparel account is a leak even though it's stable.

Check 3 — Frequency by ad set (2 min)

Sort your ad set list by Frequency descending. Anything above 4.5 is in or near saturation territory.

FrequencyRead asAction
< 2.0HealthyNo action
2.0 – 3.5Normal rangeNo action; watch trend
3.5 – 4.5Approaching saturationRefresh creative this week
> 4.5SaturatedPause or refresh now

Check 4 — CPM trend (90 sec)

Read 7d CPM vs 28d CPM. CPM up >15% with everything else flat means either: your audience is fatiguing (auction prices rise as quality ranking falls), or a competitor entered the auction (seasonality, new launches, holiday peaks).

Also check Quality Ranking column. Drops from Above Average to Average / Below Average signal creative quality decline — the most common cause of CPM spikes inside your control.

Check 5 — Conversion event quality (90 sec)

Navigate to Events Manager. Check your Purchase pixel event:

  • Event Match Quality — should be Good or Excellent. Poor here = pixel firing without enough customer data, attribution suffers.
  • Server events (CAPI) — should be roughly equal to browser events. If server events are missing or 10× lower, CAPI is broken.
  • Deduplication — pixel + CAPI events for the same purchase should be deduplicated via event_id. Without this, conversions double-count.

Check 6 — Attribution window comparison (90 sec)

In your reporting, switch the attribution window setting between 1-day-click, 7-day-click, and 28-day-click. Note how reported conversions change.

If 7d-click reports 2× more conversions than 1d-click, your sales cycle is genuinely longer than a day — read 7d as your true number. If 1d ≈ 7d, your decision-to-purchase is fast and you can confidently use 1d-click for tighter feedback loops. Most D2C brands sit between 1.3× and 1.8× — anything above 2.0× suggests view-through credit inflating numbers.

The output

Ten minutes, six checks, three to five identified leaks. Rank them by estimated $-impact (frequency saturation usually wins), fix the top one this week, re-audit next week to verify the fix worked.

Bach AI runs all six checks plus two more (audience overlap and cross-intelligence with your website) on every audit. Connect your Meta account at app.wittelsbach.ai — the report ships with quantified leak amounts in your currency and a one-click fix proposal for each.

Common questions

Is a 10-minute Meta Ads audit enough, or do I need a full agency audit?
A 10-minute audit catches the top three or four highest-$-impact leaks in most D2C accounts. It is enough to decide whether the account needs immediate action and what to prioritise this week. A full agency audit (typically 2–3 days) goes deeper into creative analysis, audience strategy, and competitive benchmarking — useful, but not the first thing you need. Run the 10-minute version weekly; commission the deep version quarterly.
Can I do this audit in Meta Ads Manager directly, or do I need a tool?
You can do every check below in Meta Ads Manager. It takes 10 minutes because each check is one specific column, filter, or breakdown — not because the tooling is magic. Bach AI automates the same six checks against the Meta API and gives you a ranked list of leaks with $-impact in one screen, but the checks themselves are not exclusive to any tool.
What columns should I add to my Meta Ads Manager view for an audit?
Five columns to add: Frequency, Quality Ranking, CTR (link click-through rate), CPM, and Cost Per Result. Group by Ad Set for the structural view, then break down by Placement for the channel view. Save this as a custom view called "Audit" so you can recall it weekly. Default Meta views hide the columns that matter most.
How is this different from running an audit through Madgicx or Triple Whale?
Madgicx focuses on recommendations and AI-powered "optimisations" — broader scope, less specific. Triple Whale is attribution-first — useful for cross-channel ROAS, less useful for diagnosing in-account leaks. The checklist below is the diagnostic equivalent of a physical exam: cheap, fast, focused on detection rather than treatment. Use it before the more expensive tools to know where to direct them.
How often should I run this audit?
Weekly for accounts spending $5K+/month; bi-weekly otherwise. Leaks compound — a frequency-saturated ad set still running next Monday will have wasted another $1K. Weekly cadence catches issues within 7 days of onset, before they shape your full month's ROAS. Bach AI runs the audit automatically; if doing it manually, pick a fixed weekday morning and put it on the calendar.
What if I find leaks but cannot diagnose the root cause?
That is the point at which the 10-minute audit hands off to the deeper investigation. The audit tells you WHERE — which ad set, which placement, which audience. Root-cause then needs creative analysis (is the asset stale?), landing-page check (did the site change?), or competitive scan (did a competitor enter the auction?). Bach AI cross-references the leak signal with website-side data and competitor activity on every audit to shortcut the root-cause step.