推送通知未通过服务工作人员传递

Gau*_*ake 6 mobile google-chrome push-notification service-worker web-push

我们于2015年7月在我们的网站上部署了chrome服务工作者,拥有超过380,000个活跃用户,其中90%以上是移动设备.但是我们遇到了服务工作者的问题.当用户的缓存被清除或许多移动应用程序(如手机上的cleanmaster和其他实用程序应用程序)清除用户移动设备上的缓存时.在这种情况下,我们无法访问该用户的设备令牌.因此,即使有谷歌向我们发送消息ID的380K活跃用户,我们也只获得50K的展示次数,这是一个非常低的比率.我们的推送通知订阅是在单独的子域上实现的,因为我们无法使整个站点成为https.

我有2个查询:

  1. 我们很想知道Google是否正在设置规范系统(GCM中的移动应用程序),即使用户的缓存通过这些应用程序清除,他也可以获得推送通知.我们的用户一次又一次地抱怨说,即使在订阅之后,他们也没有得到推动,当我们深入了解并解决这个问题时.
  2. 还有一种方法可以确保我们找回这些用户吗?

Mat*_*unt 5

当用户在Chrome中清除其缓存时,它还会取消注册服务工作者并清除窗口缓存.通过取消注册服务工作者,它将取消订阅推送订阅.

我同意很难理解清除缓存/ cookie与服务工作者之间的关系以及从UI推送通知之间的联系 - Chrome团队已经意识到了这一点.

让这些用户回来的最佳建议是确保当用户启用通知并获得订阅对象时,将该决定作为他们最后的已知决策跟踪,以及用户何时重新访问您的网站,如果他们应该如果您已经订阅并获得了许可,则可以获得新订阅并将其发送回您的服务器.

更新

我把这篇博文放在一起:https://gauntface.com/blog/2016/05/01/push-debugging-analytics

查看您的网站,您的代码中存在一些问题:

  • 似乎你有几个破坏的承诺链,而且整体而言很难推理推送活动中发生的事情,我强烈建议整理它.
  • 当服务工作者启动并尝试检查不存在的推送订阅时,存在一个轻微但明显的错误.
  • 您正在注册两个服务工作者,但只有一个用于推送.

查看上面的博客文章,它涵盖了我得出的结论以及如何解决它的一些建议.