← All posts
Paid Ads

Meta CBO vs ABO: Which Structure Actually Holds ROAS at Scale

A DTC apparel brand we work with switched from ABO to CBO on their main prospecting campaigns after reading that CBO was the recommended structure for scaling. ROAS dropped from 3.2 to 2.4 in 10 days. They hadn't changed creative, audiences, or landing pages. The structure change alone was enough to break what was working. We rebuilt over 3 weeks. ROAS hit 4.1. The lesson wasn't that CBO is bad — it's that the switch happened at the wrong spend level, with the wrong creative setup.

What CBO actually optimises for — and where it breaks

Campaign Budget Optimization hands Meta full control over how budget gets distributed across ad sets within a campaign. The algorithm routes spend toward the ad set it predicts will drive the lowest cost per result — based on its historical data.

The problem: that optimization is only as good as the signal it has. In the early days of a CBO campaign, Meta makes distribution decisions with thin data. If one ad set has slightly higher historical CTR from a prior run, Meta overweights it from day one — sometimes sending 80% of budget to one ad set while starving the others of any meaningful test volume.

For accounts with a clear proven winner and well-established audiences that Meta has already learned, CBO works. For accounts still in testing mode — or newer than 90 days of sustained spend — CBO allocates budget before it has enough data to do so intelligently. We've seen this pattern consistently across accounts we've inherited that struggled under CBO.

The spend level where each structure outperforms

The threshold isn't a hard number, but across 30+ Shopify accounts we manage, a clear pattern holds: below $400/day total campaign spend, ABO almost always outperforms CBO. Above $400/day with 3+ proven creatives, CBO starts to win.

Why $400/day? At that level, each ad set in an ABO structure is getting enough daily spend to generate purchase events that Meta can learn from. Below that, ABO at $50–80/day per ad set gives controlled testing — we decide where budget goes, we see what each ad set does, and we don't lose test data to algorithmic underspending.

CBO below $400/day risks underfeeding ad sets that could become winners. The algorithm kills them before they have a chance.

How we rebuilt the account

When we switched the apparel brand back from CBO to ABO, we didn't just revert — we rebuilt with the lesson. Their original ABO structure had 7 ad sets running at varying budgets with inconsistent creative. We consolidated to 4 ad sets:

  • Broad prospecting: $80/day, top 2 proven creatives
  • Lookalike (1–3%): $80/day, same top 2 creatives
  • Interest-based (2 stacked interests, narrow): $60/day, 1 creative being tested
  • Retargeting (30-day website visitors): $60/day, dedicated retargeting creative

Total: $280/day. Controlled. Every ad set had a defined role. After 3 weeks of stable performance, we introduced a CBO campaign alongside it — running only the 2 proven creatives at $120/day — to start feeding Meta the data it needed. ROAS at the account level hit 4.1 and held.

The rule we apply before every campaign launch

Before choosing CBO or ABO, we answer two questions: Has this account spent at least $300/day consistently for the past 60 days? Do we have at least 2 creatives with proven CVR above 3% from paid traffic?

If yes to both: CBO is worth testing on the prospecting campaign. If no to either: run ABO. Set budgets manually. Build the data first.

The accounts that fail with CBO aren't failing because the structure is wrong — they're failing because Meta was handed an optimization job before it had enough information to do it well.