1. 程式人生 > >友盟統計工具使用詳解

友盟統計工具使用詳解

通過上一篇的講解,相信大家對統計工具都有了一定的認識,下面我們來看看具體是怎樣實現友盟資料統計的吧。
    一、資料統計
    1、獲取AppKey
    首先,登陸友盟官網,在我的產品頁面新增新應用,然後獲取到Appkey,將它新增到AndroidManifest.xml檔案中去。注意新增許可權:
  
 <manifest……>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  <!-- 檢測網路狀態 -->  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />     <!-- 獲取mac地址作為使用者的備用唯一標識 -->  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />      <!-- 獲取使用者手機的IMEI,用來唯一的標識使用者。 -->  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 快取資源優先存入SDcard -->  
    <uses-permission android:name="android.permission.INTERNET" />    <!-- 允許應用程式聯網,以便向我們的伺服器端傳送資料。 -->  
    <application ……>

    <meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"></meta-data><!--  YOUR_APP_KEY 替換為您在友盟後臺申請的應用Appkey -->
    <meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/><!-- Channel ID 替換為您應用的推廣渠道名稱。 -->
    </application>    
    </manifest>
    如不想在manifest裡配置友盟的appkey,可在Activity中配置:只需在程式啟動時的Activity中呼叫此介面:AnalyticsConfig.setAppkey(String appkey)
 如不想在manifest裡配置友盟的channel,可在Activity中配置:只需在程式啟動時的Activity中呼叫此介面:AnalyticsConfig.setChannel(String channel)
 渠道命名可以使用20位以內的英文或數字(不建議使用中文命名)。
 
    2、下載並整合SDK 
   在這個網址中下載:  http://dev.umeng.com/analytics/android/sdk-download,然後解壓
   將libs中的jar包 build path 到你自己的專案中去( 方法:右擊工程- properties - Java Build Path - Libraries - add external JAR選擇jar所在路徑)
   如果 ADT版本超過17,直接複製到libs包下,重新整理一下即可
    
    3、session統計和頁面的統計
   (1)MobclickAgent.onResume() 和MobclickAgent.onPause() 方法是用來統計應用時長的(也就是Session時長,當然還包括一些其他功能)
   (2)MobclickAgent.onPageStart() 和 MobclickAgent.onPageEnd() 方法是用來統計頁面跳轉的
    一、Session 統計
    
   在每個Activity的onResume方法中呼叫 MobclickAgent.onResume(Context), onPause方法中呼叫 MobclickAgent.onPause(Context),session統計就完成了。
   
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}

注意 如果您的Activity之間有繼承或者控制關係請不要同時在父和子Activity中重複新增onPause和onResume方法,否則會造成重複統計(eg.使用TabHost、TabActivity、ActivityGroup時)。

    二、頁面統計
    
   在僅有Activity的程式中,SDK 自動幫助開發者呼叫了 (2) 中的方法,並把Activity 類名作為頁面名稱統計。

   在包含fragment的程式中我們希望統計更詳細的頁面,所以需要自己呼叫方法做更詳細的統計。首先,需要在程式入口處,呼叫 MobclickAgent.openActivityDurationTrack(false) 禁止預設的頁面統計方式,這樣將不會再自動統計Activity。

然後需要做兩步整合:
1. 使用 onResume 和 onPause 方法統計時長, 這和基本統計中的情況一樣(針對Activity) 
2. 使用 onPageStart 和 onPageEnd 方法統計頁面(針對頁面,頁面可能是Activity 也可能是Fragment或View)
對於一些典型,比如頁面是直接放在Activity裡面的,統計程式碼大約是這樣:
public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("SplashScreen"); //統計頁面,SplashScreen是Activity的類名
    MobclickAgent.onResume(this);          //統計時長
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("SplashScreen"); // 保證 onPageEnd 在onPause 之前呼叫,因為 onPause 中會儲存資訊 
    MobclickAgent.onPause(this);
}

  在 FragmentActivity 中統計時長:

public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);       //統計時長
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
}
  對於Fragement和 View統計頁面,可以這樣寫:
  
 public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("SplashScreen"); //統計頁面,SplashScreen是類名
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("SplashScreen"); 
}

要注意的是這些方法的呼叫,需要保證線性不交叉,每個 start 都有一個 end 配對
    
    4、傳送策略
    傳送策略定義了使用者由統計分析SDK產生的資料傳送回友盟伺服器的頻率。預設:下次啟動時傳送上次的資料,您需要在程式的入口 Activity 中新增
     MobclickAgent.updateOnlineConfig( mContext );
     MobclickAgent.setDebugMode(false);
     
    到此,整合SDK完成,小夥伴們也來試試吧……