| name | jiayi-ads-analytics-expert-public |
| description | 全媒体广告分析专家技能(公共版)。支持百度/360/腾讯/Google/Bing五平台,引导式MCP安装配置,自动生成含关键词、创意、素材分析的结构化日报。 |
| description_zh | 全媒体广告分析专家(公共版) |
| description_en | Multi-platform Ads Analytics Expert (Public) |
| disable | false |
| agent_created | true |
全媒体广告分析专家(公共版)
When to use
当用户提出以下意图时触发:
- "帮我出日报" / "看看昨天投放数据" / "广告日报"
- "看下今天/昨天的展点消" / "各渠道数据怎么样"
- "投放分析" / "每日投放复盘"
- 任何涉及多平台广告数据汇总分析的请求
首次使用检查(Onboarding)
每次执行日报前,先检查环境是否就绪:
- 检查 ~/.workbuddy/mcp.json 中是否有对应平台的MCP配置
- 对每个已配置的MCP,调用验证接口确认token有效
- 如果某平台未配置或token失效,引导用户完成配置/刷新
- 通过MCP的list_accounts/get_account_info等接口动态获取用户账户列表
- 不硬编码任何账户ID——所有账户信息从API运行时获取
报告结构
Sheet 1:投放总览 & Highlight
1.1 核心指标大盘
- 全渠道日总消费 / 总展现 / 总点击 / 总转化 / 总 CPA
- 日环比(与前一天对比,标注↑↓和百分比变化)
- 周同比(与上周同天对比)
1.2 分类汇总
| 分类维度 | 内容 |
|---|
| 按广告类型 | SEM搜索 vs 信息流展示,各自消费/转化/CPA占比 |
| 按媒体平台 | 百度/360/腾讯/Google/Bing 各自表现 |
1.3 Highlight 总结(3-5条,一句话+数据)
🟢 好的:[结论] — [数据支撑]
🔴 差的:[问题] — [数据] — [影响]
🟡 关注:[观察点] — [数据]
1.4 现状与问题诊断(2-4条核心问题,每条含数据证据和影响评估)
1.5 历史问题追踪(从ad-report-tracker.json读取,展示到期/过期/已解决事项)
- 🔴 已过期未解决 → 升级为P0
- 🟡 今日到期 → 用当日数据给出结论
- 🟢 观察中 → 简要标注当前状态
- ✅ 近3天已解决 → 一行带过
1.6 今日 TODO(3-5条,按优先级排列,含追踪到期升级的P0)
P0(立即处理):[具体操作] — [原因] — [预期效果]
P1(今日完成):...
P2(本周跟进):...
Sheet 2:搜索广告 (SEM) 明细
结构原则:总→分(先全渠道汇总→再按渠道分账户→每个账户按统一维度展开),每个渠道的分析维度必须一致。
SEM完整分析维度(缺一不可):
- 账户×出价方式维度
- 词性维度(品牌/通用/场景/竞品)
- 计划明细
- 关键词明细(含匹配模式分析)
- 创意效果维度(标题/描述的CTR对比)
- Highlight + 问题 + TODO(具体到词+创意+匹配+出价)
2.1 SEM全渠道汇总表
| 渠道 | 账户 | 出价方式 | 消费 | 展现 | 点击 | CTR | CPC | 转化 | CPA | 日环比消费 | 日环比CPA |
|---|
| 百度 | 账户A | CPC | ... | | | | | | | | |
| 百度 | 账户B | CPC+OCPC | ... | | | | | | | | |
| 百度 | 账户C | OCPC | ... | | | | | | | | |
| 360 | 账户D | CPC | ... | | | | | | | | |
| 360 | 账户E | OCPC | ... | | | | | | | | |
| 360 | 账户F | — | ... | | | | | | | | |
| Google | 账户G | CPC | ... | | | | | | | | |
| Bing | 账户H | CPC | ... | | | | | | | | |
| 腾讯 | 账户I | OCPC | ... | | | | | | | | |
| SEM合计 | | | | | | | | | | | |
注:以上账户为示例占位符,实际运行时通过MCP/API动态获取用户已配置的账户列表。
重要:转化数据获取规则
- 百度:所有账户(含CPC)都有转化数据(ocpcConversionsDetail25+3)
- 360 CPC:从 /dianjing/report/keyword 的 converts 字段获取(CPC账户也能看转化!)
- 360 OCPC:从 /dianjing/report/Ocpc 获取
- Google/Bing/搜狗:API直接返回 conversions
2.2 分词性汇总(跨渠道统一维度)
将所有渠道的计划按词性分类(品牌词/通用词/场景词/竞品词),横向对比:
| 词性 | 消费 | 占比 | 点击 | 转化 | CPA | vs前日CPA | 效率评估 |
|---|
| 品牌词 | ¥xxx | xx% | | | | | 核心护城河 |
| 通用词 | ¥xxx | xx% | | | | | 主要拉新 |
| 场景词 | ¥xxx | xx% | | | | | 精准场景 |
| 竞品词 | ¥xxx | xx% | | | | | 截流 |
2.3 各渠道计划明细(统一格式,按渠道分块展示)
每个渠道一个子表格,列固定为:
| 计划名 | 词性 | 出价方式 | 消费 | 展现 | 点击 | CTR | CPC | 转化 | CPA | 日环比CPA | 标记 |
|---|
标记规则:🟢CPA<均值且有量 / 🔴CPA>均值2倍或零转化 / 🟡待观察
按消费降序排列,每渠道Top10。
2.4 关键词/检索词 Top20(跨渠道合并排序)
将所有渠道的关键词按消费合并排序:
| 关键词 | 渠道 | 计划 | 匹配模式 | 消费 | 点击 | CTR | CPC | 转化 | CPA | 操作建议 |
|---|
操作建议列必须具体到操作层面(不能空泛),例如:
- "暂停(¥1,154花费仅0.5转化)"
- "出价+20%(CPA远低于均值,放量空间大)"
- "改精确匹配(当前智能匹配CTR仅1.4%)"
- "加否词'免费'(检索词分析发现大量无效流量)"
2.5 创意效果分析
创意数据获取方式(已验证可用):
- 百度:
reportType=12, levelOfDetails=7(返回name数组: [账户,计划,单元,标题,描述1,描述2])
- Google:GAQL查
ad_group_ad 资源,含 ad_group_ad.ad.responsive_search_ad.headlines + metrics
- 360:
POST /dianjing/report/creative(form-urlencoded,返回 title/clicks/views/totalCost 等)
- Bing:MCP
get_ads(ad_group_id) 逐广告组查
按渠道展示创意标题/描述的效果对比(同计划内不同创意的CTR、转化率差异):
| 渠道 | 计划 | 创意标题(摘要) | 展现 | 点击 | CTR | 转化 | 转化率 | 评价 |
|---|
分析维度:
- 同计划内多条创意的CTR对比:哪条标题吸引点击更多
- 转化率差异:CTR高不代表转化好,要看点击后的转化率
- 创意方向归类:功能卖点型 vs 场景痛点型 vs 数据佐证型 vs 竞品对比型
- 建议:具体到"XX计划的创意A(CTR 5.2%)优于创意B(CTR 2.1%),建议暂停B保留A,新增C方向测试"
2.6 匹配模式效率分析
| 匹配模式 | 消费 | 占比 | 点击 | CTR | CPC | 转化 | CPA | 效率对比 |
|---|
| 精确 | | | | | | | | |
| 短语 | | | | | | | | |
| 智能/广泛 | | | | | | | | |
给出匹配模式优化建议:哪些词应从智能改精确(流量大但转化差),哪些词可从精确改短语(量太小需放量)。
2.7 SEM Highlight & 问题诊断 & TODO
━━━ 🟢 表现好的(继续保持/加量)━━━
具体到:[渠道]-[账户]-[计划]-[关键词]-[匹配模式]-[创意方向] → 数据 → 建议操作
例:百度「品牌词X」精确匹配 CPA低/日转化高 → 建议出价+15%争取更多展现份额
例:Google「品牌词X」精确匹配 创意"XXX" CTR高 → 优质创意,其他计划可复用此标题方向
━━━ 🔴 表现差的(需立即处理)━━━
具体到:[渠道]-[账户]-[计划]-[关键词/创意] → 数据 → 具体操作
例:Google「竞品词Y」短语匹配 消费高/低转化/CPA极高 → 立即暂停此词
例:百度 AI场景计划 创意B "XXX" CTR极低 → 暂停此创意,换功能卖点方向
━━━ 🟡 需关注(观察中)━━━
具体到对象+阈值+观察期限
例:360 OCPC CPA超出锁价14% → 观察3天,若持续超出则联系媒体调整
━━━ 📌 SEM TODO ━━━
P0: [具体操作] — 哪个平台/账户/计划/词/创意 — 怎么操作 — 预期效果
P1: ...
P2: ...
Sheet 3:信息流 & 展示广告明细
结构原则:同样总→分,统一维度。
信息流完整分析维度(缺一不可):
- 渠道×账户维度
- 广告组明细(素材方向+定向+出价)
- 素材效率矩阵(素材类型×定向方式交叉)
- 素材创意对比(具体到创意标题/图片/视频的效果差异)
- 定向人群效率对比
- 落地页转化率对比(如有数据)
- 投放时段效率(如有数据)
- Highlight + 问题 + TODO(具体到广告组+素材+定向+出价的操作建议)
3.1 信息流全渠道汇总表
| 渠道 | 账户 | 出价方式 | 消费 | 展现 | 点击 | CTR | CPC/CPM | 转化 | CPA | 日环比消费 | 日环比CPA |
|---|
| 腾讯 | 账户J | OCPM+OCPC | | | | | | | | | |
| 360展示 | 账户K | 屏保/弹窗 | | | | | | | | | |
| 360展示 | 账户L | 屏保/弹窗 | | | | | | | | | |
| 信息流合计 | | | | | | | | | | | |
注:以上账户为示例占位符,实际运行时通过MCP/API动态获取用户已配置的账户列表。
3.2 广告组/素材明细(统一格式)
| 广告组名 | 素材类型 | 素材方向 | 定向方式 | 出价方式 | 消费 | 展现 | 点击 | CTR | 转化 | CPA | 日环比CPA | 标记 |
|---|
字段提取规则(从广告组命名规范中解析):
- 素材类型:图文/横版视频/竖版视频/应用下载
- 素材方向:根据用户命名规范解析
- 定向方式:通投/排联盟-排已转化/自定义人群等
- 出价方式:OCPM/OCPC
按消费降序,标记规则同SEM。
3.3 素材效率矩阵(按素材类型×定向方式交叉分析)
| 素材类型\定向 | 通投(OCPM) | 排联盟(OCPM) | 通投(OCPC) | 排联盟(OCPC) |
|---|
| 图文-方向A | CPA¥xx/转化xx | CPA¥xx/转化xx | | |
| 横版视频-方向B | | | CPA¥xx/转化xx | |
| 横版视频-方向C | | | CPA¥xx/转化xx | CPA¥xx/转化xx |
| 应用-方向D | CPA¥xx/转化xx | | | CPA¥xx/转化xx |
标注每个格子的CPA和转化数,方便一眼看出哪个"素材×定向"组合最优。
3.4 创意素材效果对比
| 素材/创意名 | 广告组 | 类型 | 展现 | 点击 | CTR | 转化 | CVR(转化率) | CPA | 评价 |
|---|
分析维度:
- 同方向不同素材的CTR对比:哪个创意/视频的点击率更高
- CTR vs CVR的关系:高CTR不代表高转化,要看完整漏斗
- 创意疲劳度:CTR是否在持续下降(对比近3天趋势)
- 建议:具体到"XX素材CTR下降疑似疲劳,建议更换;YY方向CTR+CVR双高,建议追加预算+复制类似素材"
素材图片获取方式:
- 腾讯广告:
dynamic_creatives/get(filtering by adgroup_id) → 取 creative_components.image[].value.image_id → images/get(filtering by image_id, fields含thumb_preview_url) → 用 thumb_preview_url(CDN链接,公开可访问)
- preview_url 是 api.e.qq.com 域名需要token才能访问,日报里必须用 thumb_preview_url
- 360展示:
/display/report/cost 直接返回 materialUrls 字段(CDN链接,公开可访问)
- 搜索广告(百度/Google/360搜索/Bing):纯文字创意,无图片
日报中的图片展示规则:
- 信息流/展示广告Sheet中,Top消费素材需展示缩略图(
)
- 按消费降序展示Top10素材,每个素材含:缩略图 + 创意名 + 消费 + 点击 + CTR + 转化 + CPA
- 用于直观对比哪个视觉素材效果好/差
3.5 定向人群效率对比
| 定向方式 | 消费 | 展现 | 转化 | CPA | CPM | 人群质量评估 |
|---|
| 通投 | | | | | | |
| 排联盟-排已转化 | | | | | | |
| 其他定向 | | | | | | |
3.6 信息流 Highlight & 问题诊断 & TODO
━━━ 🟢 优质组合(加预算/扩展)━━━
具体到:[广告组名] → 素材类型+定向+出价 → 数据 → 建议
例:「方向A(通投OCPM)」CPA低/有量 → 预算+50%,同时复制此方向新建横版视频素材测试
━━━ 🔴 低效组合(降预算/暂停/换素材)━━━
具体到:[广告组名] → 问题 → 具体操作
例:「方向B(OCPC)」CPA飙升仅少量转化 → 暂停此组,将预算转移给CPA低的组
例:360展示「XX人群-屏保」CTR极低 → 创意疲劳,建议更换素材
━━━ 🟡 素材/定向策略建议 ━━━
基于矩阵+创意+定向分析综合给出:
- 最优组合:[素材类型] × [定向] × [出价] 的胜出公式
- 应扩展:哪类素材方向+哪种定向正在起量
- 应收缩:哪类持续低效
- 新测试方向:基于现有数据推断可能有效的新组合(素材方向+定向+出价方式)
- 创意迭代:哪些素材需要更新(CTR下降/疲劳)
━━━ 📌 信息流 TODO ━━━
P0: [具体操作] — 哪个广告组/素材 — 怎么操作(调预算/换素材/改定向/调出价/新建测试组)— 预期效果
P1: ...
P2: ...
Sheet 4:近7日新增动作效果追踪
本模块专门追踪最近7天内新增的投放动作(加词、加创意、改匹配、加素材、新计划上线等),评估其效果,给出"有没有用"的结论和后续优化建议。
4.1 新增动作识别
通过以下方式识别近7日新增:
- 搜索广告:对比最近7天 vs 之前7天的关键词/计划/创意列表,新出现的即为"新增"
- 信息流:近7天内首次有消费记录的广告组/素材
- 也可由用户手动告知"我昨天加了XX"
4.2 新增关键词效果
| 新增词 | 所属计划 | 上线天数 | 消费 | 点击 | 转化 | CPA | vs 同计划均值 | 结论 |
|---|
| xxx | ... | 3天 | ¥xx | xx | x | ¥xx | CPA高30% | 🔴 效果差,建议降价 |
结论标记:
- ✅ 有效:CPA ≤ 同计划均值,且有转化
- ⚠️ 待观察:上线≤2天,数据量不足以判断(消费<¥100 或 点击<30)
- 🔴 无效:CPA > 同计划均值 50% 以上,或花费>¥200 仍无转化
4.3 新增创意/素材效果
| 新素材 | 计划/广告组 | 上线天数 | 展现 | 点击 | CTR | 消费 | 转化 | CPA | vs 老素材 | 结论 |
|---|
结论标记:
- ✅ 跑赢老素材:CTR 或 CPA 优于同组老素材均值
- ⚠️ 持平/待观察:差异<10%,或数据量不够
- 🔴 跑输老素材:CPA 高于老素材 30%+ 或 CTR 低于老素材 50%+
4.4 匹配模式/出价调整效果
| 调整内容 | 调整前(近7日均值) | 调整后 | 变化 | 结论 |
|---|
| XX词改精确→智能 | CPC¥3/CTR 5% | CPC¥4/CTR 8% | CTR↑60% CPC↑33% | ⚠️ 流量增但成本升,观察CPA |
| XX计划出价+20% | 日消¥500/CPA¥20 | 日消¥800/CPA¥22 | 量↑60% CPA↑10% | ✅ 有效放量 |
4.5 新增动作总结 & 建议
✅ 有效动作(继续保持/加强):
- [具体动作] → [效果数据] → [下一步建议]
🔴 无效动作(需要调整/停止):
- [具体动作] → [效果数据] → [建议操作]
⚠️ 待观察(数据不足,继续跑2-3天再判断):
- [具体动作] → [当前数据] → [判断标准:达到XX则保留,否则停止]
判断"有没有用"的标准:
- 新词/新素材:CPA ≤ 同计划/同组历史均值 → 有用
- 匹配调整:CTR 提升且 CPA 未恶化 → 有用
- 出价调整:量级提升且 CPA 涨幅 ≤ 10% → 有用
- 花费 > ¥200 且 0 转化 → 确认无效,建议立即暂停
- 上线 ≤ 2 天且消费 < ¥100 → 数据不足,标"待观察"
核心指标定义
| 指标 | 公式 | 说明 |
|---|
| 消费 | API直接返回 | 单位:¥(Google用汇率7.2折算) |
| 展现 | impression | 广告被展示次数 |
| 点击 | click | 被点击次数 |
| CTR | 点击/展现 | 点击率 |
| CPC | 消费/点击 | 单次点击成本 |
| CPM | 消费/展现×1000 | 千次展现成本 |
| 转化数 | 注册+表单(百度)/ converts(360)/ conversions(腾讯/Google/Bing) | 转化事件数 |
| CPA | 消费/转化数 | 单次转化成本 |
| 日环比 | (今日值-昨日值)/昨日值 | 成本类↑为恶化(红)↓为改善(绿);量类↑为增长(绿)↓为下滑(红) |
数据拉取方式
百度搜索
- API:
POST https://api.baidu.com/json/sms/service/ReportService/getRealTimeData
- 认证: JSON body header 里放
accessToken + userName(驼峰,传accounts.json里的name字段即可,任意非空字符串即可)
- body字段名必须用
realTimeRequestType(不是reportRequestType!用错会报81012)
- 必须加
unitOfTime: 5, statRange: 2
- 账户级:
reportType=2, levelOfDetails=2
- 计划级:
reportType=5, levelOfDetails=3
- 关键词级:
reportType=14, levelOfDetails=11
- 创意级:
reportType=12, levelOfDetails=7(返回name: [账户,计划,单元,标题,描述1,描述2])
- 转化字段:
ocpcConversionsDetail25(应用注册)+ ocpcConversionsDetail3(表单提交)
conversion 字段总返回0,必须用 ocpcConversionsDetail 系列
- performanceData 必须含
impression 和 click(必填)
- Token刷新: 用 refresh-tokens 脚本(URL: https://u.baidu.com/oauth/refreshToken)
- 账户列表: 从 accounts.json 动态读取用户已配置的百度账户列表
360搜索
- 登录:
POST https://api.e.360.cn/account/clientLogin(header: apiKey, body: username+passwd)
- 密码加密: MD5→hex字符串(UTF-8,32字节)→AES-CBC(key=apiSecret前16,IV=后16,无padding)→64位hex
- 所有POST请求必须用 Content-Type: application/x-www-form-urlencoded(不是JSON!)
- Token文件: 从MCP配置的token存储路径读取
- 搜索计划消耗:
POST /dianjing/report/campaign (form-urlencoded: startDate=YYYY-MM-DD&endDate=YYYY-MM-DD)
- 搜索转化数据(campaign接口不返回转化!必须额外调以下接口):
- OCPC转化:
POST /dianjing/report/Ocpc(只有OCPC账户有,T+1,字段: converts/factConverts/ocpcCpa/totalCost)
- CPC关键词转化:
POST /dianjing/report/keyword(字段含 converts/convertsCost)
- 展示广告转化:
POST /display/report/adtransform(返回 count + transform数组明细)
- 搜索创意报表:
POST /dianjing/report/creative(返回 creativeId/title/clicks/views/totalCost 等)
- 展示广告消耗:
POST /display/report/cost
- 账户列表: 从 accounts.json 动态读取用户已配置的360账户列表(搜索+展示)
腾讯广告
- API:
GET https://api.e.qq.com/v3.0/daily_reports/get
- Token: 从MCP配置的环境变量读取(支持多组token对应不同子客账户)
- 展示互选子客: level=REPORT_LEVEL_ADGROUP, group_by=['adgroup_id']
- 搜索推广子客: level=REPORT_LEVEL_ADVERTISER_TOTAL, group_by=['date'](必须加group_by)
- 转化字段:
conversions_count
- CPA 需自算: cost/conversions_count(API 不直接返回 conversion_cost)
- 费用单位: 分(需÷100转元)
- 账户列表: 从MCP配置的环境变量动态获取account_id
Google Ads
- 用 GAQL 查询 v20 API
- URL:
https://googleads.googleapis.com/v20/customers/{customer_id}/googleAds:search
- Header: Authorization + developer-token + login-customer-id(如果有MCC管理账号,必须在header中加 login-customer-id=MCC的Customer ID)
- 指标: metrics.cost_micros(÷1e6=USD), metrics.impressions, metrics.clicks, metrics.ctr, metrics.conversions, metrics.cost_per_conversion
- 汇率: USD×7.2=CNY
- 账户信息: 从MCP配置的环境变量读取 customer_id、developer-token 等
Bing Ads
- 用 Python bingads SDK + ReportingServiceManager
- Account ID / Customer ID: 从MCP配置的环境变量读取
report.Scope.AccountIds.long = [account_id], Campaigns = None
- 必须加 report.Aggregation = 'Daily'(否则报 ReportAggregation 枚举错误)
- 报表提交后自动轮询下载 CSV
- 列: TimePeriod, CampaignName, Impressions, Clicks, Ctr, AverageCpc, Spend, Conversions, CostPerConversion
- MCP get_campaigns需传多类型: 'Search DynamicSearchAds Shopping Audience PerformanceMax'
输出规则
- 所有洞察必须有数据支撑,不做空泛评价
- TODO 必须具体可执行,包含"哪个账户/哪个计划/做什么操作/预期效果"
- 成本类指标环比:↑ 为恶化(红色)、↓ 为改善(绿色)
- 效率/量级指标环比:↑ 为增长(绿色)、↓ 为下滑(红色)
- 日报风格:简洁抓重点,不堆砌数据,每个洞察一句话
- 默认中文输出
- 输出格式为 HTML(单文件,含内联CSS,深色主题,清晰易读),文件名:
{品牌名}_{YYYYMMDD}_广告日报.html
- HTML 设计要求:深色背景、表格紧凑、关键数据突出(大字/颜色标记)、移动端适配
- 用
preview_url 工具展示给用户,同时用 deliver_attachments 交付文件
- 如当日数据为空(如还没消费),标注"截至N点数据"或"暂无消费"
Pitfalls
- 百度转化字段不是
conversion,是 ocpcConversionsDetail25 + ocpcConversionsDetail3
- 百度
performanceData 必须含 impression 和 click,否则报 invalid
- 百度 body 字段名必须是
realTimeRequestType,不是 reportRequestType(后者报81012)
- 百度必须加
unitOfTime: 5, statRange: 2
- 百度 userName 传 accounts.json 里的 name 字段(任意非空字符串即可)
- 百度 token 刷新 URL 是
https://u.baidu.com/oauth/refreshToken(不是api.baidu.com/oauth也不是iam.baidu.com)
- 腾讯广告费用单位是分不是元,要÷100
- 腾讯搜索推广子客需要用
REPORT_LEVEL_ADVERTISER_TOTAL + group_by=['date'],展示互选子客用 REPORT_LEVEL_ADGROUP + group_by=['adgroup_id']
- Google Ads API 需要 v20(v16-v18 已下线返回404)
- Google Ads 如果有MCC管理账号,必须在header中加 login-customer-id=MCC的Customer ID
- 360 OCPC 报表只有 T+1 结算数据(当天拉不到当天的转化)
- 360 展示广告 cost 接口当天数据 totalCost 可能为0(当天结算未完成),建议拉昨天
- 360 报告接口返回404时,通常是 token 过期——需重启 MCP 让360重新自动登录
- Bing 报表必须加
report.Aggregation = 'Daily'(否则枚举错误)
- Bing 报表是异步的,用 ReportingServiceManager 自动处理
Verification
- 检查每个平台是否都有数据返回(非空)
- 交叉验证:总消费 = 各渠道消费之和
- CPA 计算验证:消费/转化 = 表中 CPA 值
- 环比方向验证:成本↑标红、量级↑标绿
配套定时任务(Automation)
使用本skill建议配置以下WorkBuddy自动化任务:
| 任务 | 频率 | 说明 |
|---|
| 百度营销Token自动刷新 | 每天9:00 | 运行 refresh-tokens 脚本 |
| 腾讯广告Token自动刷新 | 每天8:30 | 调用 oauth_refresh_token 刷新token |
| 每日广告投放日报 | 每天9:00/10:00 | 调用本skill生成昨日全平台日报 |
Token刷新必须在日报生成之前执行(百度/腾讯token 24h过期,日报拉数据需要有效token)。
创建方式:在WorkBuddy对话中直接说"帮我创建百度token每天9点自动刷新的定时任务"即可。
日报记忆与连续性追踪
机制说明
日报不是孤立的——每天的问题诊断、TODO建议、待观察事项必须形成跨天追踪链。上一份日报说的"观察3天再判断"、"本周跟进"的事项,到期后必须在新日报中给出结论。
追踪日志文件
- 路径:
{workspace}/.workbuddy/memory/ad-report-tracker.json
- 格式:JSON数组,每条记录一个待追踪事项
- 每次出日报时先读取此文件,检查是否有到期/过期事项需要回顾
追踪记录结构
{
"id": "20260528-001",
"created_date": "2026-05-28",
"due_date": "2026-05-31",
"category": "observe|action|warning",
"priority": "P0|P1|P2",
"platform": "百度|360|腾讯|Google|Bing|全渠道",
"target": "具体计划/关键词/广告组名",
"issue": "问题描述(一句话)",
"threshold": "判断标准(如:CPA>60则暂停,CTR<1%则换素材)",
"baseline_data": "记录时的基线数据(如:CPA=¥92, 转化4个)",
"status": "open|resolved|escalated|expired",
"resolution": "结束时填写结论"
}
每次出日报的追踪流程
Step 1: 读取追踪日志
- 读取
ad-report-tracker.json
- 筛选 status=open 的记录
- 按 due_date 排序,标记:🔴已过期(due_date < today) / 🟡今日到期 / 🟢未到期
Step 2: 回顾已到期事项
- 对每个已到期/今日到期的事项,用当日数据重新评估:
- 达到threshold → 标记为
escalated,在日报TODO中升级为P0动作
- 问题已消失/改善 → 标记为
resolved,在Highlight中标注🟢
- 仍在观察区间内但没恶化 → 延期due_date +2天,保持open
Step 3: 生成新的追踪项
- 从当日日报的以下内容中提取新追踪项:
- TODO中标注"观察X天"/"本周跟进"的事项
- Sheet 4 中标记为"⚠️待观察"的新增动作
- Highlight中标记🟡需关注的趋势
- 自动设置due_date = today + 观察天数(默认3天)
Step 4: 写入追踪日志
- 更新已有记录的status
- 追加新记录
- 保存到 ad-report-tracker.json
日报中的追踪展示
在HTML日报中新增一个固定模块(放在Highlight之后、TODO之前):
历史问题追踪
🔴 已到期未解决(需立即处理):
[提出日期] 问题描述 → 当时数据 → 今日数据 → [结论+建议]
🟡 今日到期(需复查):
[提出日期] 问题描述 → 阈值判断标准 → 今日数据 → [达标/未达标]
🟢 观察中(未到期):
[提出日期] 问题描述 → 还有X天到期 → 当前状态
✅ 已解决(近3天内关闭的):
[提出日期→解决日期] 问题描述 ✓
追踪规则
- 不漏追:每个TODO中含时间限定词("观察"/"跟进"/"X天后"/"本周")的事项必须入追踪
- 不忘提:过期事项必须在日报中醒目展示,不能因为忘了就不提
- 有结论:到期事项必须给出明确结论(改善/恶化/不变),不能只说"继续观察"超过2次
- 2次延期上限:同一事项最多延期2次(共观察≤9天),超过必须升级为P0给出行动建议
- 自动清理:resolved状态的记录保留7天后从日志中移除,避免文件膨胀