您通过一次次来之不易的确认来建立您的推送订阅者列表,而每一次确认都花费了真实的获客成本。因此,当需要切换推送通知提供商时,恐惧是具体的:取消旧合同,列表随之消失。您当前的供应商甚至可能这样告诉您。
这是不正确的,本指南将在浏览器层面向您展示原因。Web 推送订阅与您的域名绑定,而不是与您的供应商绑定。一旦您了解了机制,每一次切换都会归结为两种清晰的方案之一,一份简短的给您当前供应商的书面问题列表,以及一个您的团队可以无忧运行的一周清单。
先坦诚说明一点。每家供应商的销售团队,包括我们自己的,都会告诉您迁移很容易。大多数人就此打住。这篇文章将向您展示其机制,以便您的开发人员可以验证每一个声明,包括我们最后做出的声明。
Web 推送订阅实际上是什么
当访问者在您的网站上点击“允许”时,浏览器会创建一个基于三个部分的 Web 推送订阅:
- 您的来源。 授予权限的确切域名 (
https://yoursite.com)。权限存在于浏览器中,与来源相关联。它不提及任何供应商。 - 服务工作线程。 托管在您的域名上用于接收和显示通知的小型 JavaScript 文件。任何已注册的服务工作线程都控制着传递。
- 应用程序服务器密钥。 VAPID 密钥对的公钥部分。浏览器的推送服务仅接受使用匹配私钥签名的发送。持有该私钥的任何人都可以向订阅发送消息。(web.dev 的推送通知概述涵盖了完整协议。)
订阅记录本身是三个字符串:一个端点 URL 加上两个短密钥,p256dh 和 auth。这就是全部资产。您的整个列表是这些记录的表格。
一个规则决定了所有下游操作:浏览器仅接受来自匹配的 VAPID 私钥持有者的发送。 这意味着每一次供应商切换都会归结为两种情况,具体取决于这些密钥的存储位置。
方案 A:您的 VAPID 密钥随您而去,因此您可以在第一天导入推送订阅者
方案 A 适用于密钥归您所有的情况:您在设置时配置了自己的 VAPID 密钥或自己的 Firebase 项目,或者您即将离任的供应商同意移交密钥对。一些团队从第一天就特意这样设置;该方法在我们关于无需供应商锁定即可实现 Web 推送的指南中有介绍。
拥有私钥后,您的新提供商可以直接导入推送订阅者:每个端点、p256dh 和 auth 记录都会迁移,您可以从第一天开始向整个现有列表发送消息。这包括几个月未访问过的休眠订阅者。无需重新选择加入,无人察觉。
有一个细微之处值得明确说明。即使在方案 A 中,持久化迁移仍然通过重新访问完成,因为每个订阅者最终都需要登陆新的服务工作线程。导入的密钥可在您进行迁移时提供第一天的触达,而此过程会在后台悄无声息地进行。
方案 B:密钥保留,静默重新订阅接管
方案 B 是常见默认设置:供应商生成 VAPID 密钥并保留它们。没有私钥,导出的记录在加密上毫无用处。第一天的触达为零,您的旧供应商的警告在接下来的段落中听起来是真的。
实际发生的情况是这样的。下次每个订阅者访问您的网站时,新提供商的服务工作线程将接管:它会注销旧的注册,取消旧的订阅,并在新的密钥下为访问者重新订阅。静默地,一次访问完成,无需第二次权限提示。
为什么新的服务工作线程不需要第二次提示
通知权限授予您的源,而不是供应商。浏览器已经信任您的域名。在已授予的权限下更换服务工作线程和密钥对访问者来说是不可见的,因为浏览器将其视为您的网站正在重新组织自己的内部结构。这正是它所做的。
您的开发人员应该知道的两个陷阱
一个源,一个订阅。 浏览器无法为同一源保留两个推送订阅。使用不同的密钥进行订阅会失败,直到旧订阅被释放。因此,“并行运行两个供应商”在列表级别上可行,但在单个浏览器内部永远不可行:每个订阅者要么在旧供应商上,要么在新供应商上,每次重新访问都会将一个订阅者迁移过去。
供应商子域的 opt-in 永远不会迁移。 在 yoursite.vendor.com 上收集的订阅属于供应商的源,任何提供商都无法迁移它们。这个基础将从头开始重建。这是任何推送通知迁移中最严重的陷阱,也是这次将订阅锚定在您控制的域上的最有力论据。如果您经营多个品牌或区域域名,相同的源逻辑将塑造您的整个架构;我们在 跨多个域的 Web 推送 中对此进行了介绍。
以下是两种方案的并排比较:
| 方案 A:密钥随行 | 方案 B:密钥保留 | |
|---|---|---|
| 适用情况 | 拥有 VAPID 密钥/自己的 Firebase 项目,或供应商释放密钥对 | 供应商生成并保留密钥(常见默认设置) |
| 第一天触达 | 您的整个列表,包括休眠订阅者 | 零,直到访问者返回 |
| 每次重新访问时 | 订阅者悄无声息地迁移到新密钥 | 静默重新订阅新密钥,无第二次提示 |
| 您恢复的用户 | 所有人 | 所有再次访问的用户 |
| 您失去的用户 | 无人 | 从未回访的订阅者(反正已经无法触达收入) |
为什么每日访问受众最快完成推送通知迁移
在场景 B 中,接管时钟是受众的回访频率。仅此而已。电子商务订阅者可能每月访问一次,因此接管会跨越数月。投注者每天都会查看赔率、盘口和结果。新闻读者会针对每个头条新闻周期回来。
这种回访节奏是为什么博彩和新闻网站成为互联网上最适合切换推送通知提供商的垂直领域的原因:与使其他网站需要一个季度才能完成的迁移相比,相同的访问频率使博彩网站的推送通知成为用户留存引擎,同时将迁移时间压缩到一到两周。PushEngage 上的博彩和游戏网站已发送超过 35 亿条通知,因此这些接管机制对我们来说是日常的生产现实,而非理论。
| 受众回访模式 | 典型的活跃用户接管 |
|---|---|
| 每日访问者(实时赔率、突发新闻、每日促销) | 几天到大约一周 |
| 每周多次访问(周末投注者、常客) | 1-2 周 |
| 每周或更少(季节性访客、流失用户) | 数周,由旧供应商发送和大型活动加速 |
| 休眠(数月未访问) | 仅在场景 A 下可恢复 |
这些是每日访问受众的典型模式,并非保证;您的曲线取决于您的流量节奏,您可以在仪表板中实时查看。您也可以调整曲线:在重大比赛周末前一周安排过渡,活动流量将为您完成接管。计划进行比赛日推送序列的体育博彩公司已经知道是哪些周末。
应用推送更简单:您的令牌始终是您的
如果您也发送应用推送,请深呼吸。这一半在结构上很容易,因为没有供应商可以将其作为人质。
APNs 证书和密钥是颁发给您的 Apple Developer 帐户的。您的 FCM 项目位于您的 Google 控制台中。推送供应商是您拥有的凭据之上的一个层,因此切换意味着将一个新层指向相同的凭据。设备令牌可以干净地导出和导入,无需重新安装,也无需第二次权限提示。
两个实际注意事项。首先,在导入之前,将令牌导出筛选为大约 270 天内活跃的设备,因为FCM 将超过约 270 天未活跃的令牌视为过时。转储五年的令牌会膨胀您的订阅者数量,而在仅计算活跃订阅者的定价中,没有人会从中受益。其次,完整的 SDK 覆盖范围以用户更新您应用的と速度到达,对于具有自动更新功能的日常使用应用来说,通常需要一到两周的时间。
如果您的 iOS 应用目前通过 Firebase 发送,则分步流程是其本身的主题;请参阅我们关于从 iOS 上的 Firebase Cloud Messaging 迁移的指南,而不是在此帖子中即兴发挥。
在切换推送通知提供商之前,请书面提出这六个问题
供应商导出和密钥策略各不相同,并且会发生变化。与其依赖任何供应商判决表(包括我们可能发布的表),不如让您自己的供应商记录在案。电子邮件即可;支持工单效果更好。如果您同时评估目的地,同样的问题可以作为筛选条件,同时比较 OneSignal 的替代方案。
- 您能否导出我完整的 Web 推送订阅记录 — 每个订阅者的端点 URL 以及
p256dh和auth密钥 — 而不仅仅是内部 ID?内部 ID 在供应商系统之外毫无意义。 - 您是否会发布我订阅创建所用的 VAPID 密钥对?这个问题的答案决定了方案 A 与方案 B。
- 我的 Web 推送运行在哪个 FCM 或 Firebase 项目上,是我的还是您的?如果是您的,密钥可能已在您自己的控制台中。
- 我能否单独导出细分、标签、订阅者属性和屏蔽列表?它们不会自动随订阅记录一起传输。
- 我能否导出我的应用推送设备令牌,以及什么格式?
- 如果我降级或取消订阅,我的数据会怎样 — 是否有自动删除或保留期?一些供应商会在较低级别中删除不活跃的订阅者数据。务必先导出。
迁移周清单
打印此部分。按顺序进行八个步骤。
- 在取消或降级任何内容之前导出所有内容。订阅记录、应用令牌、细分、标签、属性、屏蔽列表。合同终止后,导出访问权限将失效。
- 将 VAPID 密钥的答案以书面形式获取。它决定了您的方案以及您是否能在第一天导入推送订阅者。
- 先移动屏蔽列表,而不是最后。对于博彩和游戏运营商来说,这是不可协商的:在任何广告系列恢复之前,必须在新的平台上屏蔽自我排除的玩家,而不是事后进行协调。
- 导入前将应用令牌筛选为约 270 天活跃。
- 安装新的 SDK 和服务工作线程,并与任何现有服务工作线程合并(PWA 外壳、旧供应商的工作线程),而不是覆盖它。
- 第一天不要删除旧供应商的服务工作线程文件。返回的访问者仍然拥有指向它的注册;接管会优雅地取消它们的注册。过早删除该文件会导致控制台错误而不是迁移。在最终拆除时将其删除。
- 让旧供应商在并行窗口中继续发送。这看似违反直觉,但至关重要:旧供应商发送的每个通知都会促使一次重新访问,而每次重新访问都会完成更多订阅者的迁移。您要退出的供应商将成为您最好的迁移工具。
- 每天衡量接管情况,并在达到平台期时切换。跟踪新的活跃用户基数与旧的活跃用户基数。当曲线变平时,完成拆除,取消旧合同,并归档导出文件。
当 PushEngage 为您处理时,切换成本是多少
在 PushEngage,迁移是一项免费包含在付费套餐中的白手套服务。您会得到一位迁移工程师,而不是一篇帮助中心文章:他们会处理导出映射、密钥处理、Service Worker 合并和接管计划。这很重要,因为失败模式是隐蔽的——原始导入的有效负载格式不匹配可能会导致技术上成功但为空的通知,这正是专家在您的订阅者之前就能发现的那种无声失败。
范围界定电话大约需要十五分钟:每个渠道的订阅者数量、当前供应商以及上述密钥问题。到那时,您就知道自己属于场景 A 还是场景 B,并且有了一个有日期的计划。
如果您准备更换推送通知提供商,请从本文中的六个书面问题开始,看看您当前的供应商如何回答。然后,看看围绕细分和收入归因构建的Web 推送通知平台将如何处理您已拥有的列表,并将PushEngage 定价与您当前的发票进行比较。每个付费套餐都附带 14 天退款保证,因此推送通知迁移本身是决策中风险最低的部分。