umeng移动端数据统计统计怎么不统计测试机

> 统计分析 > 统计分析Android文档 > 集成文档
相关视频教程,请前往。
注:必要的集成步骤
1、权限和Appkey的集成
2、session的调用
完成以上两点基本操作可以实现基本的新增、活跃、启动、留存等数据。
获得Appkey
集成友盟SDK之前,您首先需要到注册并且添加新应用,获得Appkey
特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于个人离职带来的问题,建议使用的账号形式 :umeng@企业域名、apps@企业域名、dev@企业域名。
Q:应用的安卓版和IOS版能否共用一个appkey
A:不同平台的应用禁止使用相同的Appkey,需要分开注册。
Q:注册应用时,提示“应用名称已存在”
A:友盟后台的应用名与实际应用名和包名无关,建议命名为“应用名+平台(IOS/Android)”。
并解压缩。
导入SDK有以下两种方法,选择其中一种即可
新版SDK支持Android 6.x和Android7.x。
下载SDK并集成
将下载包中的libs 文件夹合并到本地工程libs子目录下;在Eclipse中右键工程根目录,选择Properties -& Java Build Path -& Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。(ADT17及以上不需要手动导入)
使用Android Studio导入SDK
Android Studio是谷歌推出了新的Android开发环境,友盟支持AndroidStudio的Gradle配置,如果您使用Android Studio开发,请按照如下的方法操作:
在Gradle依赖中添加:
dependencies {
compile 'com.umeng.analytics:analytics:latest.integration'
如果无法正常集成请添加如下代码 :
allprojects {
repositories {
mavenCentral()
基本功能集成
新增场景类型设置接口
场景类型设置接口。
MobclickAgent.setScenarioType(Context context, EScenarioType etype)
etype是官方场景,有如下场景:
EScenarioType. E_UM_NORMAL  普通统计场景类型
EScenarioType. E_UM_GAME
  游戏场景类型
EScenarioType. E_UM_ANALYTICS_OEM
统计盒子场景类型
EScenarioType. E_UM_GAME_OEM
  游戏盒子场景类型
这个包为包含阿里UTDID服务的补充包,如果需要请导入UTDID包
配置Appkey
XML配置Appkey
manifest的配置主要包括添加权限,以下权限缺一不可,填写Appkey和填写渠道id三部分,代码示例如下:
&manifest……&
&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.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&
andriod 6.0之后,设备信息部分获取有所变动,请参考官网:/training/permissions/requesting.html
小技巧:当xml中的targetSdkVersion=x(x&23)时候, 可以正常获取信息(相当于跳过了6.0权限检查)
ACCESS_NETWORK_STATE(必须)
检测联网方式,区分用户设备使用的是2G、3G或是WiFi
READ_PHONE_STATE(必须)
获取用户设备的IMEI,通过IMEI和mac来唯一的标识用户。
ACCESS_WIFI_STATE(必须)
获取用户设备的mac地址,在平板设备上,无法通过imei标示设备,我们会将mac地址作为用户的唯一标识
INTERNET(必须)
允许应用程序联网,以便向我们的服务器端发送数据。
填写appkey
将&meta-data android:value="YOUR_APP_KEY
" android:name="UMENG_APPKEY"&&/meta-data&
中的YOUR_APP_KEY 替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 统计分析-&设置-&应用信息 页面查看),其他部分均不需改动。
channel填写
将&meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/&
中的Channel ID 替换为您应用的推广渠道名称,channel id自定义。
例如在豌豆荚渠道推广此包,代码示例:
&meta-data android:value="Wandoujia" android:name="UMENG_CHANNEL"/&
渠道命名规范
1.可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。
2.首尾字符不可以为空格
3.不要使用纯数字作为渠道ID
4.最多256个字符
5."unknown" 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名
在您查看数据时,渠道会作为一个数据细分的维度。
非常重要:每台设备仅记录首次安装激活的渠道,如果该设备再次安装其他渠道包,则数据仍会被记录在初始的安装渠道上。 所以在测试不同的渠道时,请使用不同的设备来分别测试。也可使用集成测试功能进行测试,了解更多集成测试请
在代码中配置Appkey和Channel
如果希望在代码中配置Appkey、Channel、Token(Dplus)等信息,请在程序入口处调用如下方法:
MobclickAgent. startWithConfigure(UMAnalyticsConfig config)
UMAnalyticsConfig初始化参数类,提供多参数构造方式:
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模式
Q:如何添加渠道?
A:一个包中只能添加一个渠道,多个渠道需要打多个包。开发者新增渠道需要在工程manifest中或者activity中调用接口添加我们的渠道信息,友盟后台没有添加渠道的地方。您可以使用Gradle实现多渠道打包。。
Q:如何删除不需要的渠道
A:目前不支持删除渠道,但可以隐藏,请在
设置--渠道 里隐藏渠道
? 渠道统计使用中的问题请参见友盟开发者社区:
version标识
以SDk打包时的VersionName作为应用程序的版本标识。
Q:在版本分布中没有看到应用相应的版本
A:请查看设置--版本--已隐藏版本列表,是否隐藏了该版本。
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) 来自定义这个间隔(参数单位为毫秒)。
如果开发者调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。
? session统计的相关问题请参见友盟开发者社区:
至此,基本功能集成已经结束。
非常重要:必须调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法,才能够保证获取正确的新增用户、活跃用户、启动次数、使用时长等基本数据。
账号的统计
友盟在统计用户时以设备为标准,如果需要统计应用自身的账号(需使用5.6.1及以上版本SDK),请使用以下接口:
public static void onProfileSignIn(String ID) ;
public static void onProfileSignIn(String Provider, String ID) ;
ID:用户账号ID,长度小于64字节
Provider:账号来源。如果用户通过第三方账号登陆,可以调用此接口进行统计。支持自定义,不能以下划线"_"开头,使用大写字母和数字标识,长度小于32 字节; 如果是上市公司,建议使用股票代码。
public static void onProfileSignOff();
账号登出时需调用此接口,调用之后不再发送账号相关内容。
当用户使用自有账号登录时,可以这样统计:
MobclickAgent.onProfileSignIn("userID");
当用户使用第三方账号(如新浪微博)登录时,可以这样统计:
MobclickAgent.onProfileSignIn("WB","userID");
启动账号统计(通过网站启用账号统计)
集成账号统计功能后,请到我的产品-设置-应用信息,选择启动使用账号统计报表,如下图
如果您集成了新版SDK的账号接口,可以通过启动账号统计开关,来开启账号报表的展现。账号统计报表开关仅作用于报表的展现,不影响数据的计算。您可以根据实际的需要来启动或者暂停该功能。集成此功能的第二天才能在后台报表看见账号的数据。可在下图所示位置查看
页面的统计
页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。
页面访问路径的数据为全量统计。若您希望查看测试数据,请使用
,了解更多集成测试请
? 页面统计的常见问题参见友盟开发者社区:
只由Activity构成的应用
如果您已经完成2.3步骤之前的代码添加,那么SDK已默认统计了每个Activity的跳转路径。页面统计不需要再添加其他代码。
包含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. 使用 MobclickAgent.onResume 和 MobclickAgent.onPause 方法统计时长, 这和基本统计中的情况一样(针对Activity)
2. 使用 MobclickAgent.onPageStart 和 MobclickAgent.onPageEnd 方法统计页面(针对页面,页面可能是Activity 也可能是Fragment或View)
如果页面是直接由Activity实现的,统计代码大约是这样:
public void onResume() {
super.onResume();
MobclickAgent.onPageStart("SplashScreen"); //统计页面(仅有Activity的应用中SDK自动调用,不需要单独写。"SplashScreen"为页面名称,可自定义)
MobclickAgent.onResume(this);
//统计时长
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd("SplashScreen"); // (仅有Activity的应用中SDK自动调用,不需要单独写)保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息。"SplashScreen"为页面名称,可自定义
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"); //统计页面,"MainScreen"为页面名称,可自定义
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd("MainScreen");
注意:这些方法的调用,需要保证线性不交叉,每个 onResume 都对应一个 onPause ,每个 Start 都有一个 End 配对。这样才能保证每个页面统计的正确,关于页面统计API的最佳实践说明见 。
发送策略设定了用户产生的数据发送回友盟服务器的频率。
Android平台的数据发送策略有两种方式:
1. 启动时发送:新增、活跃、启动次数等数据在APP本次打开时即刻发送,使用时长、自定义事件、错误统计等在使用过程中产生的所有消息数据都在下次启动应用时发送。如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。
2. 按间隔发送:按特定间隔发送数据,间隔时长介于90秒与1天之间。新增、活跃、启动次数等数据在APP本次打开时即刻发送,使用时长、自定义事件、错误统计等在使用过程中产生的所有数据都按间隔发送,如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。
发送策略设置方法
您可以在后台 统计分析-&设置-&发送策略
页面自定义发送间隔。具体如下图:
点击发送策略之后,可以看到设置页面
(1)在没有获取到在线配置时,默认使用启动时发送的策略。
(2)在打开debug调试模式或者使用集成测试时,不受发送策略控制。
日志加密设置
您可以通过在程序入口处的
中调用如下代码来设置加密模式
/** 设置是否对日志信息进行加密, 默认false(不加密). */
AnalyticsConfig.enableEncrypt(boolean enable);//6.0.0版本以前MobclickAgent.enableEncrypt(boolean enable);//6.0.0版本及以后
如果enable为true,SDK会对日志进行加密。加密模式可以有效防止网络攻击,提高数据安全性。
如果enable为false,SDK将按照非加密的方式来传输日志。
如果您没有设置加密模式,SDK的加密模式为false(不加密)。
如果您的应用使用了混淆, 请添加
-keepclassmembers class * {
public &init& (org.json.JSONObject);
这是由于SDK中的部分代码使用反射来调用构造函数, 如果被混淆掉, 在运行时会提示"NoSuchMethod"错误。 另外,由于SDK需要引用导入工程的资源文件,通过了反射机制得到资源引用文件R.java,但是在开发者通过proguard等混淆/优化工具处理apk时,proguard可能会将R.java删除,如果遇到这个问题,请在proguard配置文件中添加keep命令如:
-keep public class [您的应用包名].R$*{
public static final int *;
把[您的应用包名] 替换成您自己的包名,如com.yourcompany.example。如果您使用5.0.0及以上版本的SDK,请添加如下命令:
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
自定义事件的统计
自定义事件可以实现在应用程序中埋点来统计用户的点击行为。自定义事件目前包括“计数事件”和“计算事件”,二者的区别以及详细说明请。
? 自定义事件使用中的问题请参见友盟开发者社区:
自定义事件字段说明
:自定义事件id
:自定义事件下的参数
:自定义事件参数下的参数值
使用自定义事件的依赖条件
使用自定义事件功能请先登陆 , 在 “统计分析-&设置-&事件” (子账户由于权限限制可能无法看到“设置”选项,请联系主帐号开通权限。)页面中添加相应的事件id(事件id可用英文或数字,不要使用中文和特殊字符且不能使用英文句号“.”您可以使用下划线“_”),然后服务器才会对相应的事件请求进行处理。
自定义事件的代码需要放在Activity里的onResume--onPause之间,请在友盟初始化之后调用事件,不支持在service中统计。
使用计数事件需要在后台添加事件时选择“计数事件”。
统计发生次数
在您希望跟踪的代码部分,调用如下方法:
MobclickAgent.onEvent(Context context, String eventId);
指当前的Activity
为当前统计的事件ID。
示例:统计微博应用中"转发"事件发生的次数,那么在转发的函数里调用
MobclickAgent.onEvent(mContext,"Forward");
统计点击行为各属性被触发的次数
考虑事件在不同属性上的取值,可以调用如下方法:
MobclickAgent.onEvent(Context context, String eventId, HashMap map);
map 为当前事件的属性和取值(Key-Value键值对)。
示例:统计电商应用中“购买”事件发生的次数,以及购买的商品类型及数量,那么在购买的函数里调用:
HashMap&String,String& map = new HashMap&String,String&();
map.put("type","book");
map.put("quantity","3");
MobclickAgent.onEvent(mContext, "purchase", map);
使用计算事件需要在后台添加事件时选择“计算事件”。
统计数值型变量的值的分布
统计一个数值类型的连续变量(该变量必须为整数),用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等,可以调用如下方法:
MobclickAgent.onEventValue(Context context, String id, Map&String,String& m, int du)
为当前事件的属性和取值
为当前事件的数值为当前事件的数值,取值范围是-2,147,483,648 到 +2,147,483,647 之间的有符号整数,即int 32类型,如果数据超出了该范围,会造成数据丢包,影响数据统计的准确性。
示例:统计一次音乐播放,包括音乐类型,作者和播放时长,可以在音乐播放结束后这么调用:
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);
上面方法在Android统计分析V5.2.2之后(&=)才提供,之前的版本可以通过下面的方式封装计算事件:
public static void onEvent(Context context, String id, HashMap&String,String& m, long value){
m.put("__ct__", String.valueOf(value));
MobclickAgent.onEvent(context, id, m);
注意:onEventBegin(...),onEventEnd(...)以及onEventDuration(...)后续不再支持,不建议使用。
- 如需统计使用时长,开发者需要自己上传时长数据(如示例中的duration所示),时长数据会在计算事件的数值型部分展示;
- 如果使用了onEventBegin(...),onEventEnd(...)以及onEventDuration(...)方法,时长数据会在计算事件的字符串型中显示。
如图:使用了onEventBegin(...),onEventEnd(...)以及onEventDuration(...)方法,时长数据会显示在【消息时长】选项中,为了兼容老用户,线上仍保留这个选项,此方法已不建议使用。
如图:开发者使用计算事件自己上传时长数据(如示例中的duration所示),时长数据会在计算事件的数值型部分展示。
统计点击次数及各属性触发次数
计算事件除能够统计数值型的参数外还具有计数事件的所有功能,。
在webview中统计自定义事件
webview(h5)统计请使用h5框架统计
Android统计SDK从V4.6版本开始内建错误统计,不需要开发者再手动集成。
SDK通过Thread.UncaughtExceptionHandler
捕获程序崩溃日志,并在程序下次启动时发送到服务器。
如不需要错误统计功能,可通过此方法关闭
MobclickAgent.setCatchUncaughtExceptions(false);
如果开发者自己捕获了错误,需要上传到友盟服务器可以调用下面方法:
public static void reportError(Context context, String error)
public static void reportError(Context context, Throwable e)
使用自定义错误,查看时请在错误列表页面选择【自定义错误】
测试与调试
确认如下内容
确认所需的权限都已经添加:INTERNET, READPHONESTATE
确认APPKEY已经正确的写入Androidmanifest.xml
确认所有的Activity中都调用了onResume和onPause方法
确认测试手机(或者模拟器)已成功连入网络
使用集成测试服务(推荐)
什么是集成测试?
集成测试是通过收集和展示已注册测试设备发送的日志,来检验SDK集成有效性和完整性的一个服务。 所有由注册设备发送的应用日志将实时地进行展示,您可以方便地查看包括应用版本、渠道名称、自定义事件、页面访问情况等数据,提升集成与调试的工作效率。
使用集成测试之后,所有测试数据不会进入应用正式的统计后台,只能在“管理--集成测试--实时日志”里查看,您不必再担心因为测试而导致的数据污染问题,让数据更加真实有效的反应用户使用情况。
如果您在后台创建应用时选择的平台是H5,集成测试无法展示数据,普通测试可显示数据。
使用集成测试模式请先在程序入口处调用如下代码,打开调试模式:
MobclickAgent.setDebugMode( true );
? 使用集成测试请点击。
使用普通测试流程
如果您不使用集成测试服务来测试数据,那您可以通过普通测试流程查看测试数据。
使用普通测试流程,您的测试数据会与用户的真实使用数据同时处理,从而导致数据污染。
使用普通测试流程,请先在程序入口添加以下代码打开调试模式:
MobclickAgent.setDebugMode( true );
打开调试模式后,您可以在logcat中查看您的数据是否成功发送到友盟服务器,以及集成过程中的出错原因等,友盟相关log的tag是MobclickAgent。
Q:集成测试与普通测试的区别
A:集成测试与普通测试两者都需要添加代码MobclickAgent.setDebugMode( true )
打开调试模式,但是集成测试需要添加测试设备,集成测试功能说明参见。集成测试隔离测试数据,普通的测试不区分测试数据与真实数据;集成测试的结果需在实时日志中查看,普通测试则是在友盟相关的log中查看。
联系客服:
?为了能够尽快响应您的反馈,请提供您的appkey及logcat中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。常见问题请阅读友盟论坛中。友盟错误日志统计没有数据的问题 - CSDN博客
友盟错误日志统计没有数据的问题
//开启debug模式,方便定位错误,具体错误检查方式可以查看
// /social/android/quick-integration的报错必看,正式发布,请关闭该模式
Config.DEBUG =
UMShareAPI.get(this);
MobclickAgent.setDebugMode(true);
MobclickAgent.setCatchUncaughtExceptions(true); //是否需要错误统计功能
MobclickAgent.openActivityDurationTrack(false); //来禁止默认的Activity页面统计方式。 /articles/7nyuUj
MobclickAgent.setScenarioType(getApplicationContext(), MobclickAgent.EScenarioType.E_UM_NORMAL);
错误分析没有数据问题:
(1)使用了集成测试 (2)没有在每个activity调用onResume和onPause方法(安卓) (3)使用了其他错误统计组件,可能与友盟错误分析冲突,建议将友盟的代码放在前面。 (4)如果sdk过旧,建议更新到新版本 (5)错误数据是下次启动应用时发送本次的错误数据(安卓需要间隔30秒以上算作新的启动) (6)需要在错误列表中编辑添加下应用的版本,不添加版本是看不到该版本的错误数据 (7)打印debug日志看一下是否有发送到服务器:关注error字段 详细论坛链接:/thread-.html
添加测试设备后,即表示使用了集成测试,但是集成测试数据不会显示在后台,只显示在实时日志里
把测试设备删掉就可以显示在后台了
本文已收录于以下专栏:
相关文章推荐
=-=因为项目需要=-=所以就做了这个=-=中间有点曲折=-=所以记下来,以免自己忘记。
1。先到友盟处下载SDK=-=链接如下:
一、项目依赖库和主程序的allowBackup冲突:  Error:Execution failed for task ':app:processDebugManifest'.
& Manifest...
一、自定义事件
      自定义事件可以实现在应用程序中埋点来统计用户的点击行为,比如:统计用户的点击事件,统计用户都点击了什么;统计用户搜索的关键字,看用户都偏好什么产品等等。自定义事件目前包括...
一、umeng产品介绍
1.开发组件
    ?社会化组件
    集成多个应用平台的分享功能,类似于SHareSDK,但是功能不如ShareSDK强大,Umeng的强大在于数据统计。
     ...
一、了解一下友盟快速集成的步骤
1.流程图如下:
从上图看,有些工作已经做好了,下载一个sdk-android:umeng-analytics-v5.2.3.jar,拷贝到libs文件夹中。
建议直接在Google Developers上面下载最新的版本。因为Android Studio还存在很多问题,使用新版本,bug比较少。
Help -&Check for ...
开发中,app线上版本经常会出现这样那样的问题,那我们如何知道出现了什么问题呢?并且能快速定位到错误并有效解决呢?这里就涉及到错误日志或叫崩溃日志了。一般情况下,我们都会继承友盟等第三方的错误日志,来...
前言dYSM文件崩溃日志提取崩溃日志中有用的信息开始分析查找bug结语
iOS分析定位崩溃问题有很多种方式,但是发布到AppStore的应用如果崩溃了,我们该怎么...
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Android开发之友盟统计
当我们开发好App后就会把它发到应用市场上,但是目前有很的应用市场(如,豌豆荚,应用宝,安卓市场等)那么问题来了,假如我们想统计我们开发的应用的下载次数,就必须把各个应用市场的下载量加起来,就这一点就会让你放弃这个想法,那么有没有更好的方法呢,答案是肯定的,用友盟统计啊,它不仅可以统计我们的应用的下载量,启动次数,还可以统计页面访问量、查看程序的bug等等,那么它怎么使用呢?它的使用步骤如下:
一、注册友盟的账号并申请key
集成友盟SDK之前,您首先需要到友盟官网注册并且添加新应用,获得Appkey
特别提醒:开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于个人离职带来的问题,建议使用的账号形式 :umeng@企业域名、apps@企业域名、dev@企业域名。不同平台的应用禁止使用相同的Appkey,友盟后台的应用名与实际应用名和包名无关,建议命名为&应用名+平台&。 申请步骤如下图:
这样第一步申请AppKey已经完成
二、下载统计SDK umeng-sdk-analytics.zip并解压缩。
android应用就下载 umsdk__analytics_v5.4.2.zip并解压将下载包中的libs下的jar包导入到本地工程libs子目录下
三、基本功能集成
3.1 manifest的配置主要包括添加权限,填写Appkey和填写渠道id三部分,代码示例如下:
3.2 appkey填写
将 中的YOUR_APP_KEY 替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 统计分析-&设置-&应用信息页面查看),其他部分均不需改动。如不想在manifest里配置友盟的appkey,可在Activity中配置:只需在程序启动时的Activity中调用此接口:AnalyticsConfig.setAppkey(String appkey)
四、基本数据的统计
把上面的的配置配置好后,正确集成如下代码,才能够保证获取正确的新增用户、活跃用户、启动次数、使用时长等基本数据。
在每个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) 来自定义这个间隔(参数单位为毫秒)。
如果开发者调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。 完成以上步骤就可以对应用的启动次数、新增用户等数据进行统计 把应用运行到手机上就可以显示我们的用户增长了如下图
友盟统计常与问题分析

我要回帖

更多关于 umeng 的文章

 

随机推荐