Delegate: Multi-Campaign with Budgets
Context: Demand source (DSP) running 3 simultaneous campaigns — a Q1 brand campaign, a CTV performance campaign, and an always-on fallback. Each has its own budget. Higher-priority campaigns win when multiple rules match.
Expected result: Brand campaign gets first pick of inventory; CTV performance is second; always-on fills the rest.
Strategy JSON
{
"version": "1.0",
"dsp_id": "your-dsp-uuid",
"campaigns": [
{
"id": "q1-brand",
"name": "Q1 Brand Awareness",
"active": true,
"priority": 1,
"daily_budget": 1000.00,
"start_date": "2026-01-01",
"end_date": "2026-03-31"
},
{
"id": "ctv-perf",
"name": "CTV Performance",
"active": true,
"priority": 2,
"daily_budget": 500.00
},
{
"id": "always-on",
"name": "Always On",
"active": true,
"priority": 99
}
],
"rules": [
{
"name": "Q1 Brand — CTV Prime Time",
"campaign_id": "q1-brand",
"conditions": {
"device.devicetype": "3",
"hour": ["17", "18", "19", "20", "21", "22", "23"]
},
"bid": {
"base_cpm": 8.00,
"max_cpm": 15.00,
"min_cpm": 5.00
},
"priority": 1
},
{
"name": "Q1 Brand — Any CTV",
"campaign_id": "q1-brand",
"conditions": {
"device.devicetype": "3"
},
"bid": {
"base_cpm": 6.00,
"max_cpm": 10.00,
"min_cpm": 4.00
},
"priority": 2
},
{
"name": "CTV Performance — MENA",
"campaign_id": "ctv-perf",
"conditions": {
"device.devicetype": "3",
"geo.country": ["AE", "SA", "KW", "QA"]
},
"bid": {
"base_cpm": 7.00,
"max_cpm": 12.00,
"min_cpm": 4.00
},
"priority": 3
},
{
"name": "Always On — Any",
"campaign_id": "always-on",
"conditions": {},
"bid": {
"base_cpm": 1.50,
"max_cpm": 3.00,
"min_cpm": 0.50
},
"priority": 99
}
],
"default_bid": 0
}Priority resolution
When multiple rules match the same auction, the lowest priority number wins:
| Scenario | Matching rules | Rule used | Bid |
|---|---|---|---|
| CTV + UAE + 20:00 | Q1 Brand Prime Time, Q1 Brand CTV, CTV Perf MENA, Always On | Q1 Brand Prime Time (priority 1) | $8.00 |
| CTV + UK + 20:00 | Q1 Brand Prime Time, Q1 Brand CTV, Always On | Q1 Brand Prime Time (priority 1) | $8.00 |
| CTV + UAE + 10:00 | Q1 Brand CTV, CTV Perf MENA, Always On | Q1 Brand CTV (priority 2) | $6.00 |
| Mobile + UK | Always On | Always On (priority 99) | $1.50 |
Campaign date scheduling
Q1 Brand has start_date: 2026-01-01 and end_date: 2026-03-31. After March 31, the campaign’s rules are skipped automatically — no manual deactivation needed. CTV Performance and Always On continue running indefinitely.
To pause a campaign mid-flight without deleting it: set "active": false.
Budget waterfall
When Q1 Brand’s $1,000 daily budget is exhausted:
- Q1 Brand rules are skipped for the rest of the day
- CTV Performance rules take over for CTV inventory
- Always On handles everything else
Budget resets at midnight UTC daily.