7

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

我有 2 个查询:

  1. 我们很想知道谷歌是否正在努力建立一个规范系统(在 GCM 中用于移动应用程序),即使用户的缓存通过这些应用程序被清除,他也可能能够获得推送通知。我们的用户一次又一次地抱怨说,即使在订阅后他们也没有收到推送,那是我们深入研究并弄清楚这一点的时候。
  2. 还有一种方法可以确保我们找回这些用户吗?
4

1 回答 1

6

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

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

关于让这些用户回来的最佳建议是确保当用户启用通知并且您获得订阅对象时,将该决定作为他们最后一次知道的决定以及用户重新访问您的网站时进行跟踪,如果他们应该被订阅并且您有权限,您可以获得新的订阅并将其发送回您的服务器。

更新

我整理了这篇博文:https ://gauntface.com/blog/2016/05/01/push-debugging-analytics

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

  • 似乎您有几个损坏的承诺链,总体而言,很难对推送事件中发生的事情进行推理,我强烈建议您对其进行整理。
  • 当 service worker 启动并尝试检查不存在的推送订阅时,存在一个小但明显的错误。
  • 您正在注册两个服务工作者,但其中只有一个用于推送。

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

于 2016-04-18T17:39:17.890 回答