【问题标题】:Push notification not getting delivered via service workers推送通知未通过服务人员传递
【发布时间】:2016-08-07 14:03:02
【问题描述】:

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

我有 2 个查询:

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

【问题讨论】:

  • 您能否提供有关此站点的详细信息?这可能是您的服务工作者代码中的一个问题,引发了错误,这意味着您的“印象”/分析不准确。

标签: google-chrome mobile push-notification service-worker web-push


【解决方案1】:

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

我同意,很难理解清除缓存/cookie 之间的联系,以及这与 Service Worker 和 UI 推送通知之间的关系 - Chrome 团队意识到了这一点。

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

更新

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

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

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

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

【讨论】:

  • 有什么作品可以提供有关推送通知发生情况的信息吗? GCM 将它放在游戏控制台中,其中给出了推送的确切旅程。我们正在获取大多数活跃订阅者的消息 ID,但我们没有在分析中获得表明它已到达设备的印象。是否可以构建一个系统来解释推送通知发生了什么。如果有任何缓存清除或任何东西带走了该设备的设备令牌,也可以传递信息吗?将有助于了解设备令牌是如何消失的。
  • 目前我们的统计数据是 400K 活跃订阅者,我们获得有效的消息 ID,只有 50K 的推送展示次数。
  • 我想知道问题是否实际上是推送没有成功交付而不是缓存清除。我现在在黑暗中拍摄,但是如果您要使用 XMPP 协议与 GCM 通信,您能否了解更多关于何时发送/不发送消息的信息? developers.google.com/cloud-messaging/ccs
  • 我的QQ:你如何记录“印象”?它是您在收到消息时设置的分析吗?还是在点击通知时进行分析?
  • 还有可能获得相关网站的链接吗?
猜你喜欢
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
  • 2021-09-04
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
相关资源
最近更新 更多