When a Meta Ads account isn't working, the instinct is usually to change the creatives. Sometimes that's right. Most of the time, it isn't — and changing creatives while the underlying issue is structural just wastes budget faster.

Over five years of inheriting broken accounts and building new ones, I've found that almost every failing Meta account has one of seven problems. This is the diagnostic process I use, in the order I use it — because the order matters.

A note before you start: Do this audit on at least 60–90 days of data. Less than that and you're reading noise, not signal.

The seven-step diagnostic process

Step 1

Check your tracking first — always

Go to Events Manager. Look at your Pixel activity for the last 30 days. Are purchase events firing? Are the numbers in a plausible range relative to your actual sales? Are you seeing duplicate events (the same event firing multiple times per session)? Are there any events marked as "Low Quality" or "Deduplication Issues"?

If your tracking is broken, everything that follows in this audit is unreliable. Fix tracking first — full stop. A broken Pixel means the algorithm is learning from the wrong data, and no amount of creative or audience changes will fix a data quality problem.

✓ Check: Events Manager → Data Sources → Pixel Activity. Verify event match quality scores are above 6.0.
Step 2

Check your campaign objective

Is your campaign objective aligned with what you actually want? If you want purchases but you're running a Traffic campaign, you're paying for clicks from people Meta thinks will click — not from people Meta thinks will buy. These are different populations.

Common mismatches: running Traffic campaigns when you want leads, running Engagement campaigns when you want website conversions, running Reach campaigns when the account is small enough that Conversions would work better.

✓ Check: Campaign level → Objective column. Confirm it matches your actual business goal.
Step 3

Check your audience size and overlap

Too small: audiences under 50,000 restrict the algorithm's ability to find converters — CPR rises as you exhaust the audience. Too many ad sets: if you have 10 ad sets targeting overlapping audiences, they're competing against each other in the auction, driving your own costs up. Meta's Audience Overlap tool (under the Audiences section) will show you the overlap percentage.

Current best practice leans toward broader audiences with fewer ad sets, letting the algorithm find the converters within a larger pool. Hyper-segmented ad sets made more sense pre-iOS 14 — less so now.

✓ Check: Audiences → overlap between your active ad set audiences. Consolidate anything with >30% overlap.
Step 4

Analyse creative performance by format and angle

Break your ad performance down at the ad level (not campaign or ad set). Sort by cost per result. What are your bottom 20% of ads costing vs. your top 20%? What format is dominant in your top performers — image, video, carousel? What messaging angle — product benefit, social proof, urgency, problem-solution?

If you can't answer these questions because all your ads are performing similarly, you don't have enough creative diversity. A proper creative test requires at least 3 meaningfully different angles running simultaneously.

✓ Check: Ads Manager → Ad level → Columns: Performance and Clicks. Sort by Cost per Result descending.
Step 5

Check your attribution settings

What is your attribution window set to? 7-day click only? 7-day click and 1-day view? The default 7-day click, 1-day view setting can inflate reported conversions because view-through attribution counts people who saw your ad but may have converted for unrelated reasons. If your blended ROAS looks much lower than your Meta-reported ROAS, view-through attribution is often a contributing factor.

✓ Check: Campaign → Ad Set → Conversion → Attribution Setting.
Step 6

Review your account structure for consolidation

How many active campaigns, ad sets, and ads do you have? More is not better in Meta Ads. Fragmented accounts — many small ad sets with low budgets — prevent any single ad set from exiting the learning phase (which requires approximately 50 conversions per week). An account stuck in perpetual learning phase will always underperform.

Signs you need to consolidate: multiple ad sets targeting similar audiences with budgets under $20/day, 50+ active ads, campaigns that have been running for months with fewer than 50 conversions per ad set per week.

✓ Check: How many of your active ad sets have "Learning" or "Learning Limited" status?
Step 7

Compare platform data against your analytics

Pull your Meta-reported purchases for the same period from your Shopify, GA4, or other analytics. What's the ratio? A 1.5–2× overcount in Meta vs. Shopify is normal due to attribution overlap. Anything beyond 3× suggests a tracking problem (likely double-firing events) or a view-through attribution issue worth reviewing.

✓ Check: Meta reported purchases ÷ Shopify/GA4 purchases for the same date range. Flag anything above 2.5×.

What to fix first

Work through the list in order. Most accounts have one primary issue — and it's usually tracking (Step 1) or campaign structure (Steps 2–3). Creative (Step 4) is almost never the root cause of a fundamentally broken account, even though it's the most visible thing to change.

If you've worked through all seven steps and the account still isn't performing, the issue is more likely to be the product-market fit, the offer, or the landing page experience — none of which can be solved inside Ads Manager.

The fastest shortcut: If you're not sure where your account's problem is, run Meta's own diagnostic — the Delivery Insights tool at the ad set level will often flag learning phase issues, budget constraints, and audience problems directly.

Want someone to run this audit for you?

I'll go through your account against this framework and give you a written report with the findings ranked by impact — in 5–7 working days.

Get a paid media audit →