跳到主要内容

获取推送日志

即时通讯服务端可以提供 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 天后服务端自动删除该日志文件。

日志格式

名称类型说明
messageIdString推送消息 ID。
receiverIdString接收者用户 ID。
systemTypeString接收者的设备操作系统类型:iOS、Android
pushStatusString推送状态,可能为成功(0)、失败(1)、到达(2)、已被点击(3)。
sendTimeString消息发送时间,精确到毫秒,海外为 UTC 时间。
timeString推送状态变更的时间戳,根据 pushStatus 取值,该字段可能为推送成功、失败、到达、点击的时间。精确到毫秒,海外为 UTC 时间
pushTypeString推送类型。可能为 MIHWHONORMEIZUOPPOVIVOFCMAPNSRONG(即时通讯自建推送)。
pushChannelIdString渠道 ID,只有 pushStatus 推送状态为成功(0)时有效,目前仅支持小米、华为、OPPO。
pIdString推送关联 ID,仅支持 FCM、APNS,可用于关联推送成功、到达、点击记录,追踪 FCM 和 APNs 的推送状态变化。该字段要求客户端 SDK 版本 ≧ 5.1.7。
requestIdString推送请求 ID,是即时通讯服务端调用第三方推送 API 时的请求唯一标识。如需追踪小米、魅族、华为、VIVO、OPPO 推送的状态变化,可与 pushToken 一起使用,关联推送成功、到达、点击记录,
pushTokenString推送 Token。追踪小米、魅族、华为、VIVO、OPPO 推送的状态变化,可与 requestId 一起使用,关联推送成功、到达、点击记录。
deviceIdString推送的目标设备 ID。如需追踪华为、VIVO、OPPO 的推送的状态,可与 messageId 一起使用,关联推送成功、点击记录。
senderIdString消息发送者 ID。如果直接发送推送(非由消息触发),则没有消息发送者 ID。
channelTypeString消息所属的会话类型,可能为单聊会话(1)、群组会话(3)、系统通知(6)、超级群会话(10)。
channelIdString此字段已废弃。 目前此字段仅用于兼容旧版本,不建议使用。请使用 targetId作为替代。
targetIdString会话 ID。根据 channelType 取值不同,可能为群聊 ID、超级群 ID。如果 channelType 为系统会话,单聊会话,因会话 ID 即接收者的用户 ID(receiverId),此字段为空。
groupChannelIdString超级群群场景中的频道 ID,在非超级群场景中此字段为空。
thirdRespBodyString第三方平台返回字段)第三方推送平台的推送状态回调,依赖各厂商提供的推送回执服务。受第三方平台自身限制,回调数据有差异:小米、魅族的回调包含推送到达、点击数据。华为、VIVO、OPPO 包含推送到达数据。在华为推送回调数据中,如果是由即时通讯服务触发的推送,bitag 参数值会带有 rc 前缀,结构为 rc_{appkey}_{messageid}_0,例如:rc_fafweefwf_596E-P5PG-4FS2-7OJK_0
pushErrorCodeString即时通讯服务推送到第三方厂商时失败错误码。
pushErrorMsgString对应 pushErrorCode 的推送失败描述。
thirdApiRespInfoString第三方平台返回字段)第三方推送 API 返回 Response,请参考表格下方第三方推送平台文档。
thirdApiHttpStatusCodeString第三方平台返回字段)第三方推送 API 返回的 HTTP Status Code 码,请参考表格下方第三方推送平台文档。
thirdApiBusCodeString第三方平台返回字段)第三方推送 API 返回的业务 Code 码,请参考表格下方第三方推送平台文档。

第三方推送平台官方文档

请求方法

POST:https://数据中心域名/message/push/detail/history.json

频率限制: 每秒钟限 100 次

签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名

正文参数

HTTP 请求正文数据格式为 application/x-www-form-urlencoded,支持以下 HTTP 表单参数:

参数类型必填说明
dateString指定时间,格式为 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

返回参数

返回值返回类型说明
codeInt返回码,200 为正常。
urlString历史记录下载地址。如果暂无消息记录数据,则 url 值为空。
dateString历史记录时间。

返回结果示例

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"
}