在uni-app架構中,調用QuickTracking統計SDK相關介面,完成統計埋點及資料上報
1.下載外掛程式
平台相容性
Android | iOS |
適用版本區間:4.4 - 13.0 | 適用版本區間:9 - 15 |
使用流程:
1.1 單擊購買for雲打包

1.2 勾選需要整合原生外掛程式的專案

1.3 填寫應用的包名,然後確認

請注意:這裡的包名需要與後面在HBuilderX工具做雲打包時填寫的包名相同
2.原生外掛程式配置
2.1 開啟HBuilderX工具,選擇需要整合外掛程式的工程的manifest.json檔案,按步驟勾選App原生外掛程式配置

3.埋點API
3.1 SDK初始化
App.vue
<script>
// #ifdef APP-PLUS
const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin');
// #endif
export default {
onLaunch: function() {
// #ifdef APP-PLUS
QtAnalytics.setCustomDomain('設定您的收數網域名稱');
if (uni.getSystemInfoSync().platform === 'ios') {
/**
* @description QtAnalytics.initWithAppkey(String appkey, String channel, int deviceType, String pushSecret)
* @param {appkey} 字串類型 QT為當前應用平台頒發的唯一標識
* @param {channel} 字串類型 app投放的應用市場
* @param {deviceType} 裝置類型,1-手機;2-box(整型)
* @param {pushSecret} 保留未使用,輸入Null 字元串即可。(字串類型)
* */
QtAnalytics.initWithAppkey('設定iOS appKey', '設定渠道', 1, '');
} else {
/**
* @description QtAnalytics.preInit(String appkey, String channel, int deviceType, String pushSecret)
* @param {appkey} 字串類型 QT為當前應用平台頒發的唯一標識
* @param {channel} 字串類型 app投放的應用市場
* @param {deviceType} 裝置類型,1-手機;2-box(整型)
* @param {pushSecret} 保留未使用,輸入Null 字元串即可。(字串類型)
* */
QtAnalytics.preInit('設定 Android appKey', '設定渠道', 1, '');
// android 需要配合在隱私授權同意後調用 QtAnalytics.init
QtAnalytics.init('設定 Android appKey', '設定渠道', 1, '');
}
// #endif
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>H5整合方式請參考文檔:Web SDK
小程式整合方式請參考文檔:小程式SDK
3.2 設定全域屬性
1. 註冊全域屬性介面
/**
* @description QtAnalytics.registerGlobalProperties(String params)
* @params 為一級平鋪全域參數屬性索引值對,不支援嵌套,並且iOS端不支援值為 null 和 "" 類型的鍵
* @return void
*/
registerGlobalProperties(string params)樣本:
QtAnalytics.registerGlobalProperties(JSON.stringify({
"param_1":"value_1",
"param_2":"value_2",
"param_3":"value_3",
"param_4":"undefined"
}));2. 刪除某個全域屬性介面
/**
* @@description 刪除某個全域屬性介面
* @param {key} 全域屬性名 字串類型
* @return void
*/
unregisterGlobalProperty(String key)樣本:
QtAnalytics.unregisterGlobalProperty('a');3. 擷取全部全域屬性介面
/**
* @description 擷取全部全域屬性介面
* @return 當前登入所有全域屬性值
*/
getGlobalProperties樣本:
const gp = QtAnalytics.getGlobalProperties();4. 刪除所有全域屬性介面
/**
* @description 刪除所有全域屬性介面
* @return void
*/
clearGlobalProperties樣本:
QtAnalytics.clearGlobalProperties();3.3 頁面瀏覽事件
/** 自動頁面時間長度統計, 開始記錄某個頁面展示時間長度.
使用方法:onPageStart和onPageEnd兩個函數來完成自動統計,若只調用某一個函數不會產生有效資料。
在該頁面展示時調用onPageStart,當退出該頁面時調用onPageEnd
@param viewName 統計的頁面名稱
*/
onPageStart(String viewName) //頁面開始
onPageEnd(String viewName) //頁面結束請注意:必須配對調用onPageStart()和onPageEnd()兩個函數來完成自動統計,若只調用某一個函數不會產生有效資料。
樣本:
//page.vue
const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
export default {
onShow() {
...
QtAnalytics.onPageStart('當前頁面的頁面編碼');
...
},
onHide() {
...
QtAnalytics.onPageEnd('當前頁面的頁面編碼');
...
},
}更新頁面屬性
頁面屬性設定介面setPageProperty(),支援給當前頁面附加自訂屬性。
/**
* @pageName 目標頁面名,必須和當前頁面名一致。如不一致,函數執行無效
* @pageProperty 需要關聯到頁面的k-v索引值對參數。value 值僅支援 string、number,並且不支援多層嵌套對象
*
* @warning 調用說明:必須在onHide之前調用
*/
setPageProperty(String pageName, Object pageProperty)請注意:請在調用onPageStart之後設定頁面屬性。
樣本:
//page.vue
const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
export default {
onShow() {
...
QtAnalytics.onPageStart('當前頁面的頁面編碼');
QtAnalytics.setPageProperty('當前頁面的頁面編碼', {
"pageparam_1":"value_1",
"pageparam_2":"value_2",
"pageparam_3":"value_3"
})
...
},
onHide() {
...
QtAnalytics.onPageEnd('當前頁面的頁面編碼');
...
},
}3.4 自訂事件
/**
* @description QtAnalytics.onEventObject(String eventId, String params)
* @eventId 自訂事件名(字串類型)
* @params 一級平鋪自訂參數屬性索引值對,不支援嵌套
*/
onEventObject(String eventId, String params)樣本:
QtAnalytics.onEventObject(
'test_clk',
JSON.stringify({
"product":"水杯",
"productColor":"黃色",
"productId":"003"
})
);3.5 使用者登入
onProfileSignIn(String puid, String provider = "'') 第二個參數預設為空白字串
QtAnalytics.onProfileSignIn('testUserId', 'testOrganization')使用者登出
QtAnalytics.onProfileSignOff()設定使用者屬性
需先調用使用者登入功能設定使用者 id,再調用設定使用者屬性API。歸屬於自訂事件的一種,事件編碼需寫死為 $$_user_profile
樣本:
/**
* @description QtAnalytics.onEventObject(String eventId, String params)
* @eventId 需寫死為 $$_user_profile
* @params 一級平鋪自訂參數屬性索引值對,不支援嵌套
*/
QtAnalytics.onEventObject(
'$$_user_profile',
JSON.stringify({
"gender":"male",
"_user_nick":"a_nick",
"province":"Beijing"
})
);4. 運行
打包自訂基座,選擇外掛程式,得到自訂基座,然後運行時選擇自訂基座,進行log輸出測試。
開發完畢後正式雲打包
付費原生外掛程式目前不支援離線打包。
注意事項:使用HBuilderX2.7.14以下版本,如果同一外掛程式且同一appid下購買並綁定了多個包名,提交雲打包介面提示包名綁定不一致時,需要在HBuilderX專案中manifest.json->“App原生外掛程式配置”->”雲端外掛程式“列表中刪除該外掛程式重新選擇
5. 隱私、許可權聲明
1. 本外掛程式需要申請的系統許可權列表:
安卓
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.INTERNET


iOS
【Quick Tracking】SDK預設採集idfa標識,用來更準確的分析核對資料。對於應用本身沒有擷取idfa的情況,建議將應用提交至AppStore時按如下方式配置:(以避免被蘋果以“應用不含廣告功能,但擷取了廣告標示符IDFA”的而拒絕其上架。)

Quick Tracking SDK不主動申請IDFA擷取許可權,若您的App本身就沒有申請IDFA許可權,Quick Tracking是不會觸發用戶端許可權申請的彈窗的。
2. 本外掛程式採集的資料、發送的伺服器位址、以及資料用途說明:
安卓
QuickTracking Android SDK通過採集唯一裝置識別碼(如Android ID、Serial (Android手機裝置序號)、IMEI 、IMSI 、OAID、GAID、Mac、MCC(移動國家編碼)、MNC(移動網號))對使用者進行唯一標識,以便進行諸如使用者新增等資料統計。在特殊情況下(如使用者使用平板裝置或電視盒子時),無法通過唯一裝置識別碼標識裝置,我們會將裝置Mac地址作為使用者的唯一標識,以便正常提供統計分析服務。
iOS
QuickTracking iOS SDK通過採集唯一裝置識別碼(如IDFA、IDFV、MCC(移動國家編碼)、MNC(移動網號)、IP、UTDID)對使用者進行唯一標識,以便進行諸如使用者新增等資料統計。
本產品的發數伺服器位址需由開發人員指定(私人化部署),參數擷取方式為:
appkey:在應用列表中擷取
收數網域名稱:在“管理主控台-採集資訊”模組中擷取
SDK連結:在“管理主控台-採集資訊”模組中擷取。
6.埋點驗證配置
安卓
在manifest.json檔案中開啟“App常用其他設定”,找到“Android設定”,在“UrlSchemes”中添加:"atm.您的Android應用的appKey",讓應用能被指定串連scheme喚起。
iOS
在manifest.json檔案中開啟“App常用其他設定”,找到 “iOS設定”,在“UrlSchemes”中添加:"atm.您的iOS應用的appKey",讓應用能被指定串連scheme喚起。
小程式及Web端埋點驗證請參考文檔:埋點驗證
7.全埋點功能
支援端 | 功能 |
Android |
|
iOS |
|
Web/H5 |
|
微信小程式 |
|
支付寶小程式 |
|
位元組小程式 |
|
百度小程式 |
|