Day 26 · 我差点给客户做错诊断两次
Update · 2026-04-20 晚 · Day 26 的第三次打脸
本文发布几小时后,我在更新客户看板月度业绩时,发现看板一直用 6.8921 CNY/USD 管理口径汇率,不是我文中用的 7.2 市场汇率。口径统一后关键数字变动:ROAS 3.41 → 3.56;失真倍数 15.9× → 2.3×。
“失真 15.9 倍” 那段在叙事上最有冲击力,但它是我在 v3 里错误复用了 v1 的计算(v1 把 ¥9,669 当 $9,669 算出 15.9×;v3 纠正了 ROAS 但忘了重算失真倍数)。正确算法是
真实 USD / Google Ads 看到 USD = 1403/609 = 2.3×。2.3× 虽然远不如 15.9× 戏剧化,但依然超过 1.5× 阈值,文章里的三问检查 + 三源交叉方法论依然成立,只是核心数字要替换。正文里的
3.41和15.9×我已经 in-place 改成 3.56 和 2.3×;本段保留作为第三次打脸记录。教训升级:版本迭代时,每一个数字都必须从源头重算一次,不要从前版 copy。这条也写进我的 Claude 协作 memory 里了。
今天是 Day 26。
我给一个代购客户做了一次 Google Ads 深度审计 —— 74 项 check、2040 次 API 调用、两份结构化报告。
结论写了三次。
第一次:账户正在亏损,ROAS 只有 1.22。建议停止加预算、先止血。
第二次:账户大幅盈利,ROAS 高达 17.97。建议立刻加 5 倍预算 scale。
第三次:账户健康但不惊艳,ROAS 3.56,踩在 e-commerce benchmark 3.68 的线上。建议先修数据管道,再缓慢 scale。
三次结论之间,最大的差距是 14.7 倍。
而客户全程只说了两句话。第一句:“这是我真实的交易数据。” 第二句:“注意那个表里的金额是人民币,Google Ads 是美金。”
这篇是完整笔记。带犯错、带数据、带我怎么被客户一句话打脸两次的过程。给所有需要跨系统看数据、做决策的人看 —— 你会发现你可能也正在错。
先看三份结论并列
| 版本 | 数据源 | 算出 ROAS | 建议 | 错在哪 |
|---|---|---|---|---|
| v1 | Google Ads API all_conversions_value | 1.22 | 账户亏损,不要加预算 | 盲信仪表盘 |
| v2 | 客户发来的 Metabase GMV 直接当美元 | 17.97 | 罕见的 scale 机会,加 5 倍预算 | 没看货币单位 |
| v3(对的) | Metabase GMV ÷ 6.8921 管理口径 USD | 3.56 | 踩基准线,先修数据再缓慢 scale | — |
如果我把 v1 或 v2 的建议发出去,会发生什么?
- 发 v1:客户停了一个本来在赚钱的账户。我亲手砍掉一个月 $1,800 的业务营收。
- 发 v2:客户把预算从 $540/月 加到 $2,700/月,预期 ROAS 17 维持不住,实际烧掉一个季度。
两种错都能烧掉合伙关系。
流水账:是怎么一步步走到 v3 的
Beat 1:v1 · 盲信 Google Ads 仪表盘
接手任务:给客户账户做一次”合伙人视角的深度诊断”。我调了 Google Ads API,拿到这些数字(过去 30 天):
Pmax 主投放:
花费 $499.88
点击 2,040 次
"转化" 40 次
Google Ads 算出的 "transaction value":$609.27
$609.27 / $499.88 = 1.22
我立刻写了结论:「真实 ROAS 1.22,账户入不敷出,建议停止加预算止血。」
然后用 74 项 Google Ads 审计 checklist 做了背书:
- Measurement 目标错了(系统在学”注册”不是”购买”)
- PMax 只有一个 asset group(结构脆弱)
- 地域设置是
PRESENCE_OR_INTEREST(G11 FAIL) - 品牌词曝光份额 86% 被人抢走
所有 check 都在指向”这个账户很脆弱”。ROAS 1.22 的结论和这些结构性问题完美契合。我甚至加了一段:
“你看到的’账户健康’是幻觉。”
信心爆棚。
Beat 2:客户一句话,我切到反面
客户读完说:“我把整个渠道的真实交易发给你。我从 Metabase 后台下载了详细数据。”
然后发来一个 Excel。
我解析了一下 —— 1,837 行,28 列,精确到每个用户每一天的下单 GMV / 支付 GMV / 订单营收 / 总营收。过去 30 天整个 SEM 渠道(= Google Ads 带来的流量):
已支付 GMV:9,669
总营收:13,197
Google Ads 看到的是 $609。客户系统记录的是 $9,669。
我立刻把 $9,669 除以 $538 的花费,得到 ROAS 17.97。
然后我翻盘,写了 v2 结论:
“我错了。ROAS 不是 1.22。是 17.97。账户远远超过 benchmark 3.68,是 5 倍。这是罕见的 scale 机会,建议立刻加预算 5 倍。”
发出去前。
Beat 3:客户再一句话,我再切回
客户回:“要注意我发给你的表里面的金额是人民币,Google Ads 的消耗是美金。”
汇率(客户内部管理口径固定为 6.8921)。
¥9,669 ÷ 6.8921 = $1,403 ¥13,197 ÷ 6.8921 = $1,915
真实 ROAS:
- 按支付 GMV:$1,403 / $538 = 2.61
- 按总营收:$1,915 / $538 = 3.56
e-commerce benchmark 是 3.68。我们是 3.56。踩线,未突破。
账户不是漏油的破车(v1 错)。也不是跑车没踩油门(v2 错)。是一辆踩线通勤车 —— 引擎健康、能跑、但仪表盘看不到真实速度。
我又翻盘,写了 v3。
为什么 Google Ads 看到的是 $609,真实是 $1,403?
ROAS 3.56 的真相找到了,但这里还藏了个更大的问题。
客户的 Google Ads 系统在过去 30 天,只收到 $609 的 transaction value。而业务后台显示支付 GMV 实际上是 $1,403(美元)。
失真倍数:2.3 倍 —— Google Ads 只看到了真实价值的 43%,有 57% 的 value 信号没被采集。
也就是说,广告系统一直在用一个打了 4 折的价值信号做 bidding 决策。
最可能的 3 个原因:
- 支付完成事件里
value字段传的不是订单金额(可能传的是订单 ID、或固定 $1) - 支付事件只在早期某个页面 fire,没在真正的支付完成页 fire
- currency mismatch(但如果是 CNY 当 USD 反而会夸大,这个排除)
真正要修的,不是 bidding strategy 或者预算 ratio,是网站端的 GTM tag。这个只有前端/开发同学能动。
我的 74 项 checklist 看到了”Measurement 目标错”,但看不到”value 采集失真 57%“这个更致命的点。需要业务后台交叉验证才能发现。2.3 倍听起来不吓人,但对 MAX_CONVERSION_VALUE 这种按 value 排序分配流量的 bidding 策略,一倍的差距就会做出完全相反的决策 —— 系统把流量导向那些”Ads 看见的 value 高但真实 value 低”的 segment。
复盘:两次错的根因是同一个病
我为什么 v1 错、v2 又错?
v1 的病:盲信仪表盘。把 Google Ads 给的 all_conversions_value 当成真实 GMV。没问”这个数字和业务后台真实订单金额是不是对齐”。
v2 的病:没看货币单位。Excel 表头是”下单 GMV / 已支付 GMV / 订单营收”,数字就都是数字。没问”这是人民币还是美元”。
看起来是两个不同的错,本质是同一个毛病:急着下结论前,没把”这个数字到底代表什么”确认清楚。
数字是有”默认值”的,但默认值不一定对:
- Google Ads API 里
cost的单位是micros($1 = 1,000,000) - Metabase 的”金额”列,默认是这个账户的记账币种 —— 这个账户是人民币
- 过去 30 天 是 UTC?America/Anchorage?Asia/Shanghai?Google Ads 和 Metabase 默认时区不一样
每一个数字,背后都有单位、时段、口径三重 context。跳过任何一个都会翻车。
方法论:以后每次跨系统看数据前的”三问检查”
问题 1:单位是什么?
- 货币(CNY / USD / EUR)?
- 百分比还是小数(0.15 vs 15)?
- 次数还是去重人次?
- Micros 还是 dollars(Google Ads API 一定要问这个)?
问题 2:时段是什么?
- 某一天 / 近 30 天 / 累计 / 财年?
- 时区是 UTC / America/Anchorage(Google Ads 默认)/ Asia/Shanghai(业务后台通常)?
- 归因窗口(click-through lookback)是 7 / 30 / 90 天?
问题 3:口径是什么?
在电商/代购业务里,这几个差距能到 5-10 倍:
- 下单 GMV(用户点了”下单”但没付款)
- 已支付 GMV(实际成交)
- 订单营收(扣除退款)
- 总营收(含物流/服务费等增值)
在 Google Ads 里:
- 是 primary conversion 还是 all conversions?
- Include_in_conversions_metric 是 true 还是 false?
每一个都影响 final number。
硬规则:三源交叉,差超过 1.5 倍以业务后台为准
涉及 ROAS / CPA / 渠道效率判断,必须同时看 3 个来源:
- 广告平台侧(Google Ads 的 conversion value)
- 分析工具侧(GA4 的 revenue)
- 业务后台侧(Shopify / Metabase / 内部订单系统的真实支付 GMV)
如果 3 个数字差超过 1.5 倍,说明某个地方的采集/传递出错了。这种情况:
永远以业务后台为准。因为只有业务后台看到的是钱真的进账了。广告平台和分析工具都是”代理指标”,会失真。
我这次 v1 错在只看了 Google Ads(1 源)。v3 正确是因为最终用业务后台对齐了。
合伙人级的诚实:两次错都保留在报告里不删
我给客户的审计报告,最终版标题叫《Day 26 深度审计 · 合伙人视角 v3.1》。报告顶部有个”本报告修订说明”章节,把四个版本的结论并列放进去(v3 汇率错了,v3.1 才真对齐):
v1 → ROAS 1.22 → "亏损" → 错(盲信仪表盘)
v2 → ROAS 17.97 → "大赚" → 错(把 ¥ 当 $)
v3 → ROAS 3.41 → "踩线" → 错(汇率用了 7.2 市场汇率,看板是 6.8921 管理口径)
v3.1 → ROAS 3.56 → "踩线" → 对(汇率对齐 + 失真倍数重算)
不删的原因:合伙人之间,把错误显式保留比假装没发生更值得信任。
客户看了以后说:「好的,全部改成正确的版本吧,毕竟你是我的合伙人。」
这一句话比任何”感谢信”都重。因为她选择在我连续打脸两次后,继续把事情交给我。
这种关系不是靠永远不犯错建立的。是靠犯了错立刻认、不捂盖子、给出新方案建立的。
三个 take-away
给做一人公司的人
你会和 AI 合作做”超出你技术背景”的事(我 2 小时内调了 74 项 Google Ads check,放在 5 年前是需要雇一个 $200/小时 paid media specialist 才能做的事)。这是真实能力扩展。
但也意味着:你会在你不熟悉的领域犯错。当你调 API 看到一个数字,你不知道那个数字是 micros 还是 dollars,你就会犯我今天的 v1 错。
对策:不下强判断前,让 AI 帮你跑”三问检查”。
给做数据决策的人
Dashboard 是代理指标,不是真相。Shopify / 业务后台才是真相。如果你的 ROAS 是从 Google Ads UI 看的,你永远无法知道真实 ROAS 是多少。
对策:每月做一次三源交叉。广告平台 × 分析工具 × 业务后台,对账 30 天数据。差超过 1.5 倍立刻查。
给用 AI 做复杂工作的人
AI 会给你自信但错误的结论。因为它不知道它不知道什么。
对策:训练自己和 AI 合作的”三问检查”习惯 —— 单位 / 时段 / 口径。这 3 秒能省你后面 3 天的返工。
账面
过去 6 天:
- Day 1 搭站
- Day 2-5 其他工作
- Day 26(今天)给客户做深度审计 + 打脸 2 次 + 得到 1 条永远不会再忘的规则
Day 26 花掉的:
- 一整个下午 + 晚上
- 5 个 git commit
- 2 次向客户承认我错了
- 300 行审计报告(v1 → v2 → v3 都保留)
Day 26 拿到的:
- 一条让我 AI 合作至少提速 2 倍的方法论(三问 + 三源)
- 一次实战验证「合伙人要主动承认错,而不是圆”合理化”」
- 一篇博客的素材(就是你正在读的这篇)
「一个人 + AI = 一支军队」里的一个人,今天打了两次败仗。但打完之后,这支军队更强了。
相关阅读:Day 1 · 从 $60 到 Lighthouse 100×4 · 一人公司基建笔记 · Day 1 · 我今天买了两个域名
留个邮箱 · 不定期 · 不打扰
新文章、踩坑记录、一人公司的观察,直接投进你的收件箱。
邮件订阅即将开放 ·