Budget pools — AI budget allocation
Group campaigns or ad sets into a budget pool and let Wevion reallocate a shared daily budget toward your optimization metric, with WAVO guardrails.
Written By Salvatore Sinigaglia
Last updated 19 days ago
Group campaigns or ad sets into a budget pool and let Wevion reallocate a shared daily budget toward your optimization metric, with WAVO guardrails.
Budget pools — AI budget allocation
A budget pool groups several campaigns or ad sets under one shared daily budget that Wevion reallocates toward your chosen optimization metric. You set the pool's rules (daily budget, allocation frequency, per-member floors/ceilings), then simulate a what-if allocation or execute it — always through WAVO guardrails. Budget pools live in the AI Operations hub at /automation/budget-pools and require the AI-native features to be enabled.
Who is this for
Mediabuyers and managers who run several campaigns or ad sets toward the same goal and want the budget to flow to the best performers automatically — an alternative to hand-tuning each budget or relying only on platform CBO. It complements the Rules Engine: rules react to thresholds; budget pools continuously redistribute a shared budget.
Where it lives
Budget pools are in the AI Operations page (/automation/budget-pools, tab Budget), which also hosts context, strategy, and memory tools. The page requires a workspace-tool role, and budget pools are part of Wevion's AI-native features — if those aren't enabled for your workspace, the page is unavailable.
Creating a pool
Create a pool from the Budget Pools page. Settings:
Members
A pool member is a campaign or ad set. Each member has:
- entityType (
campaignoradset) and entityId - optional adAccountId and entityName
- optional per-member minBudgetCents / maxBudgetCents (override the pool defaults)
- optional weight (bias allocation toward or away from this member)
- isActive flag
Add or reactivate a member, or remove one, from the pool's members list. A pool starts with up to 20 members and you can adjust membership afterward.
Simulate before you commit
Run a what-if allocation (optionally for a date range). It calculates how the budget would be split without changing anything live and stores a simulation log entry so you can review the proposed moves first.
Executing an allocation
Applying an allocation pushes the budget changes live. Behavior:
- Async by default — the allocation is queued as a background worker; pass
async: falseto run it synchronously - WAVO guardrails always run — the allocation is treated as a budget-change spend event carrying the pool's daily budget, so your EUR caps and account/platform whitelist apply. If any guardrail check blocks it, the request returns 423 Locked
- Rate-limited — a repeated manual allocate can return 429
- Idempotent per day — a retried allocate for the same pool on the same UTC day won't double-count against your daily caps
Because it goes through WAVO, budget pools respect the same Wavo Limits & Autonomy controls (kill-switch, spend caps, protected entities) that govern all automated actions.
Reviewing allocations
- Allocation logs — recent simulation and execution logs, so you can see what moved and why
- Diminishing returns — flags active campaign members that grew spend recently without improving ROAS, i.e. candidates to cap or trim
Roles
Managing a pool
- Update settings (does not change runtime allocation logic mid-run)
- Pause a pool by setting
status: paused - Delete — soft-deletes the pool and deactivates its members
Common issues
- Budget-pool API returns 503: AI-native features are disabled for the workspace. They must be enabled to use budget pools.
- Allocation blocked (423): a WAVO guardrail stopped it — check your kill-switch, spend caps, and account/platform whitelist in Wavo Limits & Autonomy.
- Allocation returns 429: manual allocations are rate-limited; wait before retrying.
- Budgets not moving: the change is below your
minBudgetChangefloor, or members hit their min/max ceilings. - A member eats too much budget: set a per-member
maxBudgetCentsor lower itsweight.
FAQ
What is a budget pool in Wevion?
A budget pool groups several campaigns or ad sets (up to 20 members) under one shared daily budget that Wevion reallocates toward your chosen optimization metric on a set cadence (every 4, 8, 12, or 24 hours). You define floors, ceilings, and a minimum change to avoid churn, then simulate or execute allocations. Pools live in the AI Operations hub at /automation/budget-pools.
How is a budget pool different from platform CBO?
Platform CBO (campaign budget optimization) redistributes budget among ad sets within a single campaign on the ad platform. A Wevion budget pool works across campaigns and ad sets — even across accounts — under one shared daily budget, scores members over a look-back window, and applies changes through WAVO guardrails. See Budget — CBO vs ABO for CBO vs ABO basics.
Can I preview an allocation before it goes live?
Yes. Use the pool's simulate action to compute a what-if allocation without changing anything live; Wevion stores a simulation log so you can review the proposed moves. When you're satisfied, run allocate to apply the changes — which still passes through WAVO guardrails and can be blocked (423) if it exceeds your limits.
Do budget pools respect my Wavo safety limits?
Yes. Every allocation is treated as a budget-change spend event and runs the full WAVO guardrail chain, so your EUR caps and account/platform whitelist apply, and a blocked allocation returns 423 Locked. Allocations are also rate-limited and idempotent per pool per day. Configure these controls in Wavo Limits & Autonomy.