# 预算策略完整文档 > 最后更新: 2026-04-08 > 状态: 二维矩阵已实现并验证,扩量分配策略待实现 --- ## 一、系统概述 ### 1.1 核心机制 通过调整 oCPM 出价(`bid_amount`)控制广告消耗速度,**不设日预算限制**(`day_amount=0`)。出价越高,系统分配的曝光越多,消耗越快;出价越低,消耗越慢。 ### 1.2 运营输入 运营每天提供一句话指令,系统自动完成全部计算: | 输入示例 | 解析结果 | |---------|---------| | "今天小程序预算10w" | `total_budget_yuan=100000, account_id=0`(全账户) | | "账户12345今日预算5w" | `total_budget_yuan=50000, account_id=12345` | 仅需一个参数:**今日总预算(元)**。其余全部由系统自动计算。 ### 1.3 处理流程 ``` 运营输入 "今天小程序预算10w" ↓ Budget Agent(LLM)理解意图,提取参数 ↓ ┌─────────────────────────────────────────────┐ │ 纯计算层(无 LLM,无 API 调用) │ │ │ │ 1. 查询昨日效率数据(ODPS) │ │ 2. 查询当前广告出价/状态(ODPS) │ │ 3. 计算分位数阈值 │ │ 4. 每个广告 → 二维分类 → 决定动作 │ │ 5. 扩量场景 → 增量预算分配建议 │ └─────────────────────────────────────────────┘ ↓ Agent 格式化展示方案 → 运营确认 → 执行出价调整 ``` --- ## 二、依赖数据 ### 2.1 数据源 | 数据表 | 用途 | 关键字段 | |-------|------|---------| | `loghubods.touliu_data` | 裂变效率数据(业务侧) | `rootsourceid`, `首层小程序打开数`, `裂变0层回流数`, `总回流人数` | | `loghubods.ad_put_tencent_creative_day` | 创意-广告关联 | `creative_name`, `ad_id`, `creative_id` | | `loghubods.ad_put_tencent_creative_components` | 创意组件(含落地页路径) | `creative_id`, `page_spec`, `page_type` | | `loghubods.ad_put_tencent_creative_data_day` | 创意消耗数据(腾讯侧) | `creative_id`, `cost`, `valid_click_count`, `dt` | | `loghubods.ad_put_tencent_ad` | 广告配置/状态 | `ad_id`, `account_id`, `bid_amount`, `ad_status` | ### 2.2 数据关联逻辑 ``` touliu_data(业务裂变数据) ↓ rootsourceid 关联 creative_components(创意组件,提取落地页中的 rootSourceId) ↓ creative_name 关联 creative_day(创意维度,关联到 ad_id) ↓ ad_id 关联 ad(广告配置,获取出价/状态) ↓ creative_id 关联 creative_data_day(创意消耗数据,获取 cost) ``` 最终聚合为**广告维度**(ad_id)的效率数据:每个广告的消耗、点击、打开数、裂变回流数。 ### 2.3 关键计算指标 | 指标 | 公式 | 含义 | |------|------|------| | 效率分(efficiency) | `裂变0层回流数 / cost` | 每元消耗带来的裂变回流,越高越好 | | scale_ratio | `今日预算 / 昨日消耗` | >1 扩量,<1 缩量,≈1 持平 | | 有效广告门槛 | `首层小程序打开数 >= 100` | 样本量不足的广告不参与决策 | --- ## 三、决策矩阵(已实现) ### 3.1 分位数阈值 基于昨日**有效广告池**(open_count >= 100)动态计算: | 阈值 | 计算方式 | 含义 | |------|---------|------| | ROI P70 | 效率分的第 70 百分位 | 高于此值 = 高ROI | | ROI P30 | 效率分的第 30 百分位 | 低于此值 = 低ROI | | 消耗 P50 | 单广告昨日消耗的中位数 | 高于此值 = 高跑量 | 实际数据参考(2026-04-07):ROI P70=3.63, P30=2.24, 消耗 P50=294元 ### 3.2 策略判断 | scale_ratio 区间 | 策略名称 | 场景 | |-----------------|---------|------| | < 0.7 | `aggressive_scale_down` | 大幅缩量 | | 0.7 ~ 0.95 | `moderate_scale_down` | 温和缩量 | | 0.95 ~ 1.05 | `maintain` | 持平 | | 1.05 ~ 1.3 | `moderate_scale_up` | 温和扩量 | | > 1.3 | `aggressive_scale_up` | 大幅扩量 | ### 3.3 五种动作 | 动作 | 含义 | 出价变化 | 执行方式 | |------|------|---------|---------| | `keep` | 保持不动 | 不调整 | 跳过 | | `increase` | 提价放量 | +5% ~ +15% | 自动执行 | | `decrease` | 降价控量 | -5% ~ -15% | 自动执行 | | `close` | 建议关停 | 不调整 | 运营手动确认 | | `observe` | 观察不动 | 不调整 | 跳过 | ### 3.4 缩量矩阵 **大幅缩量**(scale_ratio < 0.7): | | 高跑量(≥ P50) | 低跑量(< P50) | |---|---|---| | 高ROI(≥ P70) | `keep` | `keep` | | 中ROI(P30~P70) | `decrease` -10% | `observe` | | 低ROI(< P30) | `decrease` -15% | `close` | **温和缩量**(0.7 ≤ scale_ratio < 0.95): | | 高跑量(≥ P50) | 低跑量(< P50) | |---|---|---| | 高ROI(≥ P70) | `keep` | `keep` | | 中ROI(P30~P70) | `decrease` -5% | `observe` | | 低ROI(< P30) | `decrease` -10% | `close` | ### 3.5 扩量矩阵 **大幅扩量**(scale_ratio > 1.3): | | 高跑量(≥ P50) | 低跑量(< P50) | |---|---|---| | 高ROI(≥ P70) | `keep` | `increase` +15% | | 中ROI(P30~P70) | `keep` | `increase` +5% | | 低ROI(< P30) | `decrease` -10% | `close` | **温和扩量**(1.05 < scale_ratio ≤ 1.3): | | 高跑量(≥ P50) | 低跑量(< P50) | |---|---|---| | 高ROI(≥ P70) | `keep` | `increase` +10% | | 中ROI(P30~P70) | `keep` | `increase` +5% | | 低ROI(< P30) | `decrease` -10% | `close` | ### 3.6 持平矩阵(0.95 ~ 1.05) | | 高跑量(≥ P50) | 低跑量(< P50) | |---|---|---| | 高ROI(≥ P70) | `keep` | `keep` | | 中ROI(P30~P70) | `keep` | `keep` | | 低ROI(< P30) | `keep` | `close` | ### 3.7 验证结果(2026-04-07 数据) | 场景 | 预算 | scale_ratio | keep | increase | decrease | close | observe | |------|------|------------|------|----------|----------|-------|---------| | 大幅缩量 | 10万 | 0.57 | 72 | 0 | 76 | 50 | 40 | | 持平 | 17.5万 | 1.00 | 188 | 0 | 0 | 50 | 0 | | 大幅扩量 | 25万 | 1.42 | 97 | 69 | 22 | 50 | 0 | --- ## 四、扩量预算分配策略(待实现) 扩量场景下,增量预算(= 总预算 - 昨日消耗)通过三个渠道承接: ### 4.1 三个扩量渠道 | 渠道 | 说明 | 风险 | |------|------|------| | 提价放量 | 已有广告提出价,吃更多曝光 | 出价过高会导致成本失控 | | 新建广告 | 在表现好的账户下新建广告 | 低风险,复用已验证账户 | | 新建账户 | 开新账户分散投放 | 新账户需要冷启动 | ### 4.2 先验分配比例 | 场景 | 提价放量 | 新建广告 | 新建账户 | |------|---------|---------|---------| | 温和扩量(1.05~1.3) | 40% | 50% | 10% | | 大幅扩量(> 1.3) | 30% | 45% | 25% | > 这些比例是经验先验值,后续通过后验数据(调价后实际消耗达成率、新广告冷启动成功率、新账户存活率)迭代优化。 ### 4.3 新建广告推荐账户 推荐条件: - 该账户下高ROI广告占比 ≥ 40% - 该账户昨日消耗 ≥ 账户消耗中位数(稳定账户) 每个推荐账户输出: - 建议承接预算金额(按效率加权分配) - 参考出价 = 该账户下高ROI广告的出价中位数 ### 4.4 新建账户建议 - 参考单账户日消耗 = 现有账户消耗中位数 - 建议新建数量 = 新建账户预算 / 参考单账户日消耗(向上取整,至少 1) - 参考出价 = 全局高ROI广告出价中位数 --- ## 五、出价边界与约束 | 约束 | 值 | 说明 | |------|---|------| | 最低出价 | 10 分(0.10 元) | 低于此值跳过 | | 最高出价 | 10000 分(100 元) | 上限保护 | | 出价单位 | 分 | 1 元 = 100 分 | | 调整频率 | 每天一次 | 避免频繁调整导致系统震荡 | | 调整后观察期 | ≥ 2 小时 | 等系统消化出价变化 | --- ## 六、账户级评估 独立于出价调整,提供账户维度的健康度视图: | 稳定性标签 | 条件 | 含义 | |-----------|------|------| | 稳定 | 昨日消耗 ≥ 中位数 | 跑量正常 | | 一般 | 昨日消耗 ≥ P30 | 有消耗但偏低 | | 低量 | 昨日消耗 < P30 | 几乎没跑量 | 扩量建议:稳定 + 效率分高于中位数的账户 → 适合新建广告扩量。 --- ## 七、代码文件索引 | 文件 | 职责 | |------|------| | `tools/budget_calc.py` | 核心计算引擎(阈值、分类、决策、格式化) | | `skills/budget_strategy.md` | Agent 领域知识(策略规则速查) | | `prompts/budget.prompt` | Budget Agent 提示词(流程、输出格式) | | `test_budget.py` | 纯计算层测试脚本(不调 API) | ### 关键函数 | 函数 | 输入 | 输出 | |------|------|------| | `_compute_thresholds(df_valid)` | 有效广告 DataFrame | `{roi_p70, roi_p30, cost_p50}` | | `_classify_ad(efficiency, cost, thresholds)` | 单广告效率分+消耗+阈值 | `(roi_level, volume_level)` | | `_decide_action(roi_level, volume_level, strategy)` | 分类+策略 | `(action, adj_ratio)` | | `_determine_strategy(scale_ratio)` | 预算/昨日消耗比 | 策略名称字符串 | | `budget_calculate_from_data(...)` | 账户ID+预算+日期 | 完整调整方案 | | `account_evaluate(...)` | 日期 | 账户健康度评估 | | `bid_adjustment_execute(...)` | 调整方案列表 | 执行结果 | --- ## 八、后续迭代方向 | 方向 | 说明 | 依赖 | |------|------|------| | 后验强化 | 用调价后实际数据迭代矩阵幅度参数(含弹性出价公式:`新出价 = 旧出价 × (1 + α × ln(实际ROI/目标ROI)) × 预算压力系数`) | 调价前后消耗/ROI对比数据、目标ROI基准线 | | 赔付规则保护 | close 前检查广告累计转化数是否接近 6 个(腾讯赔付门槛),接近则改为 keep/increase 以触发赔付 | 广告维度累计转化数据 | | 扩量提价幅度收敛 | 当前 +10%~+15% 偏激进,参考行业实践应控制在 +3%~+5%,配合后验数据迭代 | 后验强化完成后调整 | | 扩量预算分配 | 提价/新建广告/新建账户三渠道分配 | 本文档第四章设计 | | 日内 PID 流速控制 | 分钟级监控消耗偏差,动态微调出价,防止预算过早耗尽或花不完 | 实时消耗数据 | | 时段差异化出价 | 按时段调整出价系数 | 分时段投放数据 | | 公众号渠道 | GT/GW roi + 即转 roi | 公众号数据接入 | | 样本不足广告关停 | 独立规则判断是否关停 | 关停策略定义 | | 账户关停判断 | 7天有开启广告但无消耗 → 关停 | 账户历史数据 |