通知渠道与营销推送
为什么按渠道关闭比关整个 App 的通知更好,工具如何区分营销通知和订单、快递、付款通知,以及受保护通知的白名单。
「关掉通知」是最粗暴的做法:营销推送没了,快递、订单、银行动账也一起没了。安卓的通知是分渠道的,工具利用这一点只关营销。
通知渠道是什么
Android 8 起,每个 App 的通知必须归属一个「渠道」(channel)。一个购物 App 通常有:
| 渠道 | 内容 | 处理 |
|---|---|---|
promotion |
限时秒杀、优惠券 | 关闭 |
marketing |
活动推荐、内容精选 | 关闭 |
order |
订单状态变更 | 保留 |
express |
快递物流 | 保留 |
chat |
客服消息 | 保留 |
关掉前两个渠道,后三个照常工作。这就是按渠道关闭的意义。
工具的判断依据
引擎读取每个渠道的 id、名称和重要性,按关键词与规则分类:
- 营销:含
promo、marketing、ads、recommend、活动、推荐、精选等; - 服务:含
order、express、pay、付款、订单、物流、账单; - 不确定:名称含糊的(比如
message、update),默认不关。
不确定就不动,这是刻意设计。漏关一个推广渠道可以再跑一次,关错一个付款通知用户可能收不到扣款提醒。
命令行
python3 tool/run.py -s <序列号> channels # 只读列出所有渠道
python3 tool/run.py -s <序列号> channels --apply # 关闭判定为营销的渠道
先跑不带 --apply 的版本,看清单再决定。
受保护的通知
工具内置保护名单,以下类型的渠道即使名称里带营销关键词也不会被关闭:
- 天气预警、地震预警
- 银行动账、支付结果
- 快递派送、取件提醒
- 日程与闹钟
「找机位」「机位推荐」这类系统功能通知也在保护范围内 —— 它们名字里带“推荐”,但不是广告。
渠道会随 App 更新变化
App 更新常会新增渠道。旧版关掉的渠道,新版可能换了个 id 并在首次推送时重新开启。
建议每两三个月重跑一次只读的 channels,看新出现的渠道里有没有营销类。
还原
python3 tool/run.py -s <序列号> restore --channels
按备份快照把渠道恢复到改动前状态。
常见问题
关掉渠道后 App 完全不推送了:部分 App 把多个通知复用一个渠道,关掉就全没了。这种情况下把该渠道在备份里找回并单独开启,或改用 App 内的通知设置。
渠道列表是空的:App 还没发过通知时不会创建渠道。先正常使用几天再检测。
个别渠道关不掉:系统级渠道(比如「系统更新」)受系统保护,adb 也无法关闭,这是正常的。