How to audit a Meta Ads account
An audit is not a performance review with more charts. It is a systematic sweep for things that are structurally wrong — broken tracking, misconfigured conversion events, budget trapped in entities that cannot convert, delivery leaking outside the target. Run it in a fixed order, because the early checks change how you read everything after them. Tracking comes before performance, since broken measurement makes healthy campaigns look dead.
A Meta account audit covers, in this order:
- Account and conversion configuration — what is actually being optimised for
- Tracking health — pixel, CAPI, event volume against baseline
- Structure — campaign and ad set organisation, budget type, learning status
- Delivery — CPM, CTR, frequency against the account's own baseline
- Creative — the ads carrying the spend, and their fatigue signals
- Segments — placement, device and demographic leakage
- Waste — spend producing nothing, and dependencies you might break fixing it
What an audit looks for at each level
| Level | The question | The common finding |
|---|---|---|
| Account | Which conversion event is each campaign optimising for? | Mixed events blended into one KPI, making good campaigns look poor |
| Tracking | Is the purchase event firing at its usual daily volume? | Pixel or CAPI degradation that reads as a performance collapse |
| Campaign | CBO or ABO, and is the bid strategy actually binding? | A cost cap set so far above real CPA that it constrains nothing |
| Ad set | Has it exited learning, and does it have enough signal? | Decisions being made on ad sets that never exited learning |
| Ad | Which ads carry the spend, and how are they trending? | Budget concentrated in creative that peaked weeks ago |
| Segment | Is delivery landing inside the intended target? | Advantage+ expansion spending outside the target with poor conversion |
| Waste | What is spending with nothing to show? | Ad sets past 2× CPA target with zero conversions |
The seven passes
Step 1
Configuration — establish what the account is trying to do
Start by reading the conversion event from each ad set's configuration, never from its name. Group ad sets by event. An account mixing purchase, lead and registration campaigns needs three separate KPIs, and blending them produces an audit that is wrong from the first table.
Watch for a registration or add-to-cart event sitting on a purchase objective. That is sometimes a genuine misconfiguration and sometimes a third-party tracker routing real purchases through a different event — opposite conclusions, so confirm which before writing it up as a finding.
Step 2
Tracking — before you judge any performance number
Compare purchase event volume against its own daily baseline. If events dropped while traffic held, the measurement is broken and every performance number downstream is unreliable. Auditing performance on top of broken tracking produces confident, wrong recommendations.
- Pixel and CAPI both firing, with event volume at its usual level
- Attribution window — note what it is set to, and whether it changed in the window you are auditing
- View-through share, especially on retargeting
- Duplicate conversion counting where two campaigns target the same audience
Step 3
Structure — how the account is organised
Check budget type, bid strategy and learning status. The most common structural finding is a bid strategy that is not actually constraining anything — a cost cap set at three times the real CPA, or a target ROAS set at half what the account already achieves. Flag those: the account is effectively running unconstrained while appearing controlled.
- CBO or ABO per campaign, and whether the budget sits where you think
- Ad sets that never exited learning — our gate is spend of at least 2× AOV or 4× CPA
- Ad sets with too little signal to judge at all, below 3–5 conversions a week
- Audience overlap between ad sets competing in the same auction
Step 4
Delivery — read against the account's own baseline
Pull 90 days to establish normal, then compare the audit window against it. CPM, CTR and frequency, always with spend as context. The goal is not to grade the account against the industry but to find what has drifted from its own recent history.
Step 5
Creative — the ads carrying the spend
Restrict to the ads making up the first 90% of cumulative spend. For each, check the trend rather than the period total, and look specifically for frequency rising alongside CTR falling over 14 or more days, which is the fatigue signature. For video, split hook rate from hold rate — they fail for different reasons and need different fixes.
Before recommending any pause, check whether the ad is the top converter in its ad set. If Meta has concentrated budget on one ad and that ad produces most of the conversions, that is the algorithm working, not a problem to fix.
Step 6
Segments — where delivery actually landed
Check placement and position, device, and age and gender. The recurring finding is delivery outside the intended target when Advantage+ audience expansion is on, consuming budget at poor conversion rates. Quantify the gap rather than noting it qualitatively.
Remember what you can and cannot do with the finding. Breakdowns are not budget levers — you cannot shift spend between placements or age brackets. The available actions are building a new ad set with specific targeting, or applying exclusions.
Step 7
Waste and dependencies
Finally, list what is spending without producing, and check what each cut would break before recommending it. An ad set past twice the ad set's CPA target with zero conversions is a defensible pause. An ad set with one or two conversions at high CPA is insufficient data, not a verdict.
Map the funnel before cutting. Prospecting campaigns feed the audience pools that retargeting converts, so pausing a prospecting campaign often raises retargeting CPA within one to two weeks. Say so in the audit rather than discovering it afterwards.
A worked example
Illustrative example. The numbers below are made up to show the method. They are not a client account and not a benchmark.
A mid-sized account, audited over a 30-day window. Four findings, ranked by what they cost.
| Finding | Evidence | Action |
|---|---|---|
| Purchase events down 31% while sessions held | Daily event volume vs 90-day baseline | Fix tracking before judging any campaign |
| Cost cap set at $90, actual CPA $31 | Ad set configuration vs delivery | The cap constrains nothing — set it meaningfully or remove it |
| 38% of one campaign's budget delivered outside target age range | Age and gender breakdown | Tighten targeting or build a separate ad set |
| Ad set at $4,100 spend, zero conversions | Spend vs ad set CPA target of $1,900 | Pause — past 2× target with nothing to show |
The order matters. The tracking finding has to be resolved first, because the other three are all judged on conversion data the pixel may be under-reporting. Fixing the cost cap while events are missing would be optimising against a broken signal.
Only the last finding is a clean pause. It is past twice the ad set's CPA target with zero conversions, which clears the bar. An ad set with two conversions at a high CPA would not — that is insufficient data, and pausing it is a guess.
The targeting leakage is quantified, which makes it actionable. "Delivery is going outside the target" invites argument; "38% of budget" does not.
What not to conclude too quickly
Audits generate long lists, and long lists invite over-confident findings. Hold these back:
- A high-frequency ad set is not automatically fatigued. Small retargeting pools run high frequency permanently and convert fine.
- One ad set holding most of a CBO budget is usually correct. That is the algorithm concentrating on the best converter.
- A high CPA on two conversions is not a finding. It is insufficient data.
- Poor performance on a campaign optimising for a non-purchase event may just be the wrong KPI applied to it.
- Delivery outside the target is not always waste — check whether those segments convert before recommending exclusions.
- Do not recommend budget moves between ads, placements or demographics. Those are not controls Meta exposes; the audit will read as uninformed.
How to automate the audit
A thorough manual audit is a half-day of data assembly before any judgement happens: seven passes, several breakdowns, a 90-day baseline and a tracking reconciliation.
GoMarble runs those passes against the live account and returns the findings with the evidence attached, so the time goes into deciding what to do rather than into building the picture.
The shape of it
- Connect the ad account
- Ask for the audit, or schedule it to run on a cadence
- Each pass runs against the account's own 90-day baseline
- Findings come ranked with the evidence and the affected entity named
- AI Agents execute the fixes you approve — pausing, bid and budget changes
Anomaly alerts turn the audit from an occasional exercise into continuous monitoring, which is where most of the value is.
Meta Ads audit checklist
- ☐ Read the conversion event per ad set from configuration
- ☐ Group mixed-objective accounts and apply separate KPIs
- ☐ Compare purchase event volume against its daily baseline
- ☐ Note the attribution window and whether it changed
- ☐ Check view-through share on retargeting
- ☐ Record budget type and bid strategy per campaign
- ☐ Flag bid strategies that do not actually constrain
- ☐ Identify ad sets still in learning or below signal threshold
- ☐ Check audience overlap between ad sets
- ☐ Build the 90-day delivery baseline
- ☐ Audit only the ads in the first 90% of spend
- ☐ Check frequency and CTR together over 14+ days
- ☐ Check placement, device and demographic breakdowns
- ☐ Quantify out-of-target delivery as a share of budget
- ☐ List zero-conversion spend past 2× the ad set CPA target
- ☐ Map prospecting-to-retargeting dependencies before cutting anything
Questions people actually ask
How often should I audit a Meta Ads account?
What should I look at first in a Meta Ads audit?
How do I tell waste from an ad set that just needs more time?
Should an audit recommend moving budget between placements?
What does an audit miss?
Where this method comes from
The audit sequence, the pause criteria and the structural checks on this page come from the methodology GoMarble's agents run against live Meta accounts, including the objective-contextual evaluation, the learning-phase and significance gates, the fatigue signature, the top-performer protection rule and the constraint that breakdowns are not budget levers. Threshold figures are ours rather than industry standards.
Related
Run the audit on your own account.
Connect Meta and GoMarble runs the passes, ranks the findings and attaches the evidence.