App 推送集成
|
收藏
概述
App 客户端逻辑
对于 App 客户端来说,基本的工作就是根据上面的数据结构进行推送数据的解析,然后进行相关自定义操作。但是需要注意的是:
注意与原有逻辑的兼容,建议把神策的逻辑放到原有逻辑之前处理,防止原有推送逻辑无法解析神策数据,然后直接返回,导致神策推送数据没有处理。一定做好与原有逻辑的兼容。
App 端需要采集的事件:
- 上报推送 ID
- 触发推送打开的埋点
上报推送 ID
对于各个推送平台来说,注册 ID 名称也有所差别,极光平台称之为 Registration ID,个推平台称之为 Client ID 以及友盟平台称之为 deviceToken,用处都类似,唯一标识一台设备。在推送注册成功后,各个推送平台都提供了相关的回调接口,此时在接口中调用 profilePushId(type, registerId) 接口上报注册 ID。
触发推送打开的埋点
神策 SF 推送的数据格式参照上一节中的重要数据格式定义所列举,App 端需要采集通知打开的事件——$AppPushClick,该事件的属性都是从神策 SF 推送的数据中解析而来。$AppPushClick 事件的属性如下:
name | cname | 说明 |
---|---|---|
$sf_msg_title | 推送标题 | 推送消息标题 |
$sf_msg_content | 推送内容 | 推送消息内容 |
$sf_link_url | 打开指定链接 | 打开一个 URL,会使用此字段,字段名固定 |
$sf_plan_id | 运营计划 ID | 推送计划 ID |
$sf_audience_id | 运营受众 ID | 推送计划的受众 ID,受众是批量计算的,会定时变更,此 ID 用于区分是哪个批次的受众,非必须属性,可能没有 |
$sf_plan_strategy_id | 实验组 ID | 实验组 ID |
$sf_plan_type | 计划类型 | 目前有两个值,"运营计划" 和 "流程画布" |
$sf_strategy_unit_id | 策略组 ID | 标记流程画布里策略器的 ID |
SF 推送数据解读
以 iOS / 极光 为例,推送直接拿到的结构如下:
{
"_j_business" = 1;
"_j_msgid" = 67554013335743940;
"_j_uid" = 27613330581;
aps = {
alert = {
body = "...";
title = "...";
};
badge = 4;
sound = "";
};
"sf_data" = "{.....}";
}
JS
其中 sf_data 字段中的数据为 SF 传给客户端的数据,具体数据为:
# 推送消息中,sf_data 字段 JSON 解析后得到
{
"sf_link_url":"http://sensorsdata.cn", # 打开一个 URL,会使用此字段,字段名固定
"sf_landing_type":"CUSTOMIZED", # 为 OPEN_APP、LINK、CUSTOMIZED
"sf_msg_id": "83ddb764-e163-453e-a715-d68621170b71", # 神策自行产生的消息 id,用于排错
"sf_plan_id": "3", # 计划 ID 这里均为字符串类型,以支持在神策分析中进行分组
"sf_audience_id": 5, # 受众 ID
"sf_plan_strategy_id": "0", # 实验组 ID,用于区分实验组
"sf_strategy_unit_id": "100", # 策略器 ID,用于区分策略器
"sf_plan_type": "运营计划", # 计划类型,中文显示名(SIMPLE 运营计划,RICH 流程画布)
"customized":{ # 自定义字段信息(所谓的透传消息)
"book_id":"12345", # 这里的 key/value 是在计划中自定义的.
"news_id":"678"
}
}
JS
对于 推送数据 和 sf_data 字段数据的具体解读:
来源 | 字段名/获取方式 | 对应到神策的 属性名(注意是预置属性,属性名带 $ 前缀) | 埋点时对应的神策数据类型 | 含义 |
---|---|---|---|---|
推送消息外部结构 | 消息标题 | $sf_msg_title | STRING | 推送标题 |
消息内容 | $sf_msg_content | STRING | 推送内容 | |
sf_data | sf_link_url | $sf_link_url | STRING | 打开一个 URL,会使用此字段,字段名固定 |
sf_landing_type | $sf_landing_type | STRING | OPEN_APP、LINK、CUSTOMIZED | |
sf_plan_id | $sf_plan_id | STRING | 这里均为字符串类型,以支持在神策分析中进行分组 | |
sf_audience_id | $sf_audience_id | NUMBER | 受众 ID | |
sf_plan_strategy_id | $sf_plan_strategy_id | STRING | 实验组 ID | |
sf_plan_type | $sf_plan_type | STRING | 计划类型,SIMPLE 运营计划,RICH 流程画布 | |
sf_strategy_unit_id | $sf_strategy_unit_id | STRING | 策略器 ID | |
customized | 无 | 自定义字段信息(所谓的透传消息) 这里的 key/value 是在计划中自定义的. |
其中 sf_landing_type 字段分别有 OPEN_APP、LINK、CUSTOMIZED,对应 App 的动作分别是唤醒应用、打开指定链接、自定义跳转
唤醒 App
- 默认行为,点击推送消息,就打开 App 首页。
- 注意,这里虽然称之为 “唤醒 App”,但为了能够传递埋点所需的统计信息,仍旧会用到推送平台的 extra 字段等特性.
sf_data 内含信息如下:
{ "sf_landing_type": "OPEN_APP", ... }
JS- 在 SF Web UI 端的触达设置示例:
打开一个网页
- 在 App 里打开 URL.
- 您需要在 App 里解析 sf_data 结构并得到 sf_link_url 字段的信息,并实现打开 URL 的动作。
sf_data 内含信息如下:
{ "sf_landing_type": "LINK", "sf_link_url": "http://sensorsdata.cn/", ... }
JS- 在 SF Web UI 端的触达设置示例:
自定义消息
- 此处可以定义多个自定义的字段,用以描述更复杂的打开动作。
sf_data 内含信息如下:
{ "sf_landing_type": "CUSTOMIZED", ... "customized":{ "liveId": "1234", "foo": "bar" } }
JS在 SF Web UI 端的触达设置示例:
注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。