获取推送日志
即时通讯服务端可以提供 App Key 下的推送历史记录。推送历史记录以日志文件方式提供,并已经过压缩。您可以使用服务端 API 获取指定 App 的推送日志。
服务端 API 接口仅返回推送日志文件下载地址,获取地址后请您自行下载。
开通服务
如有需求,请提交工单,申请开通推送日志下载服务。
计费规则:「推送日志下载」为增值服务。IM 尊享版可免费使用该服务,其他 IM 套餐版本按服务端生成的推送日志数量档位计费。每千万条为一个档位,国内 150 元/千万条,国外 300 元/千万条。月度推送日志条数若不满足 1 千万条,按最低档收费。具体以计费说明文档为准。
推送日志说明
提示
如果是海外数据中心的应用,请根据您的 SDK 版本完成必要配置,确保推送相关统计数据可上报到正确的数据中心,详见知识库文档海外数据中心使用指南。
推送日志已支持统计单聊、群聊、系统会话的离线消息推送、以及服务端 /push.json
和 /push/user.json
接口发出的推送。超级群离线推送日志记录暂不完善,暂不建议使用。
推送到达日志采集说明
- 对华为、魅族设备的推送到达率的数据采集,依赖华为和魅族的「送达回执」功能。您需要在厂商的平台上完成相应配置。开发者文档中已提供的简要说明:
- 对 Google FCM 推送的到达率统计仅支持透传消息方式,暂不支持通知消息方式,并且日志数据采集依赖应用程序主动上报。详见 Android 客户端 SDK 文档 采集 FCM 推送到达数据。
- 对 Apple APNs 推送的到达率统计依赖应用程序主动上报,详见 iOS 客户端 SDK 文档 上报推送数据。
推送点击日志采集说明
- 对华为推送的点击率统计数据采集可能依赖应用程序主动上报,具体与客户端 SDK 有关:
- SDK < 5.1.4,不支持统计推送点击数据。
- 5.1.4 ≦ SDK < 5.2.3,依赖应用程序主动上报。详见 Android 客户端 SDK 文档 采集华为推送点击数据。
- SDK ≧ 5.2.3,SDK 已实现自动上报,无需应用程序处理。
- 对 Apple APNs 推送的点击率统计数据采集依赖应用程序主动上报,详见 iOS 客户端 SDK 文档 上报推送数据。
数据时效性
获取数据有一定延迟(T+0 模式)。
- 首先,每自然小时内的数据文件需要在该时段结束后才会生成。例如,12 至 13 点之间日志数据在 13 点以后才能生成。
- 其次,因数据统计、文件压缩打包等耗时,一般需要再等待 3 个小时,才可提供下载地址。例如,12 至 13 点之间日志数据在 16 点后可获取到下载地址。
- 另外,开通服务后,服务端即可保存当前自然小时内的推送日志数据 。例如您在 12:00 至 13:00 之间任意时间开通服务,则即时通讯服务端可提供从 12:00 开始的推送日志。
即时通讯服务端以自然小时为节点,打包推送日志数据,因此推送日志数据包仅支持按小时获取。
日志保存时限
服务端保存的推送日志文件仅保留 7 天。7 天后服务端自动删除该日志文件。
日志格式
名称 | 类型 | 说明 |
---|---|---|
messageId | String | 推送消息 ID。 |
receiverId | String | 接收者用户 ID。 |
systemType | String | 接收者的设备操作系统类型:iOS、Android |
pushStatus | String | 推送状态,可能为成功(0 )、失败(1 )、到达(2 )、已被点击(3 )。 |
sendTime | String | 消息发送时间,精确到毫秒,海外为 UTC 时间。 |
time | String | 推送状态 变更的时间戳,根据 pushStatus 取值,该字段可能为推送成功、失败、到达、点击的时间。精确到毫秒,海外为 UTC 时间 |
pushType | String | 推送类型。可能为 MI 、HW 、HONOR 、MEIZU 、OPPO 、VIVO 、FCM 、APNS 、RONG (即时通讯自建推送)。 |
pushChannelId | String | 渠道 ID,只有 pushStatus 推送状态为成功(0 )时有效,目前仅支持小米、华为、OPPO。 |
pId | String | 推送关联 ID,仅支持 FCM、APNS,可用于关联推送成功、到达、点击记录,追踪 FCM 和 APNs 的推送状态变化。该字段要求客户端 SDK 版本 ≧ 5.1.7。 |
requestId | String | 推送请求 ID,是即时通讯服务端调用第三方推送 API 时的请求唯一标识。如需追踪小米、魅族、华为、VIVO、OPPO 推送的状态变化,可与 pushToken 一起使用,关联推送成功、到达、点击记录, |
pushToken | String | 推送 Token。追踪小米、魅族、华为、VIVO、OPPO 推送的状态变化,可与 requestId 一起使用,关联推送成功、到达、点击记录。 |
deviceId | String | 推送的目标设备 ID。如需追踪华为、VIVO、OPPO 的推送的状态,可与 messageId 一起使用,关联推送成功、点击记 录。 |
senderId | String | 消息发送者 ID。如果直接发送推送(非由消息触发),则没有消息发送者 ID。 |
channelType | String | 消息所属的会话类型,可能为单聊会话(1 )、群组会话(3 )、系统通知(6 )、超级群会话(10 )。 |
channelId | String | 此字段已废弃。 目前此字段仅用于兼容旧版本,不建议使用。请使用 targetId 作为替代。 |
targetId | String | 会话 ID。根据 channelType 取值不同,可能为群聊 ID、超级群 ID。如果 channelType 为系统会话,单聊会话,因会话 ID 即接收者的用户 ID(receiverId ),此字段为空。 |
groupChannelId | String | 超级群群场景中的频道 ID,在非超级群场景中此字段为空。 |
thirdRespBody | String | (第三方平台返回字段)第三方推送平台的推送状态回调,依赖各厂商提供的推送回执服务。受第三方平台自身限制,回调数据有差异:小米、魅族的回调包含推送到达、点击数据。华为、VIVO、OPPO 包含推送到达数据。在华为推送回调数据中,如果是由即时通讯服务触发的推送,bitag 参数值会带有 rc 前缀,结构为 rc_{appkey}_{messageid}_0 ,例如:rc_fafweefwf_596E-P5PG-4FS2-7OJK_0 。 |
pushErrorCode | String | 即时通讯服务推送到第三方厂商时失败错误码。 |
pushErrorMsg | String | 对应 pushErrorCode 的推送失败描述。 |
thirdApiRespInfo | String | (第三方平台返回字段)第三方推送 API 返回 Response,请参考表格下方第三方推送平台文档。 |
thirdApiHttpStatusCode | String | (第三方平台返回字段)第三方推送 API 返回的 HTTP Status Code 码,请参考表格下方第三方推送平台文档。 |
thirdApiBusCode | String | (第三方平台返回字段)第三方推送 API 返回的业务 Code 码,请参考表格下方第三方推送平台文档。 |
第三方推送平台官方文档:
- 华为推送服务端 API 文档、华为推送下行消息回执
- 小米推送服务端 API 文档、小米推送消息回执、小米推送错误码
- 魅族推送服务端 API 文档
- VIVO 推送服务端 API 文档、VIVO 推送消息回执
- OPPO 推送服务端 API 文档(广播推送)、OPPO 推送服务端 API 文档(单点推送)、OPPO 推送消息回执
请求方法
POST:https://数据中心域名/message/push/detail/history.json
频率限制: 每秒钟限 100 次
签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名。
正文参数
HTTP 请求正文数据格式为 application/x-www-form-urlencoded
,支持以下 HTTP 表单参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
date | String | 是 | 指定时间,格式为 YYYYMMDDHH ,用于获取指定整小时的推送日志数据。例如,使用国内数据中心的应用,如需获取 2023 年 1 月 1 日凌晨 1 点至 2 点的数据,传入 2023010101 。注意:如您的 App 业务使用新加坡数据中心,date 的值使用北京时间。 |
请求示例
POST /message/push/detail/history.json HTTP/1.1
Host: api-cn.ronghub.com
App-Key: uwd1c0sxdlx2
Timestamp: 1408710653491
Nonce: 14314
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/x-www-form-urlencoded
date=2023010101
返回参数
返回值 | 返回类型 | 说明 |
---|---|---|
code | Int | 返回码,200 为正常。 |
url | String | 历史记录下载地址。如果暂无消息记录数据,则 url 值为空。 |
date | String | 历史记录时间。 |
返回结果示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"code":200,
"url":"http://xx.com/1/c6720eea-452b-4f93-8159-7af3046611f1.gz",
"date":"2023010101"
}