厂商 push 不通排查指南

简介: MPS 集成多个三方渠道,保障 push 使命必达的必须知道的几件事。

TB1CMLMcOpE_u4jSZKbXXbCUVXa-3840-740.gif

为了提升「MPS 消息推送」的推送的到达率,mPaaS 集成了华为、小米等厂商的推送功能,从而有效地提高用户留存率,提升用户体验。在日常运维过程中,发现少部分设备在厂商 push下无法 push,在此分享下相关案例的排查过程,方便后续同类问题借鉴。

一、push 相关背景

1.push 整体架构

以接触最多的国内 Android 设备为例,整体结构如下:

1.png

2.厂商 push 和自建 push

厂商 push 通道:优点是通过各个 OS 厂商维护的长链接进行推送,在 App 被系统杀掉后也可以进行推送,推送到达率高于自建push。支持华为,小米,oppo,vivo等厂商。缺点是,目前厂商的push基本都只支持通知栏消息的推送,在用户点击通知前,不启动应用,对红点, 图片等消息格式支持有限。

自建push通道:通过App启动后和自建服务端的长连接通道实现推送,缺点也很明显,App被杀掉后,就无法收到信息。主要用于不支持厂商渠道场景下的push。

二、问题排查举例

通过上面的介绍,可以看出三方厂商 push 是否成功,主要取决于三个链路,分别为:

  1. 三方 token 正确生成上报
  2. 服务端正常转发到厂商服务器
  3. 下发到客户端消息可以正常显示

1.测试准备

为了快速验证问题,我们需要准备一个推送程序,可以快速推送信息到App上。MPS提供了推送的Http接口供外部调用,我们可以通过初始化一个简单的java程序实现推送信息的发送,方便联调。使用链接

2.三方 token 生成阶段

目前 mPaaS 对三方厂商 push 的 token 生成分为以下步骤。

2.1 设备在三方push的厂商列表里

以华为设备为例,判断是否是华为设备的标准是,检测当前手机是否是 emui,如果是才走华为 PUSH SDK。在我们日常运维的 case 中,发现过部分设备由于刷机或者其他操作,在华为手机上安装的不是 emui,类似这种设备是走不了华为 push 的,只能走自建 push。

以vivo设备为例,低版本手机只有在vivo公布的白名单设备内才支持推送。

2.png

2.2 生成三方 token

在调用 push sdk 生成 token 的过程中,由于 push sdk 的生成也依赖当前手机的 room 版本,以华为为例,就强依赖华为手机内置的 HMS Core 版本。针对这种场景下的问题,在获取三方 token 失败的时候,会在回调里返回对应错误码。如下图所示,搜索 push 的关键字 mPush14,然后过滤,可以获取 token 返回错误码2。

3.png

我们查看华为定义的错误码,发现2表示 SERVICE_VERSION_UPDATE_REQUIRED,需要升级当前的 HMS 版本。

4.png

升级HMS版本的方案有两个

方案1:主动升级,调用更新服务接口,升级更新效果如下所示:

在启动阶段调用如下服务,安装更新华为推送服务
if (HuaweiApiAvailability.getInstance().isHuaweiMobileNoticeAvailable(context) == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED) {
   // 需要升级
  HuaweiApiAvailability.getInstance().resolveError(activity, ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED, 1);
}

5.png

方案2: 引导用户去华为设置里去升级

2.3 三方 token 正常上报

生成 token 后会通过 RPC 接口上报到 MPS 服务端,需要检查 RPC 接口是否有异常,上报接口是:alipay.client.yunpushcore.device.report

6.png

2.4 token 过期

以 oppo 为例,是在应用第一次启动时注册生效,后在刷机、还原手机(设置-其他设置-还原手机)、卸载应用时会失效,需要重新注册才能推送。

7.png

3.服务端投送阶段

3.1 消息包含了红点,静默,群发

目前如果消息设置了红点或者静默,因为厂商 push 不支持,MPS 会自动走自建 push。

3.2 三方服务端报错

这种主要用作 mPaaS 服务端推送到三方服务端后,三方返回异常。这种需要去 MPS 拉取服务端报错日志,然后核对厂商文档解决,比如华为服务端报错文档。

3.3 三方服务端限流

以 vivo 为例,默认推送走的是运营消息,每天只能对同一个用户推送 5 次。只有改成系统 push 类型才能没有这个限制。

4. 设备显示阶段

4.1 设备必须打开通知权限才能显示

比如 oppo 的通知权限默认是关闭的,需要打开通知权限,或者引导用户打开后才能显示。

4.2 应用包名和注册 oppo 配置保持一致

应用的包名要和注册 oppo 平台填写的包名要一致,不然不会显示。

三、其他常见问题

1.常用日志举例

1.1 tag:mPush14

主要是 mPaaS 上层应用层日志打印,打印 push 注册 token 相以及自建通道 push 相关信息。

8.png

1.2 tag: mcssdk

mcssdk 是 oppo push sdk 的日志 tag,可以查看厂商的一些日志信息,比如查看三方 token

9.png

2.其他思路

如果以上都解决不了,最后建议去看各个厂商的官方介绍,可能会找到一些思路。

作者名片-荣阳.jpg

0.png.jpg

END


延伸阅读

动态-logo.gif

底部banner.png

点击了解「MPS 消息推送」更多资讯

相关文章
|
存储 算法 关系型数据库
第10章 索引优化与查询优化【2.索引及调优篇】【MySQL高级】3
第10章 索引优化与查询优化【2.索引及调优篇】【MySQL高级】3
520 0
|
前端开发 算法 Unix
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
本文介绍了MBIST存储器内建自测试的中,MBIST的特点,如何测试,Tessent加入的测试逻辑的结构等基础知识,继而以几个实例的图示和解读,描述了RTL设计满足MBIST设计的前置需求。
47058 3
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
|
缓存 API
全球最新地震信息免费API接口教程
该接口提供全球最新地震信息,数据源自中国地震台网,每5分钟更新一次。支持POST/GET请求,需提供用户ID和KEY。返回数据包括地震等级、时间、经纬度、深度及位置等详细信息。示例请求和响应详见文档。
2480 4
|
12月前
|
移动开发 JavaScript 前端开发
uniapp开发HarmonyOS NEXT应用之项目结构详细解读
本文介绍了uniapp项目目录结构,包括页面、静态资源、入口文件、配置文件等核心组成部分,并解析了各文件的作用与跨平台运行原理。
|
人工智能 算法 安全
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
Quasar Alpha 是 OpenRouter 推出的预发布 AI 模型,具备百万级 token 上下文处理能力,在代码生成、指令遵循和低延迟响应方面表现卓越,同时支持联网搜索和多模态交互。
1059 1
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
|
机器学习/深度学习 运维 自然语言处理
大模型也能当“运维警察”?——大模型技术在异常检测中的应用
大模型也能当“运维警察”?——大模型技术在异常检测中的应用
2334 13
|
存储 JSON OLAP
StarRocks + Paimon 在阿里集团 Lakehouse 的探索与实践
阿里集团在推进湖仓一体化建设过程中,依托 StarRocks 强大的 OLAP 查询能力与 Paimon 的高效数据入湖特性,实现了流批一体、存储成本大幅下降、查询性能数倍提升的显著成效: A+ 业务借助 Paimon 的准实时入湖,显著降低了存储成本,并引入 StarRocks 提升查询性能。升级后,数据时效提前60分钟,开发效率提升50%;JSON列化存储减少50%,查询性能提升最高达10倍;OLAP分析中,非JOIN查询快1倍,JOIN查询快5倍。 饿了么升级为准实时Lakehouse架构后,在时效性仅损失1-5分钟的前提下,实现Flink资源缩减、StarRocks查询性能提升(仅5%
|
安全 搜索推荐 Android开发
揭秘安卓与iOS系统的差异:技术深度对比
【10月更文挑战第27天】 本文深入探讨了安卓(Android)与iOS两大移动操作系统的技术特点和用户体验差异。通过对比两者的系统架构、应用生态、用户界面、安全性等方面,揭示了为何这两种系统能够在市场中各占一席之地,并为用户提供不同的选择。文章旨在为读者提供一个全面的视角,理解两种系统的优势与局限,从而更好地根据自己的需求做出选择。
2145 2
|
数据可视化 定位技术
【threejs】可视化大屏酷炫3D地图附源码
【threejs】可视化大屏酷炫3D地图附源码
12987 131
【threejs】可视化大屏酷炫3D地图附源码