統計 可以很友善的給我們的程式 帶來很多的參考;可以直覺的了解我們的産品在市場的使用情況:下面簡單談談 友盟在項目中的使用:簡單、快速。号稱三分鐘快速內建完成基本功能。
友盟統計:
http://www.umeng.com/
友盟官方內建文檔::
http://dev.umeng.com/analytics/android-doc/integration/
簡單內建步驟:(環境:AndoridStuido)
#統計基礎
##1:申請Key
考慮申請Key的操作簡單,這裡我就不多說了。
##2:下載下傳SDK,配置項目依賴庫
配置 bulid.gradle
A:直接配置:不需要添加到lib包中:
在Gradle依賴中添加:
dependencies {
compile 'com.umeng.analytics:analytics:latest.integration'
}
如果無法正常內建請添加如下代碼 :
allprojects {
repositories {
mavenCentral()
}
}
B:在lib中配置:
在下載下傳的sdk中找到(目前我下載下傳的是):umeng-analytics-v6.0.9.jar copy到lib下;
然後選中架包:右鍵–>Add As Library… 即可。
##3:配置Key: Manifest.xml檔案中配置:
添權重限 +配置Key
<manifest……>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application ……>
……
<activity ……/>
<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
</application>
</manifest>
注意:友盟的配置在application标簽中
YOUR_APP_KEY:對應的步驟1中個人申請的:AppKey (唯一的:每一個應用對應一個AppKey)
Channel ID:對應的友盟的管道;例如:UMENG_CHANNEL 或者wandoujia或者360shouji 等;
說明(可以不用關注):
A:一個App目前隻支援一個AppKey:也就是一個應用隻能使用一個友盟統計。
B:這個是在Manifest.xml中配置友盟的AppKey;
C:這個“READ_PHONE_STATE”權限需要在程式中判斷是否開啟;沒有開啟需要提示開啟。
READ_PHONE_STATE:是友盟用來擷取使用者裝置的IMEI,通過IMEI和mac來唯一的辨別使用者,這個實作我們不用管;如果個人想擷取手機的唯一辨別請移步:http://blog.csdn.net/u013472738/article/details/72851227 最後一個内容檢視。
##4:項目代碼配置:
在每個Activity中的方法onResume() 和onPause()方法中 添加:
//TJ:添加友盟
@Override
protected void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
注意A: 如果您的Activity之間有繼承或者控制關系請不要同時在父和子Activity中重複添加onPause和onResume方法,否則會造成重複統計,導緻啟動次數異常增高。
如:activityA extends activityMain(){…}
那麼隻需要在:activityMain的Activity 中添加 統計 即可;activityA的Activity可以不用添加。
注意B:
如果開發者調用Process.kill或者System.exit之類的方法殺死程序,請務必在此之前調用MobclickAgent.onKillProcess(Context context)方法,用來儲存統計資料。
注意C:
有唯一性:單個手機ID唯一:同一個手機多次安裝/使用;僅記錄了一次安裝/使用。
------------完成以上四步基本操作 即可實作基本的新增、活躍、啟動、留存等資料統計。------------
#基礎擴充:
##5:配置Key: 代碼中配置AppKey:
需要在程式入口(如:Application全局類)中配置可以使用:
MobclickAgent. startWithConfigure(UMAnalyticsConfig config) ;
方法說明:
UMAnalyticsConfig(Context context, String appkey, String channelId)
UMAnalyticsConfig(Context context, String appkey, String channelId, EScenarioType eType)
UMAnalyticsConfig(Context context, String appkey, String channelId, EScenarioType eType,Boolean isCrashEnable)
構造意義:
String appkey:官方申請的Appkey
String channel: 管道号
EScenarioType eType: 場景模式,包含統計、遊戲、統計盒子、遊戲盒子
Boolean isCrashEnable: 可選初始化. 是否開啟crash模式
例如:
在Application全局類的OnCreate()方法中添加:
MobclickAgent. startWithConfigure(new MobclickAgent.UMAnalyticsConfig(this,"Appkey","Wandoujia") );
##6:計數事件
在友盟的App應用中的“概況”中有很多供我們使用的輔助的統計功能:
下面簡單舉例:自定義事件(計數、計算事件):計數
圖1:添加事件說明:
圖2:添加成功:
項目中點選事件計數友盟統計添加代碼:
A:簡單的一個ID對應一個事件:
MobclickAgent.onEvent(mContext, “TestID”);// 事件ID
B:一個ID對應多個事件:
Map<String, String> map_ekv0 = new HashMap<String, String>();
map_ekv0.put(“key1” , “value1”);//TJ:這裡鍵和值1。
map_ekv0.put(“key2” , “value2”);//TJ:這裡鍵和值2。
MobclickAgent.onEvent(mContext, “TestID”, map_ekv0);//TJ:注意:Key/Value
這樣在友盟一個ID:TestID 就對應兩個鍵值對了;代碼生效後:在事件:詳情–>檢視。
詳細參考:友盟SDK中的類:AnalyticsHome.java
貼出簡單代碼:
public class AnalyticsHome extends Activity {
private Context mContext;
private final String mPageName = "AnalyticsHome";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.umeng_example_analytics);
mContext = this;
MobclickAgent.setDebugMode(true);
// SDK在統計Fragment時,需要關閉Activity自帶的頁面統計,
// 然後在每個頁面中重新內建頁面統計的代碼(包括調用了 onResume 和 onPause 的Activity)。
MobclickAgent.openActivityDurationTrack(false);
// MobclickAgent.setAutoLocation(true);
// MobclickAgent.setSessionContinueMillis(1000);
// MobclickAgent.startWithConfigure(
// new UMAnalyticsConfig(mContext, "4f83c5d852701564c0000011", "Umeng",
// EScenarioType.E_UM_NORMAL));
MobclickAgent.setScenarioType(mContext, EScenarioType.E_UM_NORMAL);
}
@Override
public void onResume() {
super.onResume();
MobclickAgent.onPageStart(mPageName);
MobclickAgent.onResume(mContext);
}
@Override
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd(mPageName);
MobclickAgent.onPause(mContext);
}
/**
* android:onClick="onButtonClick"
*
* @param view
*/
public void onButtonClick(View view) {
int id = view.getId();
switch (id) {
case R.id.umeng_example_analytics_event_cc:
List<String> keyPath = new ArrayList<String>();
keyPath.add("one");
keyPath.add("two");
keyPath.add("tree");
MobclickAgent.onEvent(mContext, keyPath, 20, "label");
break;
case R.id.umeng_example_analytics_event:
MobclickAgent.onEvent(mContext, "click");
MobclickAgent.onEvent(mContext, "click", "button");
break;
case R.id.umeng_example_analytics_ekv:
Map<String, String> map_ekv = new HashMap<String, String>();
map_ekv.put("type", "popular");
map_ekv.put("artist", "JJLin");
MobclickAgent.onEvent(mContext, "music", map_ekv);
break;
case R.id.umeng_example_analytics_duration:
Map<String, String> map_value = new HashMap<String, String>();
map_value.put("type", "popular");
map_value.put("artist", "JJLin");
MobclickAgent.onEventValue(this, "music", map_value, 12000);
break;
}
}
說明
-
添加管道隻能在mainfest裡設定?
當然不是,除了在mainfest通過來設定管道ID,你還可以在Activity中配置,隻需在程式啟動時的Activity中調用此接口:AnalyticsConfig.setChannel(String channel)就可以實作。
小建議:可以使用20位以内的英文或數字為管道命名(不建議使用中文命名)
-
添加了新的管道,安裝包已經發出去了,這個管道卻沒有顯示
這個問題真的不是我們的工具有問題,是你對友盟的規則還不了解啊。在添加了新的管道,友盟背景在收到了該管道包的啟動日志,經過解析之後,才會出現該管道的資訊。是以,如果你的新管道沒有顯示,那不是友盟産品的問題,因為還沒有人安裝這個管道包并啟動呢。怎麼解決呢?你可以使用一台新的裝置去安裝這個新的管道包,啟動之後,友盟背景就會出現這個管道啦。
注意:一定要用新的裝置,因為每台裝置僅記錄首次安裝激活的管道,如果該裝置再次安裝其他管道包,則資料仍會被記錄在初始的安裝管道上。 是以在測試不同的管道時,請使用不同的裝置來分别測試。另外,內建測試的資料不會出現在正常資料裡,是以新裝置也不能是測試裝置。
OK後續會持續完善學習:歡迎指正…
A:flurry統計 : 個人認為國際上相對好用的統計,O(∩_∩)O哈哈~
B:友盟統計: 國内比較強大且好用的統計。
C:極光推送: 主要推送功能比較完善簡單。
D:個推: 一個統計。
E:51.la: 針對IP(web頁面)統計的一個統計:添加前需要頁面支援。
F:CNZZ : 很早和友盟合并了;導緻友盟叫:友盟+;不錯O(∩_∩)O哈哈~
等…