友盟统计分析SDK集成

1.集成准备

1.1 获得Appkey

集成友盟SDK之前,您首先需要到友盟官网 注册并且添加新应用,获得Appkey

1.2 下载SDK

下载统计SDK umeng-sdk-analytics.zip并解压缩
若您同时使用自动更新或用户反馈SDK,请下载时同时选择多个服务,分开下载有可能出现资源冲突问题。同时下载多个SDK,解压后对应多个jar包,但是共用同一份res资源文件,如下图所示:

1.3 导入SDK

将下载包中的libs 文件夹合并到本地工程libs子目录下;在Eclipse中右键工程根目录,选择Properties -> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。

2.基本功能集成

2.1 配置manifest

;

manifest的配置主要包括添加权限,填写Appkey和填写渠道id三部分,代码示例如下:

<manifest……>
<uses-sdk android:minSdkVersion="4"></uses-sdk>
<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 ……>
……
<activity ……/>
<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"></meta-data>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
</application>    
</manifest>

2.1.1 权限说明

权限 用途
ACCESS_NETWORK_STATE(必须) 检测联网方式,区分用户设备使用的是2G、3G或是WiFi
READ_PHONE_STATE(必须) 获取用户设备的IMEI,通过IMEI和mac来唯一的标识用户。
ACCESS_WIFI_STATE(必须) 获取用户设备的mac地址,在平板设备上,无法通过imei标示设备,我们会将mac地址作为用户的唯一标识
INTERNET(必须) 允许应用程序联网,以便向我们的服务器端发送数据。

2.1.2 appkey填写

<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"></meta-data> 中的YOUR_APP_KEY 替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 统计分析->设置->应用信息 页面查看),其他部分均不需改动。

如不想在manifest里配置友盟的appkey,可在Activity中配置:只需在程序启动时的Activity中调用此接口:AnalyticsConfig.setAppkey(String appkey)

2.1.3 channel填写

<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/> 中的Channel ID 替换为您应用的推广渠道名称。
例如在豌豆荚渠道推广此包,代码示例: <meta-data android:value="Wandoujia" android:name="UMENG_CHANNEL"/>

如不想在manifest里配置友盟的channel,可在Activity中配置:只需在程序启动时的Activity中调用此接口:AnalyticsConfig.setChannel(String channel)

您可以使用20位以内的英文或数字为渠道命名,在您查看数据时,渠道会作为一个数据细分的维度。

2.1.4 version标识

以SDk打包时的VersionName作为应用程序的版本标识。

2.2 session的统计

正确集成如下代码,才能够保证获取正确的新增用户、活跃用户、启动次数、使用时长等基本数据。

在每个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);
}
  • 确保在所有的Activity中都调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法,这两个调用将不会阻塞应用程序的主线程,也不会影响应用程序的性能。
  • 如果您的Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计(eg.使用TabHost、TabActivity、ActivityGroup时)。
  • 当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:MobclickAgent.setSessionContinueMillis(long interval) 来自定义这个间隔(参数单位为毫秒)。

2.3 页面的统计

页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。
页面访问路径的数据为抽样统计(抽样比例为所有log的3%),数据量达到一定程度才会在后台展示。若您希望查看测试数据,请使用集成测试服务 ,了解更多集成测试请点击这里 

2.3.1 只由Activity构成的应用

如果您已经完成2.3步骤之前的代码添加,那么SDK已默认统计了每个Activity的跳转路径。页面统计不需要再添加其他代码。

2.3.2 包含Activity、Fragment或View的应用

统计程序中包含Fragment的情况比较复杂,首先要明确一些概念。

  1. MobclickAgent.onResume() 和MobclickAgent.onPause() 方法是用来统计应用时长的(也就是Session时长,当然还包括一些其他功能)
  2. MobclickAgent.onPageStart() 和 MobclickAgent.onPageEnd() 方法是用来统计页面跳转的

在仅有Activity的程序中,SDK 自动帮助开发者调用了 2. 中的方法,并把Activity 类名作为页面名称统计。但是在包含fragment的程序中我们希望统计更详细的页面,所以需要自己调用方法做更详细的统计。首先,需要在程序入口处,调用 MobclickAgent.openActivityDurationTrack(false) 禁止默认的页面统计方式,这样将不会再自动统计Activity。

然后需要做两步集成:
1. 使用 onResume 和 onPause 方法统计时长, 这和基本统计中的情况一样(针对Activity) 
2. 使用 onPageStart 和 onPageEnd 方法统计页面(针对页面,页面可能是Activity 也可能是FragmentView)

对于一些典型,比如页面是直接放在Activity里面的,统计代码大约是这样:

public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("SplashScreen"); //统计页面
    MobclickAgent.onResume(this);          //统计时长
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("SplashScreen"); // 保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息 
    MobclickAgent.onPause(this);
}

如果页面是使用FragmentActivity + Fragment实现的,需要在 FragmentActivity 中统计时长:

public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);       //统计时长
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
}

并在其包含的 Fragment 中统计页面:

public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("MainScreen"); //统计页面
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("MainScreen"); 
}

需要注意的是这些方法的调用,需要保证线性不交叉,每个 start 都有一个 end 配对,如下:

onPageStart ->onPageEnd-> onPageStart -> onPageEnd -> onPageStart ->onPageEnd

这样才能保证每个页面统计的正确,关于页面统计API的最佳实践说明见这里 

2.4发送策略

发送策略定义了用户由统计分析SDK产生的数据发送回友盟服务器的频率。

您需要在程序的入口 Activity 中添加

MobclickAgent.updateOnlineConfig( mContext );

Android平台的数据发送策略有两种方式:
* 启动时发送:APP启动时发送当次启动数据和上次的使用时长等缓存数据,当次使用过程中产生的自定义事件数据缓存在客户端,下次启动时发送
* 按间隔发送:按特定间隔发送数据,间隔时长介于90秒与1天之间。您可以在后台自定义发送间隔。

在没有取到在线配置的发送策略的情况下,会使用默认的发送策略:启动时发送。
你可以在友盟后台“设置->发送策略”页面自定义数据发送的频率。

注意:打开调试模式(debug)后,数据实时发送,不受发送策略控制

到此,基本统计功能集成已经完成。

3.测试与调试

3.1 确认如下内容

  • 确认已经将整个res资源文件夹合并到了工程中
  • 确认所需的权限都已经添加:INTERNET, READPHONESTATE
  • 确认APPKEY已经正确的写入Androidmanifest.xml
  • 确认所有的Activity中都调用了onResume和onPause方法
  • 确认测试手机(或者模拟器)已成功连入网络
  • 集成中可能出现的问题,参见这里

3.2 使用集成测试服务(推荐)

集成测试是通过收集和展示已注册测试设备发送的日志,来检验SDK集成有效性和完整性的一个服务。 所有由注册设备发送的应用日志将实时地进行展示,您可以方便地查看包括应用版本、渠道名称、自定义事件、页面访问情况等数据,提升集成与调试的工作效率。

所有测试数据不会进入应用正式的统计后台,而只是展示在测试的数据报表中,您不必再担心因为测试而导致的数据污染问题,让数据更加真实有效的反应用户使用情况。

集成测试服务详细说明请参见这里 ,了解更多集成测试请点击这里 

3.3 使用普通测试流程

如果您不使用集成测试服务来测试数据,那您可以通过普通测试流程查看测试数据。
使用普通测试流程,您的测试数据会与用户的真实使用数据同时处理,从而导致数据污染。

使用普通测试流程,请先在程序入口添加以下代码打开调试模式:

MobclickAgent.setDebugMode( true );

打开调试模式后,您可以在logcat中查看您的数据是否成功发送到友盟服务器,以及集成过程中的出错原因等,友盟相关log的tag是MobclickAgent。

4.技术支持

QQ:800083942 (添加好友时请选择“找服务” )
Email:support@umeng.com

为了能够尽快响应您的反馈,请提供您的appkey及logcat中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。


来源:http://dev.umeng.com/analytics/android/quick-start

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值