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

CBO

Campaign Budget Optimization (default)

ABO

Ad Set Budget Optimization

BID CAP

CBO with bid cap (control unit cost)

COST CAP

Target CPA (CBO variant)

MIN ROAS

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

LOWEST_COST_WITHOUT_CAP

Default; platform maximizes results within budget

LOWEST_COST_WITH_BID_CAP

Same but you set max bid; platform won't pay more

COST_CAP

Target CPA; platform delivers at or below CPA

LOWEST_COST_WITH_MIN_ROAS

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