Budget — CBO vs ABO
Last updated: May 19, 2026
Budget — CBO vs ABO
CBO (Campaign Budget Optimization) = one budget at campaign level; the platform distributes spend across adsets dynamically based on performance. ABO (Ad Set Budget Optimization) = separate budget at adset level; you control distribution. Choose based on how much manual control you want vs platform-driven optimization.
Who is this for
Mediabuyers configuring budget structure in Express, Pro, or Bulk Launch. Anyone wondering "why does my budget get more aggressive on one adset and ignore the others".
The fundamental difference
Aspect | CBO | ABO |
|---|---|---|
Where budget lives | Campaign level | Each adset has its own |
Distribution control | Platform decides (dynamic) | You decide (fixed splits) |
Per-adset spend predictability | Low — varies daily based on performance | High — fixed per-adset cap |
Manual overhead | Low — set once | Medium — set per adset |
Platform learning | Faster — campaign-wide signals pooled | Slower — per-adset signal pool |
Best for | Trusting platform to optimize | Need budget protection on specific adsets |
CBO in detail
When you pick CBO:
Set ONE budget at the campaign (e.g. $100/day)
Platform decides how much each adset gets in real time
High-performing adset gets more; low-performing gets less
You can set per-adset minimum spend (Meta) to protect smaller adsets
You can set per-adset bid cap to control unit economics
Use CBO when:
3-5 adsets with similar performance potential
Trust the platform's auto-optimization
Don't want to manage daily budget distribution manually
Performing campaign with proven track record (platform has data to optimize)
Avoid CBO when:
Specific adset MUST get a guaranteed spend (e.g. brand campaign with mandate)
Testing very different audiences side-by-side and want apples-to-apples comparison
One adset has dominant performance (CBO will starve others; sometimes you want manual diversification)
ABO in detail
When you pick ABO:
Set budget on EACH adset (e.g. Adset A $30, Adset B $30, Adset C $40)
Platform respects your per-adset budget
Manual distribution gives predictability
More setup time per launch
Use ABO when:
Testing distinct audiences side-by-side (audience A vs B vs C)
Need budget protection on specific adset (brand campaign with mandated reach)
Smaller campaign budget where CBO would concentrate spend too much
Just starting with the campaign (no platform learning yet)
Avoid ABO when:
10+ adsets (manual budget management painful at scale)
Trust platform to optimize across adsets
Adsets are similar (CBO will optimize for you)
Budget optimization in the DTO
Verified apps/backend/src/dto/request/bulk-launch.request.dto.ts budget_optimization field accepts:
Value | Meaning |
|---|---|
| Campaign Budget Optimization (default) |
| Ad Set Budget Optimization |
| CBO with bid cap (control unit cost) |
| Target CPA (CBO variant) |
| Min ROAS bid strategy (CBO variant) |
The latter three are CBO with specific bid strategies layered on top.
Bid strategies (works with CBO)
Verified BidStrategy enum (canonical.enums.ts):
Strategy | Behavior |
|---|---|
| Default; platform maximizes results within budget |
| Same but you set max bid; platform won't pay more |
| Target CPA; platform delivers at or below CPA |
| Target min ROAS; platform delivers above ROAS threshold |
COST_CAP and MIN_ROAS require 30+ conversions in optimization window to learn (similar to Smart Bidding).
Decision tree
How many adsets?
├─ 1 adset only → Either works (no diff in practice)
├─ 2-5 adsets
│ ├─ Similar audiences testing creative? → CBO
│ └─ Distinct audiences testing? → ABO (fair comparison)
├─ 6-10 adsets
│ ├─ Trust platform optimization? → CBO + per-adset min spend
│ └─ Need control? → ABO (with auto-budget tools)
└─ 10+ adsets → CBO essential (manual ABO unmanageable)
Switching between CBO and ABO mid-campaign
CBO → ABO: Meta allows but resets learning. Don't do it in a winning campaign.
ABO → CBO: also allowed; can take ~3-7 days to re-stabilize.
Best: pick CBO or ABO at launch + stick with it. If you want to change, pause + create new campaign.
In Wevion's launchers
Express mode
Budget step (4 of 6): pick budget type (CBO or ABO) + amount. Defaults to CBO.
Pro mode
In the campaign-level config (top of structure tree): CBO + amount. Or toggle to ABO → then per-adset budget field appears in each adset config.
Bulk Launch
budget_optimization column in the grid: pick CBO / ABO / BID CAP / COST CAP / MIN ROAS per row.
Budget interaction with bid strategy
Combination | Outcome |
|---|---|
CBO + LOWEST_COST_WITHOUT_CAP | Most common; max results, no bid control |
CBO + COST_CAP | Most common for performance with CPA target |
CBO + BID CAP | Hybrid: budget at campaign, max bid per impression |
ABO + LOWEST_COST_WITHOUT_CAP | Manual budget per adset, platform optimizes within |
ABO + COST_CAP | Per-adset budget + per-adset CPA target |
Common mistakes
CBO with very different audiences → one audience may dominate spend, starving the rest
ABO with dozens of adsets → impossible to monitor per-adset; CBO is better
CBO + BID CAP set too low → platform can't spend; budget goes unused
COST_CAP with no conversion data → can't learn; switch to LOWEST_COST until conversions accumulate
What you'll see
Setting CBO:
One budget field at campaign level
All adsets show "Inherits from campaign budget"
Setting ABO:
Campaign-level budget field hidden
Per-adset budget field appears in each adset
Common questions
"Which is cheaper?" Neither inherently. CBO often delivers slightly more conversions per dollar via auto-optimization. ABO gives more control.
"Can I run BOTH CBO and ABO at the same time?" Across DIFFERENT campaigns, yes. Within ONE campaign, pick one.
"What about Meta's Advantage+ campaigns?" Advantage+ defaults to CBO with heavy automation. Wevion supports.
"Why won't my COST_CAP work?" Not enough conversion data. Wait until you have 30+ conversions/week before enabling.
Related
Daily vs lifetime budget — budget type (independent of CBO/ABO)
Campaign objectives — objective dictates available bid strategies
Launch with Pro mode — set up multi-adset CBO or ABO