SELECT COUNT(*) FILTER (WHERE ua LIKE '%GoogleImageProxy%') AS proxy,
       COUNT(*) AS total
FROM email_open_log WHERE campaign_id = 88;

一封群发邮件后台打开率 92%,实际回访落地页的只有 300 多人,同一批用户第二封打开率又变成 41%,数字完全没法用。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,打开率靠正文末尾一个 1×1 像素统计,Gmail 和苹果邮件隐私保护会先把图片下载一遍,用户没点开也算一次。机器预取和真人打开混在同一个计数里。

围绕「打开率像素」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

处理上按这个顺序:把像素计数和链接点击分开看,点击率才是可靠指标;像素请求里带上用户代理,把已知的代理标识单独统计;报表里同时展示打开率和点击率,差距过大就别拿打开率做决策。

改完只确认一件事:报表能区分代理预取和真人打开,点击率和落地页回访数基本吻合。

作者 9823189