algo-ad-budget
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAd Budget Allocation Optimization
广告预算分配优化
Overview
概述
Budget allocation distributes a total advertising budget across campaigns to maximize overall returns. Uses the equal marginal returns principle: allocate until the marginal CPA (or marginal ROAS) is equalized across all campaigns. Handles diminishing returns and budget constraints.
预算分配是将总广告预算分配到各个广告系列中,以最大化整体收益。采用等边际收益原则:分配预算直至所有广告系列的边际CPA(或边际ROAS)相等。可处理收益递减和预算约束问题。
When to Use
使用场景
Trigger conditions:
- Distributing a fixed budget across multiple campaigns or channels
- Identifying diminishing returns and optimal spend levels per campaign
- Rebalancing budget after performance changes
When NOT to use:
- When optimizing bids within a single campaign (use bidding strategy)
- When there's only one campaign (nothing to allocate across)
触发条件:
- 在多个广告系列或渠道间分配固定预算
- 识别收益递减情况及每个广告系列的最优支出水平
- 业绩变化后重新平衡预算
不适用场景:
- 优化单个广告系列内的出价(请使用出价策略)
- 仅存在一个广告系列(无跨系列分配需求)
Algorithm
算法
IRON LAW: Equal Marginal Returns Principle
Optimal allocation makes the MARGINAL return of the last dollar
equal across ALL campaigns. If Campaign A's marginal CPA is $5
and Campaign B's is $15, shift budget from B to A until they equalize.
Total budget constraint: Σ budget_i = total_budget.IRON LAW: Equal Marginal Returns Principle
Optimal allocation makes the MARGINAL return of the last dollar
equal across ALL campaigns. If Campaign A's marginal CPA is $5
and Campaign B's is $15, shift budget from B to A until they equalize.
Total budget constraint: Σ budget_i = total_budget.Phase 1: Input Validation
第一阶段:输入验证
Collect per-campaign: historical spend, conversions, revenue at multiple spend levels. Need at least 3 data points per campaign to fit response curve.
Gate: Sufficient historical data to estimate response curves.
收集每个广告系列的以下数据:不同支出水平下的历史支出、转化量、收入。每个广告系列至少需要3个数据点来拟合响应曲线。
**准入条件:**有足够的历史数据来估算响应曲线。
Phase 2: Core Algorithm
第二阶段:核心算法
- Fit response curve per campaign: conversions = f(spend). Common models: log curve, power curve, or S-curve
- Compute marginal return curve: f'(spend) for each campaign
- Allocate: use Lagrangian optimization or iterative greedy — assign next marginal dollar to campaign with highest marginal return
- Apply constraints: minimum spend floors, maximum caps, channel-specific rules
- 为每个广告系列拟合响应曲线:转化量 = f(支出)。常见模型:对数曲线、幂曲线或S曲线
- 计算边际收益曲线:每个广告系列的f'(支出)
- 分配预算:使用拉格朗日优化(Lagrangian optimization)或迭代贪心算法——将下一单位边际资金分配给边际收益最高的广告系列
- 应用约束条件:最低支出下限、最高支出上限、渠道特定规则
Phase 3: Verification
第三阶段:验证
Check: total allocation = total budget, no campaign below floor or above cap, marginal returns approximately equal at boundaries.
Gate: Allocation sums to budget, constraints satisfied.
检查:总分配额等于总预算,所有广告系列支出不低于下限或高于上限,边界处的边际收益大致相等。
**准入条件:**分配总额符合预算,约束条件均满足。
Phase 4: Output
第四阶段:输出
Return allocation table with expected performance projections.
返回包含预期业绩预测的分配表。
Output Format
输出格式
json
{
"allocation": [{"campaign": "Search-Brand", "budget": 50000, "expected_conversions": 200, "expected_cpa": 250}],
"total": {"budget": 200000, "expected_conversions": 650, "blended_cpa": 308},
"metadata": {"optimization_method": "lagrangian", "response_model": "log_curve"}
}json
{
"allocation": [{"campaign": "Search-Brand", "budget": 50000, "expected_conversions": 200, "expected_cpa": 250}],
"total": {"budget": 200000, "expected_conversions": 650, "blended_cpa": 308},
"metadata": {"optimization_method": "lagrangian", "response_model": "log_curve"}
}Examples
示例
Sample I/O
输入输出示例
Input: Budget: $100K, Campaigns: Search ($50K, 100 conv), Social ($30K, 60 conv), Display ($20K, 20 conv)
Expected: Shift budget from Display (high marginal CPA) to Search (low marginal CPA). e.g., Search $60K, Social $30K, Display $10K.
**输入:**预算:10万美元,广告系列:搜索广告(5万美元,100次转化)、社交广告(3万美元,60次转化)、展示广告(2万美元,20次转化)
**预期结果:**将预算从展示广告(边际CPA较高)转移到搜索广告(边际CPA较低)。例如:搜索广告6万美元,社交广告3万美元,展示广告1万美元。
Edge Cases
边缘情况
| Input | Expected | Why |
|---|---|---|
| One campaign dominates | Most budget to winner | But maintain minimum floor for others |
| All campaigns saturated | Reduce total spend | Spending more won't help |
| New campaign, no data | Use minimum test budget | Need data before optimizing |
| 输入 | 预期结果 | 原因 |
|---|---|---|
| 单个广告系列表现远超其他 | 大部分预算分配给表现最佳的广告系列 | 但需为其他广告系列保留最低支出下限 |
| 所有广告系列均已饱和 | 减少总支出 | 增加支出无法提升收益 |
| 新广告系列,无数据 | 使用最低测试预算 | 需要数据后再进行优化 |
Gotchas
注意事项
- Response curve extrapolation: Don't optimize beyond observed spend ranges. The curve may change shape at higher spend levels.
- Attribution overlap: Users may see ads across campaigns. Last-click attribution double-counts, inflating high-funnel campaign CPA. Use multi-touch attribution.
- Diminishing returns assumption: Not all campaigns follow smooth diminishing returns. Some have step functions (e.g., reaching a new audience segment at a spend threshold).
- Time dynamics: Response curves shift seasonally and competitively. Refit curves monthly or use rolling windows.
- Minimum viable spend: Each campaign needs enough budget to exit the learning phase. Spreading too thin means no campaign gets sufficient data.
- **响应曲线外推:**不要在观测到的支出范围之外进行优化。支出水平过高时,曲线形状可能发生变化。
- **归因重叠:**用户可能会看到多个广告系列的广告。最后点击归因会重复计算,高估漏斗顶部广告系列的CPA。请使用多触点归因(multi-touch attribution)。
- **收益递减假设:**并非所有广告系列都遵循平滑的收益递减规律。部分广告系列存在阶梯式变化(例如,达到某一支出阈值后触达新受众群体)。
- **时间动态:**响应曲线会随季节和竞争环境变化。每月重新拟合曲线或使用滚动窗口。
- **最低可行支出:**每个广告系列需要足够的预算来度过学习阶段。预算过于分散会导致所有广告系列都无法获得足够的数据。
References
参考资料
- For response curve fitting methods, see
references/response-curves.md - For multi-touch attribution integration, see
references/attribution-integration.md
- 响应曲线拟合方法,请参阅
references/response-curves.md - 多触点归因集成,请参阅
references/attribution-integration.md