Why Is One Ad Set Getting All the Budget? (CBO Explained)

One ad set eating the whole campaign budget is how Meta's Advantage+ campaign budget works by design. Learn when it hurts, and the controls that fix it.

Updated June 2026 · Likit Sae Lee, CTO

Quick answer

One ad set getting most or all of the budget is how Meta's Advantage+ campaign budget (formerly CBO) is designed to work. Meta's documentation states that the system "automatically and continuously finds the best available opportunities for results across your ad sets and distributes your campaign budget in real time to get those results," so spend concentrates wherever Meta predicts the cheapest results. It only becomes a problem when starved ad sets never get enough delivery to prove themselves, or when the favoured ad set wins on cheap but low-value results. Your controls are ad set spend limits (minimums and maximums), or switching to ad set budgets (ABO) when you need guaranteed spend per ad set.

Uneven spend is the design, not a malfunction

When you set your budget at the campaign level, you are using what Meta now calls Advantage+ campaign budget, the feature long known as CBO (campaign budget optimization). You give Meta one pot of money and permission to move it between ad sets however it likes. Meta's developer documentation describes the mechanic plainly: the system "automatically and continuously finds the best available opportunities for results across your ad sets and distributes your campaign budget in real time to get those results." In practice, that means Meta is constantly predicting which ad set will produce the next conversion, lead, or click at the lowest cost, and steering the next ringgit there. If one ad set has a stronger creative, a more responsive audience, or simply got off to a faster start, the prediction engine favours it, it gets more delivery, it generates more data, and the prediction gets more confident. The loop compounds. A 70/20/10 split, or even 95/5/0, is a normal outcome, not a bug. If you wanted equal spend per ad set, campaign-level budgeting was never designed to give you that.

When lopsided spend is actually a problem

Often the concentration is correct and you should leave it alone. The favoured ad set is genuinely your best performer, and forcing money into weaker ad sets would just raise your blended cost per result. Before intervening, check the numbers: if the dominant ad set's cost per result is at or below target, the algorithm is doing its job. It becomes a problem in a few specific situations. First, testing: if you built three ad sets to compare audiences or creatives, a 95/5/0 split means two of them never received enough delivery to produce a readable result, so you learned nothing. Second, early-signal bias: Meta's predictions early in a campaign rest on thin data, and an ad set that got lucky in its first hours can lock in the budget before a genuinely better ad set has a chance. Third, misaligned wins: the favoured ad set may be producing cheap results that matter less to you, for example inexpensive leads from an audience that rarely buys, while the starved ad set targets your actual buyers. Fourth, audience overlap: when ad sets chase the same people, one tends to win those auctions repeatedly and absorb the budget, which looks like performance but is partly structural. The tell in every problem case is the same: the starved ad sets never accumulated enough results for you to judge them fairly.

Your controls, from lightest touch to full manual

Meta gives you a middle ground before you abandon campaign budgets entirely: ad set spend limits. You can set a minimum spend target so an ad set keeps getting delivery, or a spend cap so a dominant ad set cannot swallow everything. Two caveats, both straight from Meta's documentation. Minimums are a best effort, not a guarantee; Meta states the target "does not guarantee you spend this amount." And every limit you add constrains the optimization you turned on campaign budgeting to get, so use them sparingly, on the one or two ad sets you specifically need protected, rather than on everything. If you need guaranteed, even spend, use ad set budgets (ABO) instead. Each ad set gets its own budget and Meta cannot move money between them. This is the standard structure for creative and audience testing, where equal exposure matters more than efficiency. A common working pattern is to test in a small ABO campaign, then move proven winners into an Advantage+ campaign budget campaign and let Meta concentrate spend among ad sets that have all earned it. Finally, consider whether the structure itself is the issue. Merge overlapping audiences so ad sets stop competing for the same people, and cut ad sets you already know are weak. And before forcing budget into a starved ad set, ask whether its creative deserves the rescue: researching what similar brands run, for example through AdPlay.ai's archive of Malaysian Meta ads, is often faster than paying Meta to test an angle the market has already ignored.

Frequently asked questions

Should I use CBO or ABO when testing new creatives or audiences?

Most media buyers test with ad set budgets (ABO) precisely because Advantage+ campaign budget concentrates spend. In a test, you want each variant to receive enough delivery to produce a readable result, and ABO guarantees that by giving every ad set its own budget. Once a test identifies winners, you can consolidate them into a campaign-budget structure and let Meta shift spend freely between proven performers. A common pattern is a small ABO testing campaign feeding a larger Advantage+ campaign budget scaling campaign.

Can I force Meta to spend evenly across all ad sets in a CBO campaign?

Not exactly. Ad set spend limits let you push distribution toward even, for example by setting a minimum on each ad set, but Meta's documentation is explicit that a minimum spend target is a best effort, not a guarantee. Stack minimums across every ad set and you have also removed most of the flexibility that campaign-level budgeting exists to provide. If you genuinely need equal spend per ad set, ad set budgets (ABO) are the honest tool for the job.

Why is one of my ad sets spending nothing at all?

Inside a campaign-budget structure, zero spend usually means Meta predicts that ad set will deliver worse results than its siblings, so the budget goes elsewhere. Overlapping audiences make this worse, because the stronger ad set keeps winning the same people in the auction. Outside of budget allocation, check the usual delivery culprits: the ad is still in review or rejected, the audience is too narrow, or the bid strategy is too restrictive. If it matters to you, give it a minimum spend limit or move it to its own campaign.

Keep exploring

Turn ad research into winning ads

Research the ads that work, generate the creative on-brand, and launch to Meta, all in one tool.

7-day free trial · No credit card required