App 推送整合
概述
App 用戶端邏輯
對於 App 客戶端來說,基本的工作就是根據上面的數據結構進行推送數據的解析,然後進行相關自定義操作。 但是需要注意的是:
注意與原有邏輯的相容,建議把神策的邏輯放到原有邏輯之前處理,防止原有推送邏輯無法解析神策數據,然後直接返回,導致神策推送數據沒有處理。 一定做好與原有邏輯的相容。 |
App 端需要採集的事件:
- 上報推送 ID
- 觸發推送打開的埋點
上報推送 ID
對於各個推送平台來說,註冊 ID 名稱也有所差別,極光平臺稱之為RegistrationID,個推平臺稱之為 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 | 運營計劃 代碼 | 推送計畫 代碼 |
$sf_audience_id | 運營受眾 ID | 推送計劃的受眾 ID,受眾是批量計算的,會定時變更,此 ID 用於區分是哪個批次的受眾,非必須屬性,可能沒有 |
$sf_plan_strategy_id | 實驗群 組代碼 | 實驗群 組代碼 |
$sf_plan_type | 計劃類型 | 目前有兩個值,「運營計劃」 和 「流程畫布」 |
$sf_strategy_unit_id | 原則群 組 ID | 標記流程畫布里策略器的 ID |
SF 推送資料解讀
以 iOS / 極光 為例,推送直接拿到的結構如下:
{ |
其中 sf_data 欄位中的數據為 SF 傳給客戶端的數據,具體資料為:
# 推送消息中,sf_data 字段 JSON 解析後得到 |
對於 推送數據 和 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 | 實驗群 組代碼 | |
sf_plan_type | $sf_plan_type | STRING | 計劃類型,SIMPLE 運營計劃,RICH 流程畫布 | |
sf_strategy_unit_id | $sf_strategy_unit_id | STRING | 原則器 ID | |
customized | 無 | 自訂欄位資訊(所謂的透傳訊息) |
其中sf_landing_type 欄位分別有 OPEN_APP、LINK、CUSTOMIZED,對應 App 的動作分別是喚醒應用、打開指定連結、 自訂跳轉
喚醒 App
- 默認行為,點擊推送消息,就打開 App 首頁。
- 注意,這裡雖然稱之為 「喚醒 App」,但為了能夠傳遞埋點所需的統計資訊,仍舊會用到推送平臺的 extra 字段等特性.
sf_data 內含資訊如下:
{
"sf_landing_type": "OPEN_APP",
...
}- 在 SF Web UI 端的觸達設定範例:
打開一個網頁
- 在 App 裡開啟 URL.
- 您需要在 App 裡解析 sf_data 結構並得到 sf_link_url 欄位的資訊,並實現打開 URL 的動作。
sf_data 內含資訊如下:
{
"sf_landing_type": "LINK",
"sf_link_url": "http://sensorsdata.cn/",
...
}- 在 SF Web UI 端的觸達設定範例:
自訂消息
- 此處可以定義多個自定義的欄位,用以描述更複雜的打開動作。
sf_data 內含資訊如下:
{
"sf_landing_type": "CUSTOMIZED",
...
"customized":{
"liveId": "1234",
"foo": "bar"
}
}- 在 SF Web UI 端的觸達設定範例: