消息查询
「消息查询」功能可以直观展示消息发送链路每一个阶段,帮助开发者们精准排查推送失败的原因,定位问题从而解决问题。
开发者们在做消息推送时,难免会遇到推送失败的情况,例如:
所用的device_token和appkey对应关系有误
device_token和alias没有正确绑定、及时更新,导致无法下发
厂商token异常,需要开发者确认divide_token是否与厂商token绑定,确认设备是在线还是离线
消息发送量超过厂商限额
面对很多不同类型的问题,都需要开发者们进行排查,才能知道具体是什么原因导致的消息推送失败。U-Push上线的提效新工具「消息查询」功能就可以帮助开发者们精准定位问题从而解决问题。
功能介绍
进入U-Push后台,点击「推送」-「排查工具」-「消息查询」页面,输入Device Token:+ Msgid点击「查询」,页面会显示消息生命链路、消息信息和设备信息、别名信息,可以直观的查看消息的当前状态。
查询未成功情况说明
输入Device Token:+ Msgid 点击「查询」后,未成功会展示查询失败原因:
Device Token与当前appkey不一致
输入的 Device Token对应的appkey是xxxx,而当前应用的appkey是xxxx,请重新输入
当前仅支持查询7日内的消息
此消息发送时间是2023-12-13 23:12:19,已超出允许查询的最长时间

未查询到消息结果
没有调用信息
查询成功情况说明

消息信息包括:消息状态、创建时间、发送时间、过期时间、消息类别、消息体、发送方式、消息设备状态、厂商Msgid等信息;
设备信息包括:设备品牌/型号、操作系统、厂商版本、厂商Token、通知栏权限、App版本、U-Push SDK版本和Common版本等信息;
别名信息:当前设备绑定的别名信息。
消息体详情 :消息的具体内容和样式等相关信息

注意事项:
此功能暂时只支持Android端;
未送达的补偿功能暂未上线,后续会针对未下发的厂商通道的消息通过友盟离线通道进行补偿下发,从而提升消息送达率;
免费版支持查询次数50次/天
以下是您在使用此功能时可能会遇到的问题:
消息生命周期举例:
1. 在线消息送达(友盟通道发送成功)

如果消息已送达成功但是没有点击,可以检查下方设备信息里的通知栏权限是否打开
2. 设备离线,厂商通道发送成功
您可以在消息生命周期流程图和下方的信息里找到以下厂商内容:
厂商通道的具体名称(华为、OPPO、vivo、荣耀、小米)
消息发送时厂商的token(可能与当前最新的厂商token不一致)
厂商Msgid
用户可以根据以上新增的内容去厂商后台进行相应查询。

3.设备离线,不支持厂商通道,转为友盟离线通道
透出消息未通过厂商发送消息的具体原因,可以根据提示进行正确的配置

以下是您在流程图里看到的不支持厂商通道的常见描述和原因:
不支持厂商错误描述 | 可能原因 |
不支持厂商 | ①没有在后台设置厂商信息 ②使用的push sdk版本过低 |
标题或内容超过厂商限制或为空 | ①标题或内容为空 ②标题或内容超过厂商限制的长度 |
未正确配置厂商activity | 没有填厂商通道相关的activity |
没有厂商token | ①未集成厂商 ②集成有误,导致厂商token未上到到服务端 |
4.设备离线,调用厂商发送但厂商送出失败,转为友盟离线通道发送
在厂商送出失败框里您可以看到失败的具体原因,以下是常见厂商送出失败的示例
华为
华为token无效:

消息体过大:

小米
超过总量限制:

小米应用在黑名单里:

oppo
无效厂商token:

vivo
超出发送时间允许范围:
5.厂商通道送出成功,但未送达不补偿
透出厂商送出成功但消息未送达的情况,会展示厂商回执的具体失败原因,例如:当天发送额度超限、Token失效

【未送达不补偿】和【未送达有补偿】的含义:
这两部分内容是通过厂商通道回执的信息得到的。有些厂商例如华为和Oppo,在调用厂商发送阶段,可能返回的是成功,但是会通过回执返回已经超过额度了,这就是【未送达不补偿】的原因。【未送达有补偿】是友盟正在开发的功能,期望能将超额的这部分通道友盟离线通道来补偿,在一定程度上能提高消息的送达率,敬请期待。
6.设备离线,厂商通道无法发送,一直处于离线等待中
当厂商通道无法发送时,会转入友盟离线等待状态,但是如果在消息有效期内设备一直未上线,那么此消息的状态就会变成【已过期】

如何获取设备Device_token?
deviceToken是推送平台生成的用于标识设备的id,长度为44位
同一台设备上不同应用对应的deviceToken不一样
获取deviceToken后,才可以进行消息推送测试
注册成功后,可通过接口获取deviceToken:
PushAgent.getInstance(context).getRegistrationId()
以上就是关于U-Push提效新工具——「消息查询」功能的全部信息啦,快打开U-Push体验吧!