Budget — CBO vs ABO

CBO = single campaign budget, platform distributes across adsets. ABO = separate per-adset budget. Trade-offs depend on adset count + control needs.

Written By Salvatore Sinigaglia

Last updated About 5 hours ago

CBO = single campaign budget, platform distributes across adsets. ABO = separate per-adset budget. Trade-offs depend on adset count + control needs.

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

AspectCBOABO
Where budget livesCampaign levelEach adset has its own
Distribution controlPlatform decides (dynamic)You decide (fixed splits)
Per-adset spend predictabilityLow — varies daily based on performanceHigh — fixed per-adset cap
Manual overheadLow — set onceMedium — set per adset
Platform learningFaster — campaign-wide signals pooledSlower — per-adset signal pool
Best forTrusting platform to optimizeNeed 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:

ValueMeaning
CBOCampaign Budget Optimization (default)
ABOAd Set Budget Optimization
BID CAPCBO with bid cap (control unit cost)
COST CAPTarget CPA (CBO variant)
MIN ROASMin 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):

StrategyBehavior
LOWEST_COST_WITHOUT_CAPDefault; platform maximizes results within budget
LOWEST_COST_WITH_BID_CAPSame but you set max bid; platform won't pay more
COST_CAPTarget CPA; platform delivers at or below CPA
LOWEST_COST_WITH_MIN_ROASTarget 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

CombinationOutcome
CBO + LOWEST_COST_WITHOUT_CAPMost common; max results, no bid control
CBO + COST_CAPMost common for performance with CPA target
CBO + BID CAPHybrid: budget at campaign, max bid per impression
ABO + LOWEST_COST_WITHOUT_CAPManual budget per adset, platform optimizes within
ABO + COST_CAPPer-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.

FAQ

What's the difference between CBO and ABO in Wevion?

In Wevion, CBO (Campaign Budget Optimization) sets one budget at the campaign level and lets the platform distribute spend across ad sets dynamically based on performance. ABO (Ad Set Budget Optimization) sets a separate budget on each ad set, so you control the distribution. CBO means lower manual overhead and faster learning; ABO gives predictable per-ad-set spend.

When should I use CBO versus ABO?

Use CBO when you have three to five similar ad sets and trust the platform to optimize, or when you run ten-plus ad sets where manual budgeting is unmanageable. Choose ABO in Wevion when testing distinct audiences side-by-side for a fair comparison, protecting a specific ad set's spend, or launching a smaller-budget campaign.

Can I switch between CBO and ABO mid-campaign?

You can, but it resets learning. In Wevion, switching CBO to ABO restarts the platform's learning phase, and ABO to CBO can take three to seven days to re-stabilize — so avoid changing a winning campaign. Best practice is to pick CBO or ABO at launch and stick with it; to change, pause and create a new campaign.

What budget optimization values does Bulk Launch accept?

Wevion's Bulk Launch budget_optimization column accepts CBO (the default), ABO, BID CAP, COST CAP, and MIN ROAS. The last three are CBO with a specific bid strategy layered on top — bid cap for a maximum unit cost, cost cap for a target CPA, and min ROAS for a return threshold.

Why won't my COST_CAP bid strategy spend?

Your COST_CAP isn't spending because it lacks conversion data. In Wevion, the COST_CAP and MIN_ROAS bid strategies require roughly 30-plus conversions in the optimization window to learn, similar to Smart Bidding. Until you reach that volume, switch to LOWEST_COST_WITHOUT_CAP and let conversions accumulate first.

FAQ

What's the difference between CBO and ABO in Wevion?

In Wevion, CBO (Campaign Budget Optimization) sets one budget at the campaign level and lets the platform distribute spend across ad sets dynamically based on performance. ABO (Ad Set Budget Optimization) sets a separate budget on each ad set, so you control the distribution. CBO means lower manual overhead and faster learning; ABO gives predictable per-ad-set spend.

When should I use CBO versus ABO?

Use CBO when you have three to five similar ad sets and trust the platform to optimize, or when you run ten-plus ad sets where manual budgeting is unmanageable. Choose ABO in Wevion when testing distinct audiences side-by-side for a fair comparison, protecting a specific ad set's spend, or launching a smaller-budget campaign.

Can I switch between CBO and ABO mid-campaign?

You can, but it resets learning. In Wevion, switching CBO to ABO restarts the platform's learning phase, and ABO to CBO can take three to seven days to re-stabilize — so avoid changing a winning campaign. Best practice is to pick CBO or ABO at launch and stick with it; to change, pause and create a new campaign.

What budget optimization values does Bulk Launch accept?

Wevion's Bulk Launch budget_optimization column accepts CBO (the default), ABO, BID CAP, COST CAP, and MIN ROAS. The last three are CBO with a specific bid strategy layered on top — bid cap for a maximum unit cost, cost cap for a target CPA, and min ROAS for a return threshold.

Why won't my COST_CAP bid strategy spend?

Your COSTCAP isn't spending because it lacks conversion data. In Wevion, the COSTCAP and MINROAS bid strategies require roughly 30-plus conversions in the optimization window to learn, similar to Smart Bidding. Until you reach that volume, switch to LOWESTCOSTWITHOUTCAP and let conversions accumulate first.

Last updated: 2026-05-17