Meta ads optimization is the most requested service we get asked about at Choco Media, and it’s also the space where we see the most preventable waste. Campaigns that look fine on paper — decent click-through rates, reasonable CPMs — quietly drain budgets because of four structural problems that most agencies either miss or don’t mention because fixing them doesn’t justify a higher retainer. This post is a diagnostic. We’ll walk through the waste patterns we encounter most often in account audits, and the fixes that cost nothing to implement but almost nobody does.
This is for anyone running paid media in-house or with an agency who suspects their numbers could be better without increasing spend. You won’t need a bigger budget. You need to stop funding the wrong things.
We’ll cover the four most common money-burning patterns we see across Meta, Google, and TikTok accounts, and exactly what to do about each one. By the end, you’ll have a diagnostic checklist you can run on your own account in an afternoon.
Why most paid campaigns underperform before you’ve spent a euro
The most common assumption in paid media is that performance problems are a creative problem. The ad isn’t good enough. The hook isn’t strong enough. The offer isn’t compelling. Sometimes that’s true. More often, the creative is fine — it’s just being shown to the wrong people at the wrong time with the wrong structure, and no amount of creative iteration will fix a structural problem.
In client work we’ve found that roughly 60–70% of the waste in a typical paid account comes from structural issues, not creative quality. Campaign architecture, bidding strategy, audience overlap, budget allocation between learning-phase and proven campaigns — these are the variables that determine whether your creative even gets a fair chance.
- Structural issues compound over time — they don’t stabilise
- Creative iteration on a broken structure gives you bad data about your creative
- Most audits take 60–90 minutes to surface the main problems
- The fixes are almost always free — they require changes, not spend
The good news is that structural problems are fixable without touching your creative or your budget. The bad news is that they require honest diagnosis, which means being willing to see that what looked like a performance problem was actually an architecture problem.
Waste pattern one: too many campaigns, not enough signal
The most consistently damaging pattern we see in Meta accounts is fragmentation. An account with 12 active campaigns, each with €15–25/day budgets, where every campaign is permanently stuck in learning phase. Nobody wins in this situation — not the advertiser, and not the algorithm.
Why this happens
Fragmentation usually starts with good intentions. You want to test different audiences. You want to isolate variables. You want to see which creative works for which segment. The problem is that Meta’s algorithm needs roughly 50 conversion events per ad set per week to exit learning phase and start delivering efficiently. At €15/day with a €30 cost-per-purchase, you’re not getting there.
- Learning-phase CPAs are typically 20–40% higher than stable-phase CPAs
- Fragmented budgets mean the algorithm never accumulates enough data to optimise
- More campaigns means more management overhead, which means less attention per campaign
- Audience overlap between fragmented campaigns means you’re competing against yourself
The fix
Consolidate. Combine campaigns targeting similar audiences and funnel stages. Let Advantage+ Campaign Budget do the allocation between ad sets if you’re not comfortable making that call manually. The goal is to give each campaign enough daily budget to exit learning phase within a week. As a rough guide: if your target CPA is €X, your daily budget should be at least 2–3× that.
In client work we’ve found that consolidating from 10–12 campaigns to 3–4 focused ones typically reduces CPA by 15–25% within two to three weeks — without any creative changes. The algorithm just starts working with real signal instead of noise.
Waste pattern two: optimising for the wrong event
The second most common structural problem is optimisation event selection. Meta will happily optimise for whatever you tell it to, and if you tell it to optimise for link clicks or landing page views, it will get very good at finding people who click. It will not get good at finding people who buy.
Why this happens
Conversion event selection is often made at campaign setup and rarely revisited. If your pixel wasn’t fully set up when the campaign launched, you may have defaulted to a higher-funnel event. If you were nervous about spending without conversions in the data, you optimised for something you could see more of. Both are understandable — and both are expensive.
We audited an account last year where the brand had spent four months optimising for Add to Cart. Their purchase volume was lower than their Add to Cart volume from six months prior. The algorithm had learned to find cart-abandoners, not buyers.
- Always optimise for the deepest funnel event you can get 50 weekly occurrences on
- If purchases are too rare, use Initiate Checkout — not Add to Cart
- If you’re B2B, optimise for form submissions or qualified lead signals, not page views
- Regularly check whether your optimisation event is still the right one as volume scales
The fix
Audit your active campaigns and check the optimisation event for each. Then check how many weekly occurrences of that event your ad sets are recording. If you’re not hitting 50/week, you’re in extended learning phase regardless of what the dashboard says. Move up the funnel to a more frequent event, or consolidate budget until you can hit the threshold on the right event.
Waste pattern three: audience overlap and self-competition
If you have multiple ad sets running simultaneously and targeting overlapping audiences, Meta’s auction system means you’re bidding against yourself. You’re driving up your own CPMs. This is one of the most common structural issues in accounts that have been running for more than six months, because it accumulates gradually as new ad sets are added without retiring old ones.
Why this happens
Audience management is tedious and easy to deprioritise when campaigns are live and spending. New targeting ideas get added as new ad sets. Old ad sets that underperformed get paused rather than deleted, then reactivated. Lookalike audiences at different percentages (1%, 2%, 5%) overlap heavily. Interest-based audiences and broad audiences overlap with retargeting audiences. Over time, the account becomes a web of overlapping segments competing in the same auctions.
- Use the Audience Overlap tool in Meta’s Ads Manager to check overlap percentage
- Audiences with more than 20–30% overlap are cannibalising each other
- Retargeting audiences should be explicitly excluded from prospecting ad sets
- Lookalike audiences at close percentages (1% and 2%) almost always overlap significantly
The fix
Run the Audience Overlap report across your active ad sets. For any pair with more than 30% overlap, either consolidate them or add exclusions. Build a simple exclusion logic: anyone who has visited your website, engaged with your content, or is already a customer should be excluded from prospecting campaigns. Layer your audiences so each ad set is reaching a distinct segment — you want the algorithm to find new buyers, not compete with itself to reach the same person five times.
Our paid media service includes an audience architecture review as a standard part of onboarding, because fixing overlap is one of the fastest wins available in most accounts.
Waste pattern four: the creative refresh problem
Creative fatigue is real, but the common response to it — launching new creative constantly — is often more expensive than the problem it’s trying to solve. The waste pattern here is running too many active creatives simultaneously, which splits impressions so thinly that no single creative gets enough data to be evaluated fairly.
Why this happens
Creative fatigue panic is understandable. When frequency climbs and ROAS drops, the instinct is to add new creative. But adding five new variants to an ad set that already has eight active creatives doesn’t give you better data — it gives you worse data distributed across more variables. You end up with 13 creatives, each with 40 impressions and no statistically meaningful signal.
- Run 3–5 active creatives per ad set, not 10–15
- Let Meta’s Dynamic Creative Optimisation pick winners rather than running all variants simultaneously
- Creative fatigue signals (rising frequency, falling CTR) are real, but they’re also frequently premature — check reach, not just frequency
- Retire underperforming creatives aggressively rather than letting them drain impressions
The fix
Set a rule: no ad set runs more than five active creatives. When a new creative goes live, an old one comes off. Evaluate creative performance by cost-per-result, not by impressions or clicks. Give each creative at least 500–1,000 impressions before making a call. If you’re using Dynamic Creative Optimisation, trust the signal — Meta will allocate to the winner. Your job is to give it good options to choose from, not to run every option simultaneously forever.
This is also where AI-assisted content creation can genuinely help — producing a steady supply of creative variants at lower cost means you can maintain a rotation without burning time on production for every new test.
The audit process we actually run
When we look at a new account, we run through the same checklist in roughly the same order. It takes 60–90 minutes for a typical account and surfaces the main issues before we touch anything creative or strategic.
Step one: campaign consolidation health check
Count active campaigns. For each, check daily budget vs. target CPA. Flag any campaign where the ratio is below 2:1. Note which campaigns are in learning or learning limited status and for how long.
Step two: optimisation event audit
For each active ad set, note the optimisation event and the weekly occurrences from the last 7 days. Flag any ad set optimising for an event with fewer than 50 weekly occurrences. Note the distance between the optimisation event and the actual business goal.
Step three: audience overlap report
Run the audience overlap tool across all active ad sets in the account. Flag any pairing above 30%. Note whether retargeting audiences are excluded from prospecting campaigns.
Step four: creative inventory
Count active creatives per ad set. Flag any ad set with more than five. Check frequency and reach for each campaign over the last 14 days. Note frequency above 3 as a potential fatigue signal worth watching.
- Document findings with screenshots before making any changes
- Prioritise fixes by estimated impact — usually consolidation first, then optimisation event, then overlap, then creative
- Make one change at a time where possible, so you can attribute improvement
- Recheck KPIs at 7 days and 14 days post-change
What a clean account structure looks like
After running this audit and implementing fixes, a typical account structure looks something like this: three to five campaigns, each with a clear funnel stage (awareness, prospecting, retargeting). Each campaign has two to four ad sets, each targeting a distinct, non-overlapping audience segment. Each ad set runs three to five active creatives, with Dynamic Creative Optimisation enabled where the creative variants are sufficiently different. Budget per campaign is set at a level that allows exit from learning phase within 7–10 days.
This is not glamorous. It doesn’t require a new tool, a new dashboard, or a new agency. It requires being disciplined about structure, honest about what the data is actually telling you, and willing to pause things that feel active but aren’t working.
The metrics that tell you it’s working
- Learning phase percentage drops below 20% of total active ad sets
- CPA starts declining within 10–14 days of consolidation
- Frequency stabilises rather than climbing sharply
- Creative performance data becomes readable — winners are clear, losers are obvious
One more thing: attribution
None of the above matters if your attribution is broken. If you’re relying entirely on Meta’s in-platform reporting without cross-referencing GA4 or server-side events, you’re likely seeing inflated numbers — and making decisions on the basis of those numbers. We’ve written about attribution and server-side tracking in detail in our conversion optimisation work, and it’s worth treating attribution as a prerequisite rather than a nice-to-have when you’re spending meaningfully on paid.
A basic sanity check: compare Meta-reported purchases to GA4-reported purchases for the same period. If they’re more than 20–30% apart, your attribution needs attention before any other optimisation work will be trustworthy.
Where to go from here
If you’ve read this far and recognised your account in two or more of these patterns, the next step is to run the audit. It’s free. It takes an afternoon. The findings will tell you what to fix first. If you’d rather have us look at it, we do account audits as part of onboarding for our paid media retainers — get in touch and we can talk through what that looks like for your situation.
The four patterns above — fragmentation, wrong optimisation event, audience overlap, and creative inventory bloat — account for the majority of structural waste we see in paid accounts. None of them require more budget to fix. They require attention and the willingness to simplify.