需求:统计指定页面的用户点击情况
一,注册账号,
二,创建产品,拿到appkey
三,集成SDK
1,添加依赖
1.1在工程gralde下添加mavenCentral仓库
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
1.2,在app的gradle下添加依赖
compile 'com.umeng.sdk:common:latest.integration'
compile 'com.umeng.sdk:analytics:latest.integration'
2,添加权限
<uses-sdk android:minSdkVersion="8"></uses-sdk>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
3,在Application里面初始化
UMConfigure.init(this, AppKey, Channel, UMConfigure.DEVICE_TYPE_PHONE,"");
//UMConfigure.setLogEnabled(true);//设置组件化的Log开关
UMConfigure.setEncryptEnabled(true);//设置日志加密
MobclickAgent.setScenarioType(this, MobclickAgent.EScenarioType.E_UM_NORMAL);//普通统计场景
MobclickAgent.setDebugMode( true );// 打开统计SDK测试模式
4,在App中每个Activity的onResume方法中调用 MobclickAgent.onResume(context),onPause方法中调用 MobclickAgent.onPause(context)。
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);//在这里调用
}
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);//在这里调用
}
注意:
4.1,确保在所有的Activity中都调用 MobclickAgent.onResume() 和onPause()方法,这两个调用不会阻塞应用程序的主线程,也不会影响应用程序的性能。
4.2,如果您的Activity之间有继承或者控制关系,请不要同时在父和子Activity中重复添加nPause和nResume方法,否则会造成重复统计,导致启动次数异常增高。(例如:使用TabHost、TabActivity、ActivityGroup时)。
4.3,当应用在后台运行超过30秒(默认)再回到前台,将被认为是两次独立的Session(启动),例如:用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。即被认为是两个独立的Session。
5,如果只想统计某几个页面
5.1,在Application中禁用系统的
MobclickAgent.openActivityDurationTrack(false);//禁用系统的统计页面
5.2,在你想要统计的页面统计
public void onResume() {
super.onResume();
MobclickAgent.onPageStart("MainActivity");
}
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd("MainActivity");
}
6,自定义事件
分为计数事件和计算事件
6.1计数事件:
记录点击次数,或者进入某个activity的次数
A,在友盟后台添加事件,
点击功能使用---自定义事件--设置--添加事件,事件Id要与代码中的eventId一直
MobclickAgent.onEvent(getActivity(),"MerchantActivity");
MobclickAgent.onEvent(getActivity(),"order");//计数事件
6.2,计算事件
用于统计一个数值类型的连续变量(该变量必须为整数),用户每次触发的数值的分布情况,如音乐播放时间、每次付款金额等,
A,在后台添加计算事件的步骤和计数事件类似
B,代码
int duration = 12000; //开发者需要自己计算音乐播放时长
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, duration);
7,当上一个onResume方法与上一个Activity的onPause方法相差30秒,标志新Session的开始;当一个onPause方法发生后30秒内没有再触发任何一个Activity的onResume方法,标志该Session结束,友盟通过通过30秒规则来判断是否是Session的终止。
8,集成测试,
8.1,在application初始化调试
MobclickAgent.setDebugMode( true );// 打开统计SDK测试模式
8.2,添加测试设备信息
友盟文档地址:点击打开链接https://developer.umeng.com/docs/66632/detail/66889