Your Ad Budget Is Competing With Itself — And Losing
The first thing I do when I take over a new ad account isn't look at the creatives. It isn't check the targeting. It's look at where the money is going.
When I pulled up this client's Meta account — a local home goods brand spending about $5,000 a month — I built a simple two-column view: spend percentage on the left, ROAS on the right.
Then I sorted by spend.
The top two ad sets, eating 61% of the budget, had ROAS of 0.7 and 0.9. They were losing money on every dollar spent.
Three ad sets near the bottom of the list — the ones getting the smallest slices of budget — had ROAS of 2.8, 3.1, and 3.6.
The account was systematically feeding its worst performers and starving its best ones.
How Does This Even Happen?
Most people assume Meta's Campaign Budget Optimization (CBO) fixes this automatically. The idea is appealing: you set a campaign-level budget, and the algorithm distributes it to wherever it's performing best.
In theory. In practice, it's more complicated.
Meta's algorithm allocates budget based on "opportunity" — meaning where it can find the most people to serve your ads to at the lowest auction cost. That's not the same as where your best customers are.
Larger audiences win more budget by default. An ad set targeting a broad interest category of 2 million people will consistently out-compete an ad set targeting a tighter audience of 80,000 — even if the tighter audience converts at 4x the rate.
The algorithm sees the broad audience as an "easier" spend opportunity. More inventory, lower CPM, less competition per impression. It gravitates there.
Your best-performing ad sets — the ones with precise audiences who actually buy — often have smaller pools. They lose the internal budget auction again and again. They're running on scraps.
The Audience Overlap Problem
There's another issue that compounds this: audience overlap.
If multiple ad sets in your account are targeting overlapping audiences — say, two ad sets both targeting "men 35-55 interested in home renovation" — those ad sets compete against each other in every auction.
This drives up your own CPM. You're bidding against yourself. The cost to reach any single person goes up, results go down, and the whole account looks less efficient than it should.
The solution isn't necessarily fewer ad sets. It's making sure each ad set has a distinct, non-overlapping purpose.
The Audit: What You Should Be Looking At
Pull your last 30 days of data. Build this simple view:
- List every active ad set
- Note its share of total spend (%)
- Note its ROAS
- Rank both columns
If the spend ranking and the ROAS ranking don't roughly match — if your top spenders aren't also your top performers — your budget distribution is wrong.
Also flag any ad set where daily spend is significantly below its daily budget limit. This usually means the ad set is "winning" less budget from CBO than you intend — often because of the audience size or overlap issues described above.
What We Did
First, I paused the two loss-leader ad sets. This is where most people hesitate — those ad sets had been running for months, and there's a psychological resistance to turning off something you've invested in. But they were actively destroying value.
Second, I redirected that 61% of budget to the three high-performing ad sets. They'd been running at great ROAS on tiny budgets — what would happen when they had real fuel?
Third, I reorganized the account to eliminate audience overlap. Each remaining ad set had a clearly differentiated targeting purpose: cold traffic, retargeting, lookalikes.
Four weeks later: same $5,000 monthly spend. Overall account ROAS went from 1.3 to 2.9.
No new creative. No new offer. No new product. Just money moved from where it was losing to where it was winning.
Your ad budget is probably not the problem. Where that budget is going might be.
More...
Unleash Your Brand's









