您的位置:首页 > 其它

友盟统计工具使用详解

2014-12-03 17:27 211 查看
通过上一篇的讲解,相信大家对统计工具都有了一定的认识,下面我们来看看具体是怎样实现友盟数据统计的吧。

    一、数据统计

    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完成,小伙伴们也来试试吧……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息