1. 程式人生 > 其它 >在APICloud開發平臺使用友盟統計功能教程

在APICloud開發平臺使用友盟統計功能教程

APICloud開發平臺模組庫中的umAnalytics模組封裝了友盟APP統計SDK。實現了友盟統計功能,包括啟動次數、事件、頁面等app資料的統計。模組的使用步驟主要如下:

1、註冊賬號,開發者到友盟官網註冊自己的賬號

2、進入官網點選移動統計建立應用並獲取AppKey

3、如果需要自定義事件統計,需進入應用,然後點選 設定 => 事件 => 新增事件

4、配置 config.xml 檔案

一個 App 需要同時支援 iOS 和 Android 平臺,則必須單獨申請各自的 appKey,並同時配置在 config 檔案中,Android渠道和iOS渠道分別標註

<feature name="umAnalytics">
     // ios_appkey:通過友盟移動統計網站獲得iOS系統的key
    <param name="ios_appkey" value="*************"/>
  // iOS渠道號
    <param name="ios_channel" value="******"/>
    // 通過友盟移動統計網站獲得Android系統的key
    <param name="android_appkey" value="***********"/>
	// Android的渠道號
    <param name="android_channel" value="******"/>
</feature>

5、常見問題的索引  https://community.umeng.com/

6、注意

在APICloud開發平臺使用時不能與umengAnalytics、umengTJ模組共同使用,同時由於Google Play 及國內的一些app store審查的原因,自模組版本 1.0.5 後,新增介面 config、onResume、onPause,在原先初始化(init)之前需要呼叫config 介面, 並且需要在監聽到app主頁面啟動後呼叫onResume、onPause介面

引入的程式碼也比較簡單,示例如下:

apiready = function () {
        var umAnalytics = api.require('umAnalytics');
        if (systemType == 'android') {
            umAnalytics.config();
        }
        umAnalytics.init();
        api.addEventListener({
            name: 'resume'
        }, function (ret, err) {
            umAnalytics.onResume();
        });
        api.addEventListener({
            name: 'pause'
        }, function (ret, err) {
            umAnalytics.onPause();
        });
}

引入後編譯正式包,客戶下載安裝,在友盟後臺就可以統計到使用者的相關資訊

此外,友盟模組支援自定義事件,需要提前在統計平臺上定義事件;自定義事件可以實現在應用程式中埋點來統計使用者的點選行為。自定義事件目前包括“計數事件”和“計算事件”。使用自定義事件功能請先登陸友盟+官網,在“統計分析->設定->事件”(子賬戶由於許可權限制可能無法看到“設定”選項,請聯絡主帳號開通許可權。)頁面中新增相應的事件id,然後伺服器才會對相應的事件請求進行處理。

// 使用計數事件需要在後臺新增事件時選擇“計數事件”。例:統計微博轉發次數
// 計數事件1:統計發生次數(只有 eventId 一個引數時)
var umAnalytics = api.require('umAnalytics');
        umAnalytics.onEvent({
             eventId: 'Forward',
        },function(ret, err){
             if(ret.status){
                   alert(JSON.stringify(ret));
             }else{
                   alert(JSON.stringify(err));
             }
        });

   // 計數事件2:統計點選行為各屬性被觸發的次數(有 eventId、attributes 兩個引數時)
   // 例:統計購買商品型別為book,數量為3本
    var umAnalytics = api.require('umAnalytics');
        umAnalytics.onEvent({
             eventId: 'purchase',
             attributes: {
                    type: 'book',
                    quantity: '3'
             }
        },function(ret, err){
             if(ret.status){
                   alert(JSON.stringify(ret));
             }else{
                   alert(JSON.stringify(err));
             }
        });

    // 計算事件:使用計算事件需要在後臺新增事件時選擇“計算事件”(字串型);統計數值型變數的值的分佈(有 eventId、attributes、 counter 三個引數時)
    //示例:購買《Swift Fundamentals》這本書,花了110元
    var umAnalytics = api.require('umAnalytics');
        umAnalytics.onEvent({
             eventId: 'pay',
             attributes: {
                    book: '《Swift Fundamentals》'
             },
             counter: 110,
        },function(ret, err){
             if(ret.status){
                   alert(JSON.stringify(ret));
             }else{
                   alert(JSON.stringify(err));
             }
        });

自定義頁面需要呼叫onPageStart 和 onPageEnd 方法,而且必須成對使用,其中onPageStart方法不會隨頁面開啟自動呼叫,一定要在頁面的初始化中寫入。onPageEnd方法不會隨頁面關閉自動呼叫,需要寫在關閉頁面的api.closeWin()或api.closeFrame()方法前有效。

具體示例程式碼如下:

var umAnalytics = api.require('umAnalytics');
umAnalytics.onPageStart({
    pageName: '頁面名稱',
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

var umAnalytics = api.require('umAnalytics');
umAnalytics.onPageEnd({
    pageName: '頁面名稱',
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

友盟在統計使用者時以裝置為主,如果需要統計應用自身的賬號,可以使用登入介面profileSignInWithPUID和退出profileSignOff介面,程式碼如下:

var umAnalytics = api.require('umAnalytics');
        umAnalytics.profileSignInWithPUID({
            userID:'000593',
            provider:"大通燃氣"
        },function(ret,err){
             if(ret){
              alert(JSON.stringify(ret));
             }else{
             alert(JSON.stringify(err));

             }
        });

var umAnalytics = api.require('umAnalytics');
        umAnalytics.profileSignOff(function(ret){
            if(ret){
        alert(JSON.stringify(ret));
            }
        });

更多方法和細節請參考,模組文件https://docs.apicloud.com/Client-API/Open-SDK/umAnalytics