管道追蹤常見問題
1. 如何判斷成功呼叫tracinstallation介面
1.1. 第一步:需要您們開發人員在您們的 APP 中 ,呼叫 trackInstallation 介面 ,用來採集 AppInstall 事件。
iOS 和android文件: APP管道追蹤
注:(1)如果使用精準比對,iOS 端需要開啟取得 IDFA 權限(您的 App 裡需要引入 AdSupport 庫);Android 端需要在程式碼裡開啟取得 IMEI 權限(即 Android SDK 文件中動態申請 android.permission.READ_PHONE_STATE )。
(2)不可以直接在 trackInsatllation 介面中給 utm_soure 等 utm 屬性賦值。如果增加了這些賦值程式碼,APP 啟動時,就不會進行管道匹配,而是使用程式碼中填寫的管道資訊設定屬性值。
(3)可把管道包資訊,直接設定為 AppInstall 事件的屬性,比如管道屬性 downloadChannel:huawei。
對於 Android 可以給應用商店上傳帶有標記的管道包( apk 包),便於區分每個管道的下載量。可以使用 DownloadChannel 來記錄下載商店的管道。這裡 DownloadChannel 只是一個範例,如果需要多個欄位來標記管道包,請按業務實際需要增加。
AndroidManifest.xml
中:
XML
<meta-data
android:name="YOUR_DOWNLOAD_CHANNEL"
android:value="應用寶" />
初始化 SDK 後,呼叫 trackInstallation
記錄啟動事件、管道追蹤:
JAVA
try {
String downloadChannel = null;
// 取得下載商店的管道
downloadChannel = SensorsDataUtils.getApplicationMetaData(this, "YOUR_DOWNLOAD_CHANNEL");
JSONObject properties = new JSONObject();
//這裡範例 DownloadChannel 記錄下載商店的管道(下載管道)。如果需要多個欄位來標記管道包,請按業務實際需要增加。
properties.put("DownloadChannel", downloadChannel);
//記錄啟動事件、管道追蹤,這裡啟動事件取名為 AppInstall。
SensorsDataAPI.sharedInstance().trackInstallation("AppInstall", properties);
} catch (Exception e) {
e.printStackTrace();
}
注意: 一定不要在呼叫 trackInstallation:
介面時傳入 $utm_
相關的屬性。如果要追蹤推廣管道,需要用 App 管道連結來追蹤(推廣的管道連結一般由產品運營人員建立),具體請參考 推廣App。
下載管道:在 apk 程式碼內的標記,一般用於區分不同的應用商店(例如:應用寶、小米商店)。
推廣管道:管道連結 URL 中的 utm 資訊,一般用於區分不同的推廣投放。
AppInstall 事件採集成功後,可以在神策系統查看是否有相應的 AppInstall 事件(即 App啟動事件):
2. 如何在神策查詢管道匹配成功對應的 App 啟動事件?
在神策分析的對應專案中,選擇 AppInstall 或 App啟動事件,按以下方式查看
App 啟動事件匹配成功查詢結果應如下顯示正確的 utm 管道參數值,並且管道追蹤匹配模式為精確比對。如果兩者沒有同時顯示,比如廣告系列來源為【未知】、管道追蹤匹配模式為模糊比對或【未知】,說明管道追蹤精準比對失敗,請聯繫神策值班同學,進一步排查精準比對失敗原因。
3. 如何接收廣告商的其他參數
如果客戶想要接收廣告商的其他參數用於分析,例如取得對應的廣告計劃 id(AID) 以區分不同的廣告計劃,可按照下面的方式實現。
下列以頭條為例進行說明。
3.1. 方案一:使用神策預設的 utm 屬性存放對應的參數
1、在管道管理工具中,選擇今日頭條/抖音管道,並且根據 今日頭條的對接文件 將想要接收的其他參數(例如 廣告計劃 ID)的巨集(__AID__)填寫到 神策預設的 utm_ 屬性下,產生對應的監測連結。
2、管道匹配成功後,對應的 utm_ 屬性下的值,即為接收的第三方管道參數的值(例如 廣告計劃 ID: AID)
3.2. 方案二:使用自定義屬性存放對應的參數
1、在管道管理工具中,選擇今日頭條/抖音管道,並且根據 今日頭條的對接文件 將想要接收的其他參數(例如 廣告計劃 ID)的巨集(__AID__)填寫到 自定義屬性下,產生對應的監測連結。
2、管道匹配成功後,對應的自定義屬性下的值,即為接收的第三方管道參數的值(例如 廣告計劃 ID:AID)
4. 廣點通中如何取得下列6個參數
參數名 | 參數的參考值 |
---|---|
account_id | 8683590 |
client_id | 110787531 |
client_secret | 9IPQ0VP7INuYY6SA |
user_action_set_id( iOS 的) | 110781921 |
user_action_set_id( Android 的) | 1107817601 |
refresh_token | b8b393938dc3a4ddfc0b7e8abb721e92 |
具體參數含義可參考此文件:
https://developers.e.qq.com/docs/apilist/auth/oauth2#a2
- client_id 和 client_secret 在應用程序管理頁面取得(一定要等 APP審核通過,才會有對應的 client_id 和 client_secret ):
refresh_token 和 account_id
取得 refresh_token 和 account_id 之前,需要先取得 Authorization Code,然後透過 Authorization Code 取得 refresh_token 和 account_id。具有可參考此文件:
https://developers.e.qq.com/docs/apilist/auth/oauth2#a2
(1) Authorization Code 取得方法:
在瀏覽器的網址中,輸入該請求。
|
其中 state=<STATE>
scope=<SCOPE>兩個參數可以去掉
。
比如您的client_id=123456
,回呼網址是 https://www.example.com
,
那麼瀏覽器網址欄中輸入如下網址:
|
輸入連結之後,瀏覽器頁面會跳轉至 redirect_uri 對應的系統或頁面,同時帶有 authorization_code (有效期 5 分鐘)
https://www.example.com/?[authorization_code=xxxxx&state=
(2) 使用 Authorization Code 取得 refresh_token 、account_id 和 access_token。
在終端命令(mac電腦)或者 cmd 命令提示字元中(windows電腦)輸入如下請求:
|
以上 <CLIENT_ID>
、<CLIENT_SECRET>
、<authorization_code>
、<回呼
,填寫具體的參數
址>網
上述請求可以取得到 refresh_token 和 account_id 返回結果範例如下:
user_action_set_id ( iOS APP 的參數)
在終端命令(mac 電腦)或者 cmd 命令提示字元中( windows 電腦)輸入如下請求:
|
其中 <ACCESS_TOKEN>、<ACCOUNT_ID> 填寫具體的值。<TIMESTAMP> 填寫當前時間戳(可以百度搜尋取得),<NONCE> 是一個隨機數,隨意填寫就行。每次請求時,這個隨機數都需要變更。<應用商店的 ID>:IOS:App Store id;ANDROID:應用寶 id 。
具體可參考此文件 :https://developers.e.qq.com/docs/apilist/user_data/user_action_set
user_action_set_id (android APP 的參數)
在終端命令(mac 電腦)或者 cmd 命令提示字元中( windows 電腦)輸入如下請求:
|
其中 <ACCESS_TOKEN>
、<ACCOUNT_ID> 填寫具體的值。<TIMESTAMP> 填寫當前時間戳(可以百度搜尋取得),<NONCE> 是一個隨機數,隨意填寫就行。每次請求時,這個隨機數都需要變更。<應用商店的 ID>:IOS:App Store id;ANDROID:應用寶 id 。
注意:user_action_set_id 一個帳戶下只能建立一個(每個 App只能建立一個,如果一個帳號有2個 App,iOS 和 android 各 2 個,那麼會有 4 個 user_action_set_id),建立後不能編輯和刪除,上面的 add 介面為建立介面,如果之後想要再次查詢 user_action_set_id,可以使用下面的 get 介面取得
|
其中 <ACCESS_TOKEN>
、<ACCOUNT_ID> 填寫具體的值。<TIMESTAMP> 填寫當前時間戳(可以百度搜尋取得),<NONCE> 是一個隨機數,隨意填寫就行。每次請求時,這個隨機數都需要變更。
請求以及返回結果的範例如下:
5. 如何實現客户從微信取得 access_token 並自動同步给神策
5.1. 第⼀步:取得 api_secret
5.2. 第二步:取得同步地址
将同步地址 url 中的参数 copy 出来,http://localhost:8107/api/v2/sa/channel_token?project=default&app_id=123abc,把红色值 copy 出来;
5.3. 第三步,請求同步
5.3.1. 直接 curl 命令請求(示例如下)
curl -H "Content-Type:application/json" -X POST -d '{"access_token": "xxx","project":"xxx","app_id":"xxx"}' '同步地址&token=xxx'
参数解釋:
access_token:根據實際的 access_token 填寫
project:根据實際的神策項目填寫
app_id:根據實際的 app_id 填寫
同步地址:第二步取得的同步地址
token:第一步取得的 api_secret
最終請求命令组合完畢:
curl -H "Content-Type:application/json" -X POST -d '{"access_token": "x1x1x1x1x1x1x1x1","project":"default","app_id":"123abc"}' 'http://localhost:8107/api/v2/sa/channel_token?project=default&app_id=123456abc&token=x2x2x2x2x2x2x2x2'
5.3.2. 使用 postman ⼯具發请求(範例如下)
選擇 POST 方式,地址欄中填寫http://localhost:8107/api/v2/sa/channel_token?project=default&app_id=123456abc&token=x2x2x2x2x2x2x2x2,填寫参數形式選擇 Body 的 raw 選項,輸入 access_token、project、app_id 的 json 格式數據。
注意:access_token、api_secret如有發生變化,請重新同步。
6. 後端埋點的深度回傳事件配置
自 SA 版本:2.1.4874 起,管道追踪新增了深度回傳事件區分多 App 回傳的邏輯。
若您将後端埋點的事件配成深度回傳事件,確保该事件可成功回調,需您在後端埋點的深度回傳事件上報時必須加上 $app_id 屬性回傳。
請調用下列客户端 SDK 的方法取得 $app_id ,避免手動輸入錯誤導致無法成功回傳:
- Android 端取得方法:context.getApplicationInfo().processName
- iOS 端取得方法:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"]
7. iOS 14 相關問題
當 IDFA 無法追蹤時,匿名ID用什麼?
神策會調用 IDFV 作為匿名設備 ID 進行採集,當 IDFV 也無法採集的情况會使用 UUID 進行兜底。