自建通知统计上报接口(4.x)

更新时间:
复制 MD 格式

本文介绍在应用使用透传消息自行创建通知时,上报通知点击和删除事件的方法。

说明

适用于移动推送 Android SDK 4.x,本文接口和示例以已发布的 4.0.0 版本为基线。使用 3.x 的应用请参见对应的 3.x API 文档。

适用场景

应用在 onMessage(Context, CPushMessage) 中接收透传消息,并自行创建通知或弹窗时,需要在用户实际点击或删除对应内容时调用以下接口上报统计事件。由 SDK 创建和处理的通知使用 SDK 自动统计。

说明

两个接口均接收 onMessage 回调中的原始 CPushMessage。请保留 messageId、traceInfo 等统计字段,并将原始对象传递到点击或删除处理逻辑中。

在执行上报的应用进程中完成 PushServiceFactory.init。以下示例中的 originalMessage 应为 onMessage 收到并保留的原始 CPushMessage;在自建通知对应的点击或删除处理逻辑中调用相应示例方法。

点击事件(clickMessage)

在用户点击自建通知或对应弹窗时调用。同一条消息的同一种事件只上报一次。接口返回 void,无结果回调。

接口定义

void clickMessage(CPushMessage message);

所属类

CloudPushService

参数说明

参数

类型

是否必填

说明

message

CPushMessage

是

onMessage 收到的原始消息对象,不能为 null,messageId 不能为空。请保留其中的 messageId 和 traceInfo。

返回值与回调

返回值为 void,无结果回调。接口调用用于提交点击事件,不返回服务端接收或统计入库结果。

代码示例

public void reportCustomNotificationClick(CPushMessage originalMessage) {
    if (originalMessage == null || originalMessage.getMessageId() == null
            || originalMessage.getMessageId().isEmpty()) {
        return;
    }
    PushServiceFactory.getCloudPushService().clickMessage(originalMessage);
}
fun reportCustomNotificationClick(originalMessage: CPushMessage?) {
    if (originalMessage?.messageId.isNullOrEmpty()) return
    PushServiceFactory.getCloudPushService().clickMessage(originalMessage)
}

删除事件(dismissMessage)

在用户删除自建通知时,从通知的删除处理逻辑中调用本接口。每条消息的删除事件只上报一次。

接口定义

void dismissMessage(CPushMessage message);

所属类

CloudPushService

参数说明

参数

类型

是否必填

说明

message

CPushMessage

是

onMessage 收到的原始消息对象,不能为 null,messageId 不能为空。请保留其中的 messageId 和 traceInfo。

返回值与回调

返回值为 void,无结果回调。接口调用用于提交删除事件,不返回服务端接收或统计入库结果。

代码示例

public void reportCustomNotificationDismiss(CPushMessage originalMessage) {
    if (originalMessage == null || originalMessage.getMessageId() == null
            || originalMessage.getMessageId().isEmpty()) {
        return;
    }
    PushServiceFactory.getCloudPushService().dismissMessage(originalMessage);
}
fun reportCustomNotificationDismiss(originalMessage: CPushMessage?) {
    if (originalMessage?.messageId.isNullOrEmpty()) return
    PushServiceFactory.getCloudPushService().dismissMessage(originalMessage)
}

消息对象和验证

CPushMessage 实现 Parcelable,可按 Android 组件间数据传递规则保留原始消息。应用被系统回收后仍需处理通知点击时,请恢复原始消息及统计所需标识,并对日志中的消息数据进行脱敏。

方法

说明

getMessageId()

消息标识,上报时必须保留。

getTraceInfo()

SDK 提供的原始统计追踪信息,请随原始消息保留和传递。

getAppId()

消息关联的应用标识。

getTitle()

获取消息标题,用于构造自建通知的展示内容。

getContent()

获取消息内容,用于构造自建通知的展示内容。

分别测试透传消息接收、自建通知显示、点击和删除流程,再查看服务端对应统计结果,确认统计上报生效。

相关文档

接入流程请参见Android SDK接入(4.x)。

使用 3.x 的应用请参见自建通知统计上报接口(3.x)。