對於 App 客戶端來說,基本的工作就是根據上面的數據結構進行推送數據的解析,然後進行相關自定義操作。 但是需要注意的是:
注意與原有邏輯的相容,建議把神策的邏輯放到原有邏輯之前處理,防止原有推送邏輯無法解析神策數據,然後直接返回,導致神策推送數據沒有處理。 一定做好與原有邏輯的相容。 |
對於各個推送平台來說,註冊 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 |
{ "_j_business" = 1; "_j_msgid" = 67554013335743940; "_j_uid" = 27613330581; aps = { alert = { body = "..."; title = "..."; }; badge = 4; sound = ""; }; "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" } } |
來源 | 欄位名稱/取得方式 | 對應到神策的 屬性名稱(注意是預置屬性,屬性名帶 $ 前置字碼) | 埋點時對應的神策數據類型 | 含義 |
---|
推送消息外部結構 | 消息標題 | $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 | 無 |
| 自訂欄位資訊(所謂的透傳訊息) 這裡的 key/value 是在計畫中自訂的. |
其中sf_landing_type 欄位分別有 OPEN_APP、LINK、CUSTOMIZED,對應 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 端的觸達設定範例: