← 返回随笔列表

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.4115.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建议错在哪
v1Google Ads API all_conversions_value1.22账户亏损,不要加预算盲信仪表盘
v2客户发来的 Metabase GMV 直接当美元17.97罕见的 scale 机会,加 5 倍预算没看货币单位
v3(对的)Metabase GMV ÷ 6.8921 管理口径 USD3.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 个原因:

  1. 支付完成事件里 value 字段传的不是订单金额(可能传的是订单 ID、或固定 $1)
  2. 支付事件只在早期某个页面 fire,没在真正的支付完成页 fire
  3. 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 个来源

  1. 广告平台侧(Google Ads 的 conversion value)
  2. 分析工具侧(GA4 的 revenue)
  3. 业务后台侧(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 · 我今天买了两个域名