用户在邮件底部点了退订,邮件确实不发了,站内信和 App 推送照旧,一周后又收到三条营销推送,第二次直接投诉到平台。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,退订状态只写进邮件服务商的抑制列表,站内信和推送各自读自己的订阅表,三套数据没有同步。用户画像里的营销标签也没清。
碰到「退订渠道同步」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
UPDATE user_channels SET marketing_opt_in = 0 WHERE user_id = 6612; SELECT channel, marketing_opt_in FROM user_channels WHERE user_id = 6612;
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
具体做法是,退订动作统一走一个接口,同时更新三个渠道的订阅状态;用用户 ID 做主键而不是邮箱,换邮箱也不会漏;退订后查一次三个渠道的订阅表,确认都是关闭状态。
最后用这个标准收尾,退订后三个渠道的开关都是关闭,接下来七天不再收到任何营销消息。
