App 推送集成
|
收藏
1. 概述
1.1. App 客户端逻辑
对于 App 客户端来说,基本的工作就是根据上面的数据结构进行推送数据的解析,然后进行相关自定义操作。但是需要注意的是:
注意与原有逻辑的兼容,建议把神策的逻辑放到原有逻辑之前处理,防止原有推送逻辑无法解析神策数据,然后直接返回,导致神策推送数据没有处理。一定做好与原有逻辑的兼容。
1.2. App 端需要采集的事件:
- 上报推送 ID
- 触发推送打开的埋点
1.2.1. 上报推送 ID
对于各个推送平台来说,注册 ID 名称也有所差别,极光平台称之为 Registration ID,个推平台称之为 Client ID 以及友盟平台称之为 deviceToken,用处都类似,唯一标识一台设备。在推送注册成功后,各个推送平台都提供了相关的回调接口,此时在接口中调用 profilePushId(type, registerId) 接口上报注册 ID。
1.2.2. 触发推送打开的埋点
神策智能运营推送的数据格式参照上一节中的重要数据格式定义所列举,App 端需要采集通知打开的事件——$AppPushClick,该事件的属性都是从神策智能运营推送的数据中解析而来。$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 |
2. 神策智能运营推送数据解读
2.1. 以 iOS / 极光 为例,推送直接拿到的结构如下:
{
"_j_business" = 1;
"_j_msgid" = 67554013335743940;
"_j_uid" = 27613330581;
aps = {
alert = {
body = "...";
title = "...";
};
badge = 4;
sound = "";
};
"sf_data" = "{.....}";
}
JS
2.2. 其中 sf_data 字段中的数据为神策智能运营传给客户端的数据,具体数据为:
# 推送消息中,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
2.3. 对于 推送数据 和 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 的动作分别是唤醒应用、打开指定链接、自定义跳转
2.3.1. 唤醒 App
- 默认行为,点击推送消息,就打开 App 首页。
- 注意,这里虽然称之为 “唤醒 App”,但为了能够传递埋点所需的统计信息,仍旧会用到推送平台的 extra 字段等特性.
sf_data 内含信息如下:
{ "sf_landing_type": "OPEN_APP", ... }
JS- 在 神策智能运营Web UI 端的触达设置示例:
2.3.2. 打开一个网页
- 在 App 里打开 URL.
- 您需要在 App 里解析 sf_data 结构并得到 sf_link_url 字段的信息,并实现打开 URL 的动作。
sf_data 内含信息如下:
{ "sf_landing_type": "LINK", "sf_link_url": "http://sensorsdata.cn/", ... }
JS- 在 神策智能运营Web UI 端的触达设置示例:
2.3.3. 自定义消息
- 此处可以定义多个自定义的字段,用以描述更复杂的打开动作。
sf_data 内含信息如下:
{ "sf_landing_type": "CUSTOMIZED", ... "customized":{ "liveId": "1234", "foo": "bar" } }
JS在 神策智能运营Web UI 端的触达设置示例:
注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。