Skip to content
Back to skills

Jiayi Ads Analytics Expert Public

ASecurity

全媒体广告分析专家技能(公共版)。支持百度/360/腾讯/Google/Bing五平台,引导式MCP安装配置,自动生成含关键词、创意、素材分析的结构化日报。

  • 417 stars
  • 0 votes
  • 0 copies
  • 8 views
  • Added September 8, 2026
developmentpythongoapiperformance

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add infometa/workbuddyskills --skill jiayi-ads-analytics-expert-public --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Jiayi Ads Analytics Expert Public?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Jiayi Ads Analytics Expert Public
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infometa-jiayi-ads-analytics-expert-public/badge)](https://www.skillsdirectory.com/skills/infometa-jiayi-ads-analytics-expert-public)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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)

每次执行日报前,先检查环境是否就绪:
1. 检查 ~/.workbuddy/mcp.json 中是否有对应平台的MCP配置
2. 对每个已配置的MCP,调用验证接口确认token有效
3. 如果某平台未配置或token失效,引导用户完成配置/刷新
4. 通过MCP的list_accounts/get_account_info等接口动态获取用户账户列表
5. 不硬编码任何账户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消费素材需展示缩略图(<img src="url" width="120">)
- 按消费降序展示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则保留,否则停止]
```

**判断"有没有用"的标准:**
1. 新词/新素材:CPA ≤ 同计划/同组历史均值 → 有用
2. 匹配调整:CTR 提升且 CPA 未恶化 → 有用
3. 出价调整:量级提升且 CPA 涨幅 ≤ 10% → 有用
4. 花费 > ¥200 且 0 转化 → 确认无效,建议立即暂停
5. 上线 ≤ 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'

## 输出规则

1. **所有洞察必须有数据支撑**,不做空泛评价
2. **TODO 必须具体可执行**,包含"哪个账户/哪个计划/做什么操作/预期效果"
3. **成本类指标环比**:↑ 为恶化(红色)、↓ 为改善(绿色)
4. **效率/量级指标环比**:↑ 为增长(绿色)、↓ 为下滑(红色)
5. **日报风格**:简洁抓重点,不堆砌数据,每个洞察一句话
6. **默认中文输出**
7. 输出格式为 **HTML**(单文件,含内联CSS,深色主题,清晰易读),文件名:`{品牌名}_{YYYYMMDD}_广告日报.html`
8. HTML 设计要求:深色背景、表格紧凑、关键数据突出(大字/颜色标记)、移动端适配
9. 用 `preview_url` 工具展示给用户,同时用 `deliver_attachments` 交付文件
10. 如当日数据为空(如还没消费),标注"截至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数组,每条记录一个待追踪事项
- 每次出日报时**先读取**此文件,检查是否有到期/过期事项需要回顾

### 追踪记录结构
```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天内关闭的):
  [提出日期→解决日期] 问题描述 ✓
```

### 追踪规则

1. **不漏追**:每个TODO中含时间限定词("观察"/"跟进"/"X天后"/"本周")的事项必须入追踪
2. **不忘提**:过期事项必须在日报中醒目展示,不能因为忘了就不提
3. **有结论**:到期事项必须给出明确结论(改善/恶化/不变),不能只说"继续观察"超过2次
4. **2次延期上限**:同一事项最多延期2次(共观察≤9天),超过必须升级为P0给出行动建议
5. **自动清理**:resolved状态的记录保留7天后从日志中移除,避免文件膨胀

Files in this skill

  • SKILL.md26.8 KB
  • references/setup-guide.md8.2 KB
  • scripts/360-ads-mcp/accounts.json.template340 B
  • scripts/360-ads-mcp/index.mjs26.7 KB
  • scripts/360-ads-mcp/package.json126 B
  • scripts/baidu-ads-mcp/accounts.json.template424 B
  • scripts/baidu-ads-mcp/index.mjs28.1 KB
  • scripts/baidu-ads-mcp/package.json128 B
  • scripts/baidu-ads-mcp/refresh-tokens.mjs5.8 KB
  • scripts/google-ads-mcp/package.json314 B
  • scripts/microsoft-ads-mcp/requirements.txt32 B
  • scripts/microsoft-ads-mcp/server.py27.8 KB
  • scripts/setup-mcp.sh7 KB
  • scripts/tencent-ad-mcp/dist/auth.d.ts294 B
  • scripts/tencent-ad-mcp/dist/auth.d.ts.map347 B
  • scripts/tencent-ad-mcp/dist/auth.js2.1 KB
  • scripts/tencent-ad-mcp/dist/auth.js.map2.2 KB
  • scripts/tencent-ad-mcp/dist/client.d.ts483 B
  • scripts/tencent-ad-mcp/dist/client.d.ts.map570 B
  • scripts/tencent-ad-mcp/dist/client.js2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.