budget_strategy_detail.md 11 KB

预算策略完整文档

最后更新: 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天有开启广告但无消耗 → 关停 账户历史数据