Day 4
海外运营 × Codex 训练营

广告投放数据分析
ROAS 自动算

Facebook / Google / TikTok 三平台 CSV 导出 → Codex 一句话 → ROAS、CPA、扩量/拉黑建议、给老板看的 1 页周报。

讲师 Terrence 时长 90 分钟 产物 1 个 Python 分析脚本 + 1 份周报 + 1 个 Excel 报表
Day 4 · 开场

今天结束,你能做到

关键判断:今天的产出是能跑通的脚本 + 1 份周报。下周你拿真实数据导出来,运行同一个脚本,5 分钟出周报。
Day 4 · 开场

在开始之前——
你每周做广告分析的真实痛点

传统做法
  • 从 3 个平台分别导 CSV(半小时)
  • 字段名不一样,手动对齐(1 小时)
  • Excel 拉 ROAS、CPA 公式(半小时)
  • 肉眼找异常广告组(1 小时)
  • 给老板写周报(1 小时)

合计 4 小时 · 每周一次

Codex 做法
  • 3 个 CSV 放桌面(5 分钟)
  • 跟 Codex 描述场景(10 分钟)
  • Codex 写脚本 + 你审核(10 分钟)
  • 跑脚本 → Markdown 周报 + Excel 自动出(30 秒)
  • 下周复用同一脚本(5 分钟)

首次 25 分钟 · 后续 5 分钟

💡 核心差异:手动做是"每周重复 4 小时",Codex 做是"第一次投入 25 分钟,后续永远 5 分钟"。
Day 4 · 概念

5 个核心广告指标 · 老板只看这些

1
ROAS · Return on Ad Spend(广告花费回报率) = 收入 / 广告花费例:花 $100 拿回 $400 收入 → ROAS = 4.0 · 行业基准 2-4
2
CPA · Cost Per Acquisition(单次转化成本) = 广告花费 / 转化数例:花 $200 拿 10 个客户 → CPA = $20 · 越低越好
3
CTR · Click-Through Rate(点击率) = 点击数 / 展示数FB 1-2% 健康 · TikTok 1-3% 健康 · Google 搜索广告 3-5%
4
CVR · Conversion Rate(转化率) = 转化数 / 点击数电商 1-3% 健康 · SaaS 注册 5-10% · 偏低就是落地页或受众问题
5
分受众 ROAS · 按 audience(年龄/兴趣/地区)拆 ROAS 排名这是真正的优化抓手——同一广告,不同人群 ROAS 可能差 5 倍
Day 4 · 数据

三个平台 · CSV 导出在哪里

Facebook Ads

Ads Manager

→ Reports → Export → CSV
"Performance + Audience" 模板
时间范围 Last 7 days

字段:Campaign / Ad Set / Audience / Spend / Impressions / Clicks / Purchases / Purchase Value

Google Ads

Reports

→ Reports → Predefined → Campaign performance → Download CSV
勾选 Conversion value

字段:Campaign / Cost / Impr. / Clicks / Conversions / Conv. value

TikTok Ads

Reporting

→ Custom Report → Export → By Ad Group
含 Audience breakdown

字段:Ad Group / Cost / Impressions / Clicks / Conversions / Total Value

⚠️ 字段坑:三个平台字段名完全不一样——FB 叫 "Purchases",Google 叫 "Conversions",TikTok 叫 "Total Conversions"。不用你手动对齐,告诉 Codex"统一字段"它会处理
Day 4 · Codex
主角再亮一次

Codex 在今天
替你做什么

你描述场景:3 个 CSV 文件路径 / 你想算什么指标 / 你想要什么输出格式
→ Codex 帮你选库、写代码、跑代码、修 bug、给你结果
你看的是"结果对不对",不是"代码对不对"。

读 CSV 自动识别列 字段对齐 算指标 出 Markdown 周报 出 Excel + 图表
Day 4 · Prompt

今天的核心 Prompt

复制到 Codex ↓

我有以下广告数据 CSV 文件: - /桌面/fb-ads-week43.csv - /桌面/google-ads-week43.csv - /桌面/tiktok-ads-week43.csv 请帮我写脚本: 1) 读取 3 个 CSV,统一字段(spend / impressions / clicks / conversions / revenue / audience / creative_name) 2) 计算指标:ROAS / CPA / CTR / CVR / 各 audience 的 ROAS 排名 3) 找出问题广告组:spend > $50 且 ROAS < 1.5 的(建议拉黑)+ ROAS > 5 的(建议扩量) 4) 生成 1 页周报 Markdown:3 平台对比 + 优化建议 TOP 5 5) 输出 Excel:原始数据 + 分析 + 图表(用 openpyxl) 数据脱敏:所有 audience name 替换成 A1/A2/...,可放在演示用。
💡 这条 prompt 体现 5 个技巧:(1) 给文件路径 (2) 明确要的指标 (3) 给阈值($50 / 1.5 / 5)(4) 指定输出格式 (5) 提脱敏要求
Day 4 · Prompt

Prompt 拆解 · 5 个段落,每段干一件事

1
段落 1 · 数据源告诉 Codex 文件在哪、有几个 → "我有以下 CSV 文件:..."
2
段落 2 · 统一字段三平台字段名不同 → 一句话让 Codex 对齐成统一的 7 个列名
3
段落 3 · 算指标明确要算的 5 个指标,让 Codex 知道公式和切片维度
4
段落 4 · 决策规则给阈值(spend > $50 / ROAS < 1.5 / > 5)→ Codex 才知道什么叫"差"什么叫"好"
5
段落 5 · 输出格式Markdown 周报 + Excel 报表 → 一次得到两个产物
⚠️ 非程序员最容易漏:第 4 段"决策规则"。不写阈值,Codex 就只会输出指标,不会输出建议
Day 4 · Prompt

3 个非程序员最常忘的细节

✗ 常见错
  • "分析下我的广告数据" → 太笼统,Codex 不知道要算什么
  • "按 audience 分组" → 不指定输出,Codex 给你打印到屏幕就结束
  • "找出表现差的" → 不给阈值,Codex 不知道"差"是多差
  • 把 3 个 CSV 截图发给 Codex → 它读不到截图里的数字
✓ 应该这么写
  • 给具体文件路径(拖到 Codex 窗口或写绝对路径)
  • 明确要算哪些指标 + 公式(必要时)
  • 给数字阈值(spend > $50 / ROAS < 1.5)
  • 指定输出格式(Markdown / Excel / 图表)
  • 提合规要求(脱敏 / 不上云 / 删原文件)
💡 记一个口诀有什么 + 做什么 + 规则 + 要什么。四段写齐,Codex 就能一次出对。
Day 4 · Demo
现在 · 看一遍

讲师演示 · 10 分钟
从 CSV 到周报

接下来你不用动手,看我跑完整套流程一次。
重点观察:我每一步在说什么、Codex 给我什么、我怎么判断结果对不对。

⏱ 10 分钟观摩 · 后面 30 分钟你自己跑

Day 4 · Demo

Demo Step 1 · 准备 3 个 CSV

1
三个 CSV 放在桌面同一文件夹/桌面/ads-week43/ 下放 fb-ads.csv、google-ads.csv、tiktok-ads.csv
2
打开任意一个,肉眼瞄一下看列名是什么(Spend / Cost / Amount Spent 哪个)、数据是不是空
3
记下绝对路径Mac:右键 → 拷贝路径;Win:地址栏复制;待会贴到 prompt 里
💡 小技巧:把文件夹直接拖到 Codex 窗口,Codex 会自动列出路径。比手敲快 10 倍。
Day 4 · Demo

Demo Step 2 · 贴 Prompt 给 Codex

你说:

读这 3 个 CSV:[拖文件夹进来] 帮我算每个广告组的 ROAS / CPA / CTR / CVR,按 audience 拆 ROAS 排名。 spend > $50 且 ROAS < 1.5 标记"建议拉黑"。 ROAS > 5 标记"建议扩量"。 最后输出 1 页 Markdown 周报 + 一个 Excel(含图表)。

Codex 一般会回复:

好的,我先读取这 3 个 CSV 看下结构... [Codex 自动跑:读取文件、识别列名、检测编码] 我注意到: - fb-ads.csv 列名是 "Amount Spent (USD)" - google-ads.csv 列名是 "Cost" - tiktok-ads.csv 列名是 "Cost" 我会把它们统一映射到 spend 列。需要确认吗?继续生成脚本?
Day 4 · Demo

Demo Step 3 · Codex 写脚本 + 跑出来

Codex 会自动生成一个 Python 脚本(约 80-120 行),并直接执行:

  1. 读 3 个 CSV,统一字段(自动识别编码 utf-8 / gbk)
  2. 计算每个广告组的 5 个指标
  3. 按 audience 拆分 ROAS,找 TOP 3 / BOTTOM 3
  4. 生成 week43-report.md
  5. 生成 week43-analysis.xlsx(含柱状图、饼图)
  6. 打印总结:"3 平台共 47 个广告组,建议拉黑 4 个、扩量 6 个"
💡 你要做的事:打开 .md 文件读 3 分钟、打开 .xlsx 翻图表 2 分钟、确认数据合理就发给老板。
Day 4 · 产物

老板看到的 1 页周报长这样

# Ad Performance · Week 43 ## 总览(3 平台合并) - 总花费:$12,847 | 总收入:$38,521 | ROAS 3.00 - 总转化:487 次 | CPA $26.4 | CTR 1.8% ## 平台对比 | 平台 | Spend | Revenue | ROAS | CPA | |----------|--------|---------|------|-------| | Facebook | $5,200 | $18,400 | 3.54 | $24.1 | | Google | $4,300 | $13,800 | 3.21 | $22.7 | | TikTok | $3,347 | $6,321 | 1.89 | $35.2 | ## TOP 3 优化建议 1. ⚠️ 拉黑:TikTok Ad Set "A7-US-Female-25-34" · spend $612 · ROAS 0.8 2. 🚀 扩量:FB Ad Set "A2-CA-Male-35-44" · spend $340 · ROAS 7.2 3. 🚀 扩量:Google "Branded Search" · ROAS 8.4 · 预算还有空间 ## 本周观察 - TikTok 整体 ROAS 偏低(1.89),建议下周削减 30% 预算转 FB - A2 受众在 FB / Google 都跑得好,可以测 TikTok
Day 4 · 产物

Excel 报表 · 4 个 Sheet

1
Sheet 1 · Raw Data · 三平台原始数据合并(字段已统一)方便后续手动核查,列名一致
2
Sheet 2 · Metrics · 每个广告组的 5 个指标 + 优化标签"建议拉黑" / "建议扩量" / "持续观察" 三种标签
3
Sheet 3 · Audience · 按 audience 拆分的 ROAS 排名表A1-A20 受众 + 各平台表现,找跨平台好受众
4
Sheet 4 · Charts · 自动生成的柱状图 + 饼图平台 ROAS 对比柱状图 · 花费占比饼图 · audience ROAS 排名条形图
💡 给老板传 Excel:他要数据、要图、要明细,4 个 Sheet 一次给全
Day 4 · 踩坑

踩坑 #1 · 字段名不一致怎么办

三个平台的"花费"列名不一样——很常见。Codex 自己能识别但有时会问你。

Codex 回复: 我看到 fb-ads.csv 有 "Amount Spent (USD)" 列, google-ads.csv 有 "Cost",tiktok-ads.csv 有 "Cost"。 都映射到 "spend" 可以吗?

你回复:

可以,统一成 spend。 另外 fb 的 "Purchases" 映射到 conversions, "Purchase Value" 映射到 revenue。
💡 原则:Codex 反问就直接回答,不要让它猜。一句话解决,比手动改 Excel 列名快。
Day 4 · 踩坑

踩坑 #2 · CSV 中文乱码

现象

Codex 跑脚本报错:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5

原因:从中国地区平台导的 CSV 经常是 GBK / GB2312 编码,不是 UTF-8。

解决

告诉 Codex:

这个 CSV 报错 UnicodeDecodeError, 你试一下 gbk 编码?

Codex 会自动 try utf-8 → gbk → gb18030 → utf-8-sig 几种编码。

💡 更省事的方法:在原 prompt 末尾加一句"自动识别 CSV 编码",Codex 一开始就用 chardet 库探测。
Day 4 · 踩坑

踩坑 #3 · 没有 revenue 列怎么算 ROAS

Google Ads 默认导出可能没有 "Conv. value",TikTok 可能只导了 "Conversions" 没导 "Total Value"。

方案 A · 重新导出

回 Ads Manager 报表设置里勾选 Conversion value / Total Value,重新导一次。

最干净。

方案 B · 让 Codex 用客单价反推

告诉 Codex:"我的客单价平均 $35,用 conversions × 35 估算 revenue"

不精确但能跑通。

⚠️ 方案 B 要标注:让 Codex 在周报里写"revenue 为估算值(客单价 $35 × conversions)",不要让老板以为是真实收入
Day 4 · 踩坑

踩坑 #4 · Codex 一直反问,跑不到结果

现象

Codex 每一步都问你"要这样吗?""要那样吗?",5 分钟还没生成脚本。

原因:你的 prompt 缺关键决策点,Codex 不敢替你做选择。

解决 · 一次性给授权
你看 CSV 结构后自己判断字段映射, 不用每个都问我。 遇到不确定的就用最常见做法继续, 最后告诉我你做了哪些假设。
💡 授权技巧:加一句"遇到不确定的就用最常见做法 + 最后列出假设"——Codex 会一口气跑完,最后给你"我假设了 X / Y / Z"列表,你审核就行。
Day 4 · 实操
现在轮到你

30 分钟实操
跑一遍你自己的数据

用你公司过去 1-2 周的真实数据(或者讲师发的脱敏 demo 数据)
跑完整套流程,最后产出:
1 份 .md 周报 + 1 份 .xlsx 报表

⏱ 30 分钟 · 讲师全程巡场答疑

Day 4 · 实操

验收清单 · 你应该有的产物

  1. 桌面有 1 个 weekXX-report.md 文件,打开能看到三平台对比表
  2. 桌面有 1 个 weekXX-analysis.xlsx 文件,含 4 个 Sheet + 2 张图表
  3. Codex 给你的总结里包含:建议拉黑 X 个 + 建议扩量 Y 个
  4. 你能用 1 句话给同桌讲清楚:哪个 audience 最值得加预算、哪个该拉黑
4 个都打勾 → 今天目标达成。打不齐就举手叫讲师。
Day 4 · 进阶

下周你能再做的 4 件事

1
加入 LTV/CAC 计算给 Codex 你的客户 30 天复购数据 → 算每个 audience 的 LTV,CAC = CPA
2
定时自动跑把脚本部署到 GitHub Actions,每周一早上 9 点自动跑 + 发邮件给老板(Day 6 会讲到)
3
对接 Slack/飞书结果自动推送到团队群,不用手发邮件
4
多周趋势对比把过去 4 周的脚本输出合并,让 Codex 出"4 周 ROAS 趋势图",看周环比
💡 原则:所有进阶都是在今天这个脚本基础上加 prompt,不用重新写。
Day 4 · 方法论

运营 × Codex · 协作的 3 条原则

  1. 描述场景,不要描述代码——你说"算 ROAS 找问题广告组",不要说"用 pandas groupby"
  2. 给规则和阈值,不要给"看一下"——"spend > $50 且 ROAS < 1.5",不要说"找差的"
  3. 报错就贴给它修,不要自己想为什么——你的责任是验收结果,不是修 bug
核心 mindset:你是需求方,Codex 是实习生工程师。需求方的本事是"描述清楚要什么",不是"知道怎么实现"。
Day 4 · 小结

今天 3 个 takeaway

  1. 广告分析不是写代码,是描述场景——3 个 CSV + 1 段 prompt + Codex = 1 页周报 + 1 个 Excel
  2. 5 个指标 + 阈值规则就是你的 know-how——下周换数据,脚本一字不改,结果就出来
  3. 你是需求方,Codex 是实习生工程师——你的本事是"想清楚要什么",不是"会写代码"
课后作业(明天前完成):用 Codex 把本周自己负责的真实广告数据跑一遍周报,发到课程群里(隐去金额数字)。
Day 4 · 结束
明天 · Day 5

增长邮件自动化
1000 用户 + 5 封序列

1000 用户 CSV → Codex 分群(新用户 / 沉睡 / 高价值 / 流失候选)
→ 写 5 封个性化邮件 → 输出 Brevo 批量导入 CSV
30 分钟搞定,之前要 1 周

🙋 现在 · Q&A 时间
课后微信群答疑 · 联系讲师 Terrence
📝 讲师备注 · 按 N 切换显示 / 隐藏
翻页 · Space 下一页 · F 全屏 · N 备注 · Home 首页