Android友盟統計的集成與使用

前言友盟移動應用統計幫助移動應用開發商統計和分析流量來源、內容使用、用戶屬性和行爲數據,以便開發商利用數據進行產品、運營、推廣策略的決策。

一、Android Studio集成友盟統計

app上線後,一般公司都希望跟蹤app在市場上的使用情況。包括新增用戶、活躍用戶、渠道信息、錯誤信息等,還有例如商城類的app,需要跟蹤用戶最喜歡瀏覽哪種類型的店鋪或商品。這些都可以通過集成友盟統計來輕鬆實現。

1、獲取Appkey

集成友盟SDK之前,首先需要到友盟官網註冊並且添加新應用,獲取Appkey(一般公司項目不需要自己申請賬號,跟項目經理要即可)。每個應用對應的Appkey是唯一的,如下:

2、添加依賴自動集成

通過在Android Studio工程build.gradle配置腳本中添加maven線上依賴,導入最新版本組件化統計SDK。

a>在工程build.gradle配置腳本中buildscript和allprojects段中添加【友盟+】sdk 新maven倉庫地址,如下面兩黑圖:

maven { url 'https://dl.bintray.com/umsdk/release' }

b>在app的builde.gradle中添加依賴

/*友盟統計需要的最新版本組件化基礎庫和統計SDK*/
compile  'com.umeng.umsdk:analytics:8.0.0'
compile  'com.umeng.umsdk:common:2.0.0'

在Android Studio 3.1及以上版本開發環境下,指定引用最新版本依賴寫法”latest.integration”可能導致下載庫超時,此時需要指定具體版本號。

3、在AndroidManifest.xml中添加權限、配置Appkey與渠道(Channel)

a>添加權限

<!--友盟統計所需權限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

b>配置Appkey

    <!--value的值填寫你在友盟後臺申請的應用Appkey-->
    <meta-data android:value="5ac6e5a2b27b0a7200000082" android:name="UMENG_APPKEY"/>

c>配置渠道
由於一般會有多個渠道,所以這裏的渠道名稱不能寫死,應該設置成動態的,如下:

   <!--value的值填寫渠道名稱,例如yingyongbao。這裏設置動態渠道名稱變量-->
    <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>

在app的builde.gradle中配置需要的渠道(這裏只測試統計寶),對應上面的渠道名稱變量。

/*配置渠道*/
productFlavors {
    tongjibao{
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "tongjibao"]
    }
}

最終結果:

完整AndroidManifest.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mychina.com.androidtongji_youmeng">
<!--友盟統計所需權限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!--value的值填寫你在友盟後臺申請的應用Appkey-->
    <meta-data android:value="5ac6e5a2b27b0a7200000082" android:name="UMENG_APPKEY"/>
    <!--value的值填寫渠道名稱,例如yingyongbao。這裏設置動態渠道變量-->
    <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>
</application>

</manifest>

完整app的builde.gradle如下:

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
    applicationId "mychina.com.androidtongji_youmeng"
    minSdkVersion 15
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
/*配置渠道*/
productFlavors {
    tongjibao {
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "tongjibao"]
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
testCompile 'junit:junit:4.12'

/*友盟統計需要的最新版本組件化基礎庫和統計SDK*/
compile 'com.umeng.sdk:common:latest.integration'
compile 'com.umeng.sdk:analytics:latest.integration'

}

4、初始化友盟統計組件的信息

在項目工程的自定義application中的onCreate方法中添加以下初始化方法:

public class MyApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();
    /**
     * 初始化common庫
     * 參數1:上下文,必須的參數,不能爲空
     * 參數2:友盟 app key,非必須參數,如果Manifest文件中已配置app key,該參數可以傳空,則使用Manifest中配置的app key,否則該參數必須傳入
     * 參數3:友盟 channel,非必須參數,如果Manifest文件中已配置channel,該參數可以傳空,則使用Manifest中配置的channel,否則該參數必須傳入,channel命名請詳見channel渠道命名規範
     * 參數4:設備類型,必須參數,傳參數爲UMConfigure.DEVICE_TYPE_PHONE則表示手機;傳參數爲UMConfigure.DEVICE_TYPE_BOX則表示盒子;默認爲手機
     * 參數5:Push推送業務的secret,需要集成Push功能時必須傳入Push的secret,否則傳空
     */
    //如果AndroidManifest.xml清單配置中沒有設置appkey和channel,則可以在這裏設置
    //        UMConfigure.init(this, "58edcfeb310c93091c000be2", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "1fe6a20054bcef865eeb0991ee84525b");
    UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE,"");
}
}

通過上面的步驟,友盟統計就已經集成好了,下面來看看它各種統計的使用。

 

二、簡單幾行代碼使用友盟統計

Session統計

即啓動數據的統計(包括新增用戶、活躍用戶、啓動次數、使用時長等基本數據)

a、需要在每個Activity的onResume方法中調用 MobclickAgent.onResume(Context),
onPause方法中調用 MobclickAgent.onPause(Context),如下:

 protected void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);
}

protected void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
}

確保在所有的Activity中都調用 MobclickAgent.onResume() 和onPause()方法。

如果Activity之間有繼承或者控制關係請不要同時在父和子Activity中重複添加nPause和nResume方法,否則會造成重複統計。例如在BaseActivity中添加過,則它的子類就不需要添加了。

當應用在後臺運行超過30秒(默認)再回到前端,將被認爲是兩個獨立的session(啓動),例如用戶回到home,或進入其他程序,經過一段時間後再返回之前的應用。可通過接口:setSessionContinueMillis(long interval) 來自定義這個間隔(參數單位爲毫秒)。

如果開發者調用kill或者exit之類的方法殺死進程,請務必在此之前調用onKillProcess(Context context)方法,用來保存統計數據。

b、安裝app啓動後。在友盟後臺就可以看到統計的數據了。如下:

新增用戶、啓動次數、日活等數據:

我目前就用了這個Session統計,主要是想看一下自己的APP的新增用戶和活躍用戶。

自定義事件統計

自定義事件可以實現在應用程序中埋點來統計用戶的點擊行爲。例如我們的應用是商城類的,就需要統計用戶是喜歡進入“nike”店鋪,還是“new banlance"店鋪。自定義事件目前包括"計數事件"和"計算事件"。

錯誤統計

錯誤分析是友盟爲移動開發者提供的Crash收集和分析工具,幫助開發者監測App在移動設備上的運行狀況,及時發現並解決錯誤,提升App的穩定性。

其他統計

上面三個統計是比較常用的統計,還有很多統計,例如賬號統計、頁面統計等就不一一列舉了。有需求的可以參考友盟用戶統計集成文檔

 

參考鏈接:5分鐘實現Android友盟統計的集成與使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章