全部產品
Search
文件中心

Quick Tracking:uniapp SDK

更新時間:Jun 07, 2025

在uni-app架構中,調用QuickTracking統計SDK相關介面,完成統計埋點及資料上報

1.下載外掛程式

QuickTracking uniapp外掛程式下載地址

平台相容性

Android

iOS

適用版本區間:4.4 - 13.0

適用版本區間:9 - 15

使用流程:

1.1 單擊購買for雲打包

image.png

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

image.png

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

image.png

請注意:這裡的包名需要與後面在HBuilderX工具做雲打包時填寫的包名相同

2.原生外掛程式配置

2.1 開啟HBuilderX工具,選擇需要整合外掛程式的工程的manifest.json檔案,按步驟勾選App原生外掛程式配置

image.png

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. 運行

  1. 打包自訂基座,選擇外掛程式,得到自訂基座,然後運行時選擇自訂基座,進行log輸出測試。

  2. 開發完畢後正式雲打包

付費原生外掛程式目前不支援離線打包。

Android 離線打包原生外掛程式文檔

iOS 離線打包原生外掛程式文檔

注意事項:使用HBuilderX2.7.14以下版本,如果同一外掛程式且同一appid下購買並綁定了多個包名,提交雲打包介面提示包名綁定不一致時,需要在HBuilderX專案中manifest.json->“App原生外掛程式配置”->”雲端外掛程式“列表中刪除該外掛程式重新選擇

5. 隱私、許可權聲明

1. 本外掛程式需要申請的系統許可權列表:

安卓

  • android.permission.ACCESS_NETWORK_STATE

  • android.permission.ACCESS_WIFI_STATE

  • android.permission.INTERNETimage.pngimage.png

iOS

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

  2. 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喚起。image.png

iOS

在manifest.json檔案中開啟“App常用其他設定”,找到 “iOS設定”,在“UrlSchemes”中添加:"atm.您的iOS應用的appKey",讓應用能被指定串連scheme喚起。image.png

小程式及Web端埋點驗證請參考文檔:埋點驗證

7.全埋點功能

支援端

功能

Android

  • 應用啟動($$_app_start)

  • 應用退出($$_app_end)

  • 應用啟用($$_app_install)

iOS

  • 應用啟動($$_app_start)

  • 應用退出($$_app_end)

  • 應用啟用($$_app_install)

Web/H5

  • 頁面瀏覽($$_page_start )

  • 頁面離開 ($$_page_leave)

  • 熱力圖點擊 ($$_hotpoint)

  • 自動點擊自動曝光

  • 任意控制項點擊自動捕獲

微信小程式

  • 應用啟動($$_app_start)

  • 應用退出($$_app_end)

  • 頁面瀏覽($$_page_end )

  • 頁面觸底 ($$_reach_bottom)

  • 下拉重新整理 ($$_pull_down_refresh)

  • 分享 ($$_share)

  • 自動點擊

  • 自動曝光

支付寶小程式

  • 應用啟動($$_app_start)

  • 應用退出($$_app_end)

  • 頁面瀏覽($$_page_end )

  • 頁面觸底 ($$_reach_bottom)

  • 下拉重新整理 ($$_pull_down_refresh)

  • 分享 ($$_share)

  • 自動點擊

  • 自動曝光

位元組小程式

  • 應用啟動($$_app_start)

  • 應用退出($$_app_end)

  • 頁面瀏覽($$_page_end )

  • 頁面觸底 ($$_reach_bottom)

  • 下拉重新整理 ($$_pull_down_refresh)

  • 分享 ($$_share)

  • 自動點擊

  • 自動曝光

百度小程式

  • 應用啟動($$_app_start)

  • 應用退出($$_app_end)

  • 頁面瀏覽($$_page_end )

  • 頁面觸底 ($$_reach_bottom)

  • 下拉重新整理 ($$_pull_down_refresh)

  • 分享 ($$_share)

  • 自動點擊

  • 自動曝光