其他深度

Odoo Mass Mailing 为什么不能只看“开信率”:A/B 抽样、trace 状态机与 24 小时统计邮件讲透

Odoo 的群发分析不是只看一个 opened ratio,它还涉及 A/B 抽样、winner mailing 选择、mailing.trace 状态流转,以及 24 小时后给负责人补发统计邮件。真正的分析链比看报表复杂得多。

其他
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 7 阅读

先说结论

很多人讨论群发分析时,只盯着打开率、点击率这些结果数值。但 Odoo 的源码告诉你,真正重要的是:这些数值是如何被试验、发送、留痕、再汇总出来的。

第一层:A/B 抽样为什么不只是多建两封邮件

_get_recipients() 在 A/B 测试开启且不是 winner mailing 时,会按百分比随机抽取剩余受众,而且还会扣掉同一 campaign 已经触达过的人。也就是说,A/B 的难点不是版本数量,而是要保证抽样不串人、不重发。

第二层:winner mailing 为什么单独复制一封 final mailing

action_send_winner_mailing() 最终不是在原稿上继续发,而是复制出一个 final mailing,再以 100% 受众去发送。这个动作很有意义:它把“实验稿”和“正式胜出稿”分开留痕,后续复盘时不会把两者混成同一封邮件。

第三层:trace 状态机在记录什么

mailing.trace 不是一个单纯日志表,它维护了 sent、open、reply、bounce、error、cancel 等状态,并通过 set_sent()set_opened()set_replied()set_bounced() 等方法推进。分析报表之所以可信,是因为背后有一套明确事件语义。

第四层:为什么 24 小时后还要再发一封统计邮件

_action_send_statistics() 会在 mailing 完成一段时间后,把 24H 的 KPI 与 link tracker 信息再发送给负责人。这个设计非常务实:很多营销或内部运营动作,真正要看的不是发送当下,而是发送后一天的回响。

第五层:为什么“开信率”不足以代表效果

因为 opened 只是 trace 状态机的一部分。一个活动是否成功,还要看 delivered、replied、clicked、bounce,以及 A/B winner 选择是否合理。只盯一个 opened ratio,很容易把“曝光”误当“效果”。

最容易误解的三个点

  • 误区一:A/B 就是发两个版本看谁高。真正难的是抽样不重叠、winner 不混账。
  • 误区二:统计表就是事实。没有 trace 事件语义,统计只是表面数字。
  • 误区三:24 小时统计邮件是锦上添花。对负责人来说,它往往才是复盘入口。

实战上怎么用更稳

  • 做 A/B 时,先关心样本切分和去重逻辑,再讨论文案差异。
  • 查分析异常时,先看 trace 状态推进是否完整,再看仪表盘。
  • 如果业务方只盯 open rate,建议同时拉 delivered、reply、click 和 bounce 一起解释。

最后总结

真正的群发分析,不是看一眼报表,而是沿着“抽样、发送、留痕、汇总”这条链把结果读明白。Odoo 的 A/B 和 trace 设计,就是在支撑这件事。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。