---
name: platform-rules
description: 做任何决策前先过一遍本规则——腾讯广告平台的硬约束（oCPM学习期、调价幅度上限、数据口径），违反会直接掉量，优先级高于所有业务判断
---

# 腾讯广告平台硬约束

> **优先级最高**：平台规则 > 业务决策。违反平台规则的决策即使"数值上合理"也会掉量。

---

## 本业务固定参数

- **产品形态**：微信小程序（`MARKETING_CARRIER_TYPE_MINI_PROGRAM_WECHAT`）
- **营销目标**：用户增长（`MARKETING_GOAL_USER_GROWTH`）
- **投放渠道**：腾讯广告 Marketing API v3.0
- **出价模式**：oCPM（`BID_MODE_OCPM`，固定）
- **优化目标**：`OPTIMIZATIONGOAL_PAGE_VIEW`（优先）或 `OPTIMIZATIONGOAL_CLICK`

---

## 1. oCPM 学习期硬规则

所有广告固定 oCPM 出价。oCPM 的"前 5 个转化"阶段叫**学习期**，系统在此期间探索人群、优化投放。

**硬约束**：
- **前 5 个转化之内不要调整任何参数**（出价、定向、创意、预算），否则学习期清零
- **24 小时内同一广告调整次数 ≤ 2 次**，超过会触发"频繁调整"惩罚
- **日预算 ≥ 出价 × 20**，否则预算不够支撑探索
- 学习期失败（7 天仍未出满 5 个转化）的广告基本可以关停

**决策含义**：
- 看到 `ad_age_days <= 3` 或 `conversions_count_7d < 5` 的广告，默认 `observe`，不做任何调整
- 即使 ROI 指标看起来低，也先让系统跑完学习期再下结论

---

## 2. 调价幅度上限（平台级）

**单次降价幅度严格 ≤ 30%。**

- 超过 30% 会被平台判定为"剧烈波动"，系统重新进入探索期，量直接掉一半以上
- 提价没有这么严的惩罚，但建议单次 ≤ 20%
- 连续多次调价的累计幅度也不能超过 30%/24h

**决策含义**：
- 如果判断需要大幅降价（ROI 严重偏低），**首选关停而非大幅降价** —— 关停是干净的止损，大幅降价既掉量又继续烧钱

---

## 3. 少广告多素材原则

3.0 的核心策略：**同一广告下挂多个动态创意，系统自动优选**。多个创意的表现数据归集到同一个"广告"学习模型，缩短冷启动、提高 oCPM 优化效率。

**决策含义**：
- **单广告动态创意数量 < 5 → 一律 `observe`**。此时数据样本不足，任何调价都是对噪声的过拟合
- 创意数 ≥ 5 再参与调价决策
- 如果看到某人群包下广告数量多但每条只有 1~2 个创意，可在 reason 里提醒"建议合并广告、补创意后再评估"

---

## 4. 素材疲劳识别

3.0 系统会自动优选素材，但**无法反复救活已疲劳的素材**。

**识别要点**：
- CTR 与 CVR **同时**持续下跌 → 素材疲劳信号
- 单独 CTR 跌但 CVR 稳定 → 可能是流量池扩张，不一定是素材问题
- 单独 CVR 跌但 CTR 稳定 → 落地页/转化路径问题

**决策含义**：
- 素材疲劳时优先换素材（`creative_adjust`），而非直接关停 —— 关停会丢掉 oCPM 学习资产
- reason 中需说明判断依据（哪些指标同时下滑）

---

## 5. 小程序场景特殊性

- **优化目标优先 PAGE_VIEW**（页面浏览），比"点击"更接近真实转化路径

**决策含义**：
- 对短龄广告的低 ROI 要特别谨慎 —— 这是系统性低估，不是真实信号
- reason 中引用 ROI 时，需考虑数据成熟度

---

## 6. 数据口径（别让实时数据骗你）

| 口径 | 延迟 | 用途 |
|------|------|------|
| 实时数据（分时报表） | 15~30 分钟 | **只用于监控异常暴涨**，不用于 ROI 计算 |
| T+1 权威数据（日报） | 次日凌晨 | **唯一可用于 ROI 计算和调价决策的口径** |

**硬规则**：
- ROI 计算、动态ROI_7日均值、调价决策 → 必须用 T+1 日报
- reason 里禁止引用"今日 ROI" —— 要么用昨日，要么用 7 日均值

---

## 7. 执行层硬约束（API 写操作规范）

- **批量操作单次 ≤ 50 条**
- **单账户 QPS ≤ 8**（平台上限 10，留 buffer）
- **`FREQUENCY_LIMIT` 错误必须指数退避重试**
- **所有写操作必须带 `operation_id`**（幂等键）

**注意**：执行层约束由 `execution_engine.py` 自动处理，你（LLM）不需要管。但要知道一次输出超过 50 个调整决策会分批执行，这是正常的，不要人为压缩决策数量。

---

## 8. 层级结构（3.0 vs 旧版）

| 旧版 2.0（已废弃） | 新版 3.0（当前） |
|-------------------|----------------|
| 推广计划（Campaign） | 已移除 |
| 广告组（AdGroup） | 业务概念改为"广告" |
| 广告（Ad） | **广告** — 顶层单位 |
| 广告创意 | **动态创意（Dynamic Creative）** |

API 端点中 `adgroups` 是技术命名保留，业务上就是"广告"。

---

## 使用这份 Skill 的姿势

1. **先于业务判断**：看到任何广告数据，先按本规则过一遍（学习期 / 创意数 / 数据成熟度 / 口径），过关了才看候选标记
2. **reason 中可引用**：如果决策基于平台规则（如"创意数不足 5 不做调价"），reason 里写清楚
3. **规则冲突时，平台规则 > 候选标记**：例如候选标记说降价，但广告处于学习期 → 按平台规则输出 observe
