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="應用寶" />
CODE

初始化 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();
        }
CODE

注意: 一定不要在呼叫 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_id8683590
client_id110787531
client_secret9IPQ0VP7INuYY6SA
user_action_set_id( iOS 的)110781921
user_action_set_id( Android 的)1107817601
refresh_tokenb8b393938dc3a4ddfc0b7e8abb721e92

具體參數含義可參考此文件:

https://developers.e.qq.com/docs/apilist/auth/oauth2#a2

  • client_idclient_secret 在應用程序管理頁面取得(一定要等 APP審核通過,才會有對應的 client_idclient_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 取得方法:

在瀏覽器的網址中,輸入該請求。

https://developers.e.qq.com/oauth/authorize?client_id=&redirect_uri=<回呼網址>&state=<STATE>&scope=<SCOPE>

其中 state=<STATE> scope=<SCOPE>兩個參數可以去掉

比如您的client_id=123456,回呼網址是 https://www.example.com

那麼瀏覽器網址欄中輸入如下網址:

https://developers.e.qq.com/oauth/authorize?client_id=123456&redirect_uri=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電腦)輸入如下請求:

curl -G 'https://api.e.qq.com/oauth/token' \
-d 'client_id=<CLIENT_ID>' \
-d 'client_secret=<CLIENT_SECRET>' \
-d 'grant_type=authorization_code' \
-d 'authorization_code=<authorization_code>' \
-d 'redirect_uri= <回呼址>'

以上 <CLIENT_ID><CLIENT_SECRET><authorization_code><回呼址>填寫具體的參數

上述請求可以取得到 refresh_token 和 account_id 返回結果範例如下:

  • user_action_set_id ( iOS APP 的參數)

在終端命令(mac 電腦)或者 cmd 命令提示字元中( windows 電腦)輸入如下請求:

curl 'https://api.e.qq.com/v1.1/user_action_sets/add?access_token=<ACCESS_TOKEN>&timestamp=<TIMESTAMP>&nonce=<NONCE>' \
-H 'Content-Type: application/json' \
-d '{"account_id": "<ACCOUNT_ID>","type": "IOS","mobile_app_id": "<應用商店的 ID>","name": "iosuser_action_set", "description": ""}'

其中 <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 電腦)輸入如下請求:

curl 'https://api.e.qq.com/v1.1/user_action_sets/add?access_token=<ACCESS_TOKEN>&timestamp=<TIMESTAMP>&nonce=<NONCE>' \
-H 'Content-Type: application/json' \
-d '{"account_id": "<ACCOUNT_ID>","type": "ANDROID","mobile_app_id": "<應用商店的 ID>","name": "androiduser_action_set", "description": ""}'

其中  <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 介面取得

curl -G 'https://api.e.qq.com/v1.1/user_action_sets/get?access_token=<ACCESS_TOKEN>&timestamp=<TIMESTAMP>&nonce=<NONCE>' \
-H 'Content-Type: application/json' \
-d 'account_id=<ACCOUNT_ID>' \
-d 'fields=["type","description","name"]'

其中  <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 進行兜底。