友盟统计

Android中统计分析的SDK ,友盟统计,百度统计,腾讯统计 APP统计分析 用户画像 对程序员来说,用户画像就是用户的属性和行为;通俗地说,用户画像是包括了个人信息、兴趣爱好、日常行为等血肉丰满的客户实体。用户画像是精准营销的产物,企业通过收集用户的行为,然后分析出用户的特征与偏好,进而挖掘潜在的商业价值,实现企业效益的最大化。 用户画像的一个具体应用是电商app的“猜你喜欢”栏目,电商平台通过对用户购买过的商品进行统计,可以分析用户日常生活 阅读详情

友盟统计作为移动应用的统计工具,是移动开发者需要了解的基本工具之一.

目前的社交移动工具基本上会用其承担起公司的统计数据工具.

作为数据的统计工具,他所完成的工作主要包含移动应用统计分析以及细分行业的移动游戏统计分析、社会化分享组件、消息推送、自动更新、用户反馈、错误分析等产品.

下面介绍友盟sdk的使用方法.

1.  集成准备

1.1  获得Appkey

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

*特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于个人离职带来的问题,建议使用的账号形式 :umeng@企业域名、apps@企业域名、dev@企业域名。

不同平台的应用禁止使用相同的Appkey,友盟后台的应用名与实际应用名和包名无关,建议命名为“应用名+平台”。

1.2  下载SDK

下载统计SDK umeng-sdk-analytics.zip并解压缩。

1.3  导入SDK

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

1.4  **使用Android Studio导入SDK**

Android Studio是谷歌推出了新的Android开发环境,友盟支持AndroidStudio的Gradle配置,如果您使用Android Studio开发,请按照如下的方法操作(1.3和1.4选择其中一种方法即可):

在Gradle依赖中添加:

dependencies {
   compile 'com.umeng.analytics:analytics:latest.integration'
}

如果无法正常集成请添加如下代码

allprojects {
    repositories {
            mavenCentral()     
    }
}

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 替换为您应用的推广渠道名称,channel id自定义。
例如在豌豆荚渠道推广此包,代码示例:

<meta-data android:value="Wandoujia" android:name="UMENG_CHANNEL"/>

注意:一个包中只能添加一个渠道;

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

命名规范

  1. 可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不推荐使用。
  2. 首尾字符不可以为空格
  3. 不要使用纯数字作为渠道ID
  4. 最多256个字符
  5. "unknown" 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名

在您查看数据时,渠道会作为一个数据细分的维度。

 渠道统计使用中的问题请参见友盟开发者社区:友盟渠道统计使用的那些事儿

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) 来自定义这个间隔(参数单位为毫秒)。
  • 如果开发者调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。

session统计的相关问题请参见友盟开发者社区:友盟启动次数的统计原理  单次使用时长的统计原理

至此,基本功能集成已经结束。

2.3  账号的统计

友盟在统计用户时以设备为标准,如果需要统计应用自身的账号,请使用以下接口(需使用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");

2.3.1  启动账号统计

集成账号统计功能后,请到我的产品-设置-应用信息,选择启动使用账号统计报表,如下图

账号

如果您集成了新版SDK的账号接口,可以通过启动账号统计开关,来开启账号报表的展现。账号统计报表开关仅作用于报表的展现,不影响数据的计算。您可以根据实际的需要来启动或者暂停该功能。

2.4  页面的统计

页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。
页面访问路径的数据为全量统计。若您希望查看测试数据,请使用集成测试服务 ,了解更多集成测试请点击这里 。

页面统计的常见问题参见友盟开发者社区:页面访问路径中你需要了解的知识点

2.4.1  只由Activity构成的应用

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

2.4.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 也可能是Fragment或View)

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

public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("SplashScreen"); //统计页面(仅有Activity的应用中SDK自动调用,不需要单独写)
    MobclickAgent.onResume(this);          //统计时长
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("SplashScreen"); // (仅有Activity的应用中SDK自动调用,不需要单独写)保证 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.5  发送策略

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

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

MobclickAgent.updateOnlineConfig( mContext );

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

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

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

2.6  日志加密设置

您可以通过在程序入口处的activity中调用如下代码来设置加密模式。

/** 设置是否对日志信息进行加密, 默认false(不加密). */AnalyticsConfig.enableEncrypt(boolean enable);

如果enable为true,SDK会对日志进行加密。加密模式可以有效防止网络攻击,提高数据安全性。
如果enable为false,SDK将按照非加密的方式来传输日志。
如果您没有设置加密模式,SDK的加密模式为false(不加密)。

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

2.7  代码混淆

 如果您需要混淆代码,请查看这里

3.  行为的统计:自定义事件

自定义事件可以实现在应用程序中埋点来统计用户的点击行为。自定义事件目前包括“计数事件”和“计算事件”,二者的区别以及详细说明请点击这里

自定义事件使用中的问题请参见友盟开发者社区:自定义事件常见问题

3.1  自定义事件字段说明

event id:自定义事件id
key:自定义事件下的参数
value:自定义事件参数下的参数值

3.2  使用自定义事件的依赖条件

  1. 使用自定义事件功能请先登陆友盟官网 , 在 “统计分析->设置->事件” (子账户由于权限限制可能无法看到“设置”选项,请联系主帐号开通权限。)页面中添加相应的事件id(事件id可用英文或数字,不建议使用中文),然后服务器才会对相应的事件请求进行处理。
  2. 自定义事件的代码需要放在Activity里的onResume方法后面,不支持放在onCreat()方法中。

3.3  计数事件

使用计数事件需要在后台添加事件时选择“计数事件”。

3.3.1  统计发生次数

在您希望跟踪的代码部分,调用如下方法:

MobclickAgent.onEvent(Context context, String eventId);

context指当前的Activity,eventId为当前统计的事件ID。

示例:统计微博应用中"转发"事件发生的次数,那么在转发的函数里调用

MobclickAgent.onEvent(mContext,"Forward");

3.3.2  统计点击行为各属性被触发的次数

考虑事件在不同属性上的取值,可以调用如下方法:

MobclickAgent.onEvent(Context context, String eventId, HashMap<String,String> 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);    

3.4  计算事件

使用计算事件需要在后台添加事件时选择“计算事件”。

3.4.1  统计数值型变量的值的分布

统计一个数值类型的连续变量(该变量必须为整数),用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等,可以调用如下方法:

MobclickAgent.onEventValue(Context context, String id, Map<String,String> m, int du)

id 为事件ID
map 为当前事件的属性和取值
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所示),时长数据会在计算事件的数值型部分展示。

Shuzhixing

3.4.2  统计点击次数及各属性触发次数

计算事件除能够统计数值型的参数外还具有计数事件的所有功能,详细说明 。

3.5  注意事项

  1. event id不能使用特殊字符,不建议使用中文,且长度不能超过128个字节;map中的key和value 都不能使用特殊字符,key 不能超过128个字节,value 不能超过256个字节。
  2. id, ts, du是保留字段,不能作为event id及key的名称。
  3. 每个应用至多添加500个自定义事件,每个event 的 key不能超过10个,每个key的取值不能超过1000个。如需要统计支付金额、内容浏览数量等数值型的连续变量,请使用计算事件(不允许通过key-value结构来统计类似搜索关键词,网页链接等随机生成的字符串信息)。

4.  在webview中统计自定义事件

如果你的页面中使用了WebView嵌入HTML,js的代码,并且希望统计HTML中的点击事件,比如点击了某个链接的次数, 这时你需要阅读下面的文档,通过友盟的 js 接口来统计相关的事件。注意如果你的HTML是运行在浏览器的,那么还 是无法统计的,下文仅针对使用WebView加载 网页的情况。

  • Java代码集成 首先要找到你的WebView对象,并做下面的初始化工作。 WebView webview = (WebView) findViewById(R.id.webview); new MobclickAgentJSInterface(Context, webview);

public MobclickAgentJSInterface(Context context, WebView webview, WebChromeClient client)

context 当前Activity引用
webview 当前的WebView对象
client WebChromeClient 实例,如果开发者实现了自己的WebChromeClient,那么请传入这个实例

public MobclickAgentJSInterface(Context context, WebView webview)

context 当前Activity引用
webview 当前的WebView对象

集成了上面的代码后,我们将会监听友盟的 js 代码调用。

  • js代码集成在网页端,请添加如下的 js 代码:

    <script type="text/javascript">
    
    function onEvent(tag, label, duration) {
        prompt("event", JSON.stringify({tag:tag,label:label, duration:duration}));
    }
    
    function onKVEvent(tag, map, duration) {
        map.id = tag;
        map.duration = duration;
    
        prompt("ekv", JSON.stringify( map ));
    }
    
    </script>  
    
    

    这里面提供了两个js接口,分别用来统计自定义事件和K-V对形式的KV事件,并且和Java接口有如下的映射:

    onEvent(tag) -> MobclickAgent.onEvent(Context context, String tag); 
    //tag 传入字符串
    onEvent(tag, label)-> MobclickAgent.onEvent(Context context, String tag, String label);
    // tag ,label 传入字符串
    onEvent(tag, '',  du) -> MobclickAgent.onEvent(Context context, long duration);
    // tag 传入字符串, 第二个变量 传入空字符串, du 传入 数值类型
    onEvent(tag, label, du) -> MobclickAgent.onEvent(Context context, String tag, String label, long du);
    // tag, label 传入字符串, du 传入数值类型
    onKVEvent(id, {} ) -> MobclickAgent.onEvent(Context context, HashMap map);
    // id 传入字符串, 第二个参数传入 js 对象eg:{'item':'gun','type':'weapon'}
    onKVEvent(id, {} , du) -> MobclickAgent.onEvent(Context context, HashMap map, long du);
    // id 传入字符串, 第二个参数传入 js 对象eg:{'item':'gun','type':'weapon'}, du 传入 数值类型
    
    
  • 示例:

    <a onClick="onEvent('click')"> SimpleEvent</a>
    <a onClick="onEvent('click','button')"> EventWithLabel </a>
    <a onClick="onEvent('play','music',123)"> EventWithLabelAndDuration </a>
    <a onClick="onEvent('play','',123)"> EventWithDuration </a>
    
    <a onClick="onKVEvent('buy',{'item':'gun'})"> KVEvent </a>
    <a onClick="onKVEvent('play',{'music':'blue'}, 123)"> KVEventWithDuration </a>
    
    
  • 怎么实现的 ?
    如您所见,我们提供的 js 接口,最后都会调用一个 prompt(...) 方法, 然后我们通过拦截 prompt 接口的事件,得到 js 代码中的参数,然后再映射到 Java 代码上的指定方法。所以我们在第一步初始化的时候,实现了自己的WebChromeClient 然后覆盖其中的方法来完成 prompt 事件的拦截,如果您的代码中同样实现了自己的 WebChromeClient 请务必在初始化的时候,调用以下代码,并传入相应的 WebChromeClient。

    public *MobclickAgentJSInterface*(Context context, WebView webview, WebChromeClient client)
    
    

说明:
上面示例的完整代码可以在 example 程序的 assets/demo.html 文件夹下找到。对应的Java初始化代码可以在 com.umeng.example.analytics.AnalyticsHome.java 中找到。

5.  在线参数

在Android统计分析SDK5.6.1及以上版本中,setOnlineConfigureListener()这个接口已经废弃,如果使用在线参数功能,请下载独立的在线参数SDK 。

在线参数SDK下载链接:http://dev.umeng.com/online-parameters/android-doc/sdk-download

以下【在线参数】内容仅针对5.6.1以前版本的SDK

在线参数使您可以在网站上动态配置预设好的参数的参数值。例如: 动态修改应用的欢迎语,修改应用中开关选项的"on"或"off",以及类似游戏中虚拟物品的价格等。

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

MobclickAgent.updateOnlineConfig( mContext );

在线参数需要在网站编辑,在程序中使用这句代码从服务器获取参数,并缓存本地。 当在项目里需要获取某个具体参数时调用

String value = MobclickAgent.getConfigParams( mContext, "xxxx" );

xxxx为友盟后台事先设置好的参数id。

同时,我们提供了在线参数回调接口,注意此接口只在在线参数有变化的时候才会回调,实现此接口:

MobclickAgent.updateOnlineConfig(this);
MobclickAgent.setOnlineConfigureListener(new UmengOnlineConfigureListener(){
  @Override
  public void onDataReceived(JSONObject data) {
  }
});

data 为在线参数回调函数,JSONObject 对应网页上编辑的参数值。

6.  错误统计

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)

错误统计中的问题请参见友盟开发者社区:友盟错误分析常见问题汇总

7.  社交统计

针对社交行为的垂直统计,可以非常详尽地统计应用中发生的各种社交行为。 只需要调用一行代码,便可享用到丰富的社交行为和社交用户分析报表。

在发生社交行为,比如分享了到新浪微博之后,调用这样一行代码:

UMPlatformData platform = new UMPlatformData(UMedia.SINA_WEIBO, "user_id"); 
platform.setGender(GENDER.MALE); //optional   
platform.setWeiboId("weiboId");  //optional   
MobclickAgent.onSocialEvent(this, platform);

会把分享信息发送到友盟服务器, 我们会通过这些信息创建社交行为报表。

相关参数说明:
UMPlatformData:
UMeida meida 平台枚举类型(必填)
String usid 用户的id(必填)
String weiboId 微博id
String name 用户姓名
GENDER gender 用户性别

8.  其他API

  • *MobclickAgent.setOpenGLContext(GL10 gl) 设置openGL 信息,辅助统计GPU 信息
  • MobclickAgent.onKillProcess(Context context) 如果开发者调用 Process.kill 或者 System.exit 之类的方法杀死进程,请务必在此之前调用此方法,用来保存统计数据。

9.  测试与调试

9.1  确认如下内容

  • 确认所需的权限都已经添加:INTERNET, READPHONESTATE
  • 确认APPKEY已经正确的写入Androidmanifest.xml
  • 确认所有的Activity中都调用了onResume和onPause方法
  • 确认测试手机(或者模拟器)已成功连入网络
  • 集成中可能出现的问题,参见这里
  • 请阅读友盟论坛中常见问题索引:统计SDK常见问题索引

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

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

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

使用集成测试模式请先在程序入口处调用如下代码,打开调试模式:

MobclickAgent.setDebugMode( true );

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

9.3  使用普通测试流程

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

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

MobclickAgent.setDebugMode( true );

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


转载:http://dev.umeng.com/analytics/android-doc/integration#3_3点击打开链接


友盟统计的一次详细分析,记录自己深入阅读统计的过程 国内专业的移动应用统计分析平台。我们帮助移动应用开发商统计和分析流量来源、内容使用、用户属性和行为数据,以便开发商利用数据进行产品、运营、推广策略的决策。 个人对友盟统计的使用总结 阅读详情

相关推荐

Android开发和测试实践 - 接入友盟统计

这两年一直在做无线的测试,后续还会继续去做无线的测试,但是之前因为时间的原因一直都没有非常仔细的了解到代码层面。近期抽空自己做了些app的开发,决定如果想把移动的测试做好做深入,有一定的app开发经验非常的有必要,因为只有这样很多东西才能真正理解了。另一个方面,这本身就很有趣。 实践的过程也想陆续整理出来,做下笔记,也给别人一些参考,遇到很多问题的时候也是到谷歌度娘的找答案,帮助很多。目前更

Ricky Qiu的软件测试笔记 1万+

友盟统计java代码_android-------- 多渠道打包(借助友盟移动统计分析)

好久没有发博客了,原因是换工作了,今天端午假期,所以来发一篇博客,多渠道打包,借助友盟移动统计分析,希望对各位有所帮助多渠道打包的理解:渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、豌豆荚、应用宝市场等为什么要提供多渠道包?我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计(这就是添加渠道信息的用处)。实现多渠道打包的原...

weixin_34184682的博客 332

Apollo&Carla联合仿真环境搭建与实战调试

本文详细介绍了Apollo与Carla联合仿真环境的搭建与实战调试流程,涵盖硬件配置、软件依赖安装、Apollo环境配置、Carla仿真器安装、桥接服务设置以及常见问题解决方案。通过逐步指导,帮助开发者高效实现自动驾驶仿真测试,提升开发效率。

ee345的博客 200

Android 友盟统计的配置及实现(事件、报错统计)

记得很久以前有做过友盟这个东西,不过这个功能是同事弄的。现在在另一家公司做了,整个项目都是要通过自己开发(菜鸟级)。最近又做了友盟这个统计的东西,有了似曾相识的感觉,还是觉得蛮好用的,文章也对友盟统计做了整理。主要写成两个工具类。这里希望对大家有所帮助,斗胆说一句,不懂可以问我,必以所知告之于你,没错就是这么热诚。一、统计到的信息:1、错误信息2、新增用户、启动3、渠道4、事件统计二、配置:详细可...

无论何时都不要停止学习,这是改变自己的必要条件 1万+

手把手教你用Cadence VPWLF源和参数扫描:搞定非周期激励与gmid曲线绘制(避坑指南)

本文详细介绍了如何在Cadence Virtuoso中使用VPWLF源生成复杂非周期激励信号,并结合gmid方法进行双参数扫描优化电路设计。通过实战案例和避坑指南,帮助工程师高效解决波形生成和参数可视化难题,提升模拟电路设计效率。

weixin_29260291的博客 427

第 4 课 树莓派5的换源与中文输入法

树莓派换源、中文输入法的安装

嵌入式老牛的博客 2288

MobclickAgent——友盟用户分析工具

Android 统计分析 SDK使用指南 1.建立App,下载SDK 2.实现基本的使用 3.使用错误报告 4.使用自定义事件 5.使用分发渠道分析 6.使用应用程序更新提醒 7.使用用户反馈收集 8.设置数据发送策略 9.使用在线配置功能 1.建立App,下载SDKTop 登录你的帐号后,看到友盟的管理后台,点击"+添加新应用",进入新应用信息填写的

xiangzilv1987的专栏 4万+

Anaconda离线创建python环境

既然是离线创建python环境,就需要有一个已经创建好的python环境。所以我们有两台win10的机器,分别是A和B。两台机器都安装了anaconda。其中A可以连网,因此我们在A上创建好一个python2.7的环境py27,然后将py27移植(安装)到B上。B连不连网都无所谓。 一、机器上A上创建python2.7的环境py27 有两种方法: 方法1:使用Anaconda的图形界面。首先,点击Environments->Create,然后输入要创建的环境名称"py27",然后选择2.7,如图

FY_2018的博客 6787

友盟统计 UMID

相同设置 不同用户ID登录,移动统计是以设备UMID为准的,同一个设备,不管是登录了多少个账号,统计的活跃用户,只会计算一次。同一台设备,卸载重新安装,只要设备信息不变,就不会算新的新增,分身软件,也是只会算为一次,因为设备信息是一致的。友盟基于设备(UMID)的活跃用户 其实就是真实测设备数量,在此基础上才能统计出 卸载流失 等等的数据。是以用户ID 作为依据,和设备无关,多少用户在使用 就算多少日活。活跃用户 每天用户启动应用的访问设备数,当日启动多次,活跃用户只计算一次,是去重数据。

唐僧的专栏 900

Miniconda3迁移(附图详细过程)

服务器上目录占满,想要将conda迁移到其他目录下的操作方法,详细教程。

2301_77554343的博客 6943

打开 AI 投研新时代 —— 深度解析 GitHub 高星项目 daily_stock_analysis

GitHub热门开源项目"daily_stock_analysis"是一款AI驱动的智能股票分析工具,能自动抓取行情数据、分析新闻语义并生成结构化报告。该项目采用Python开发,通过GitHub Actions实现全自动运行,支持邮件、企业微信等多渠道推送。核心功能包括AI决策仪表盘、多数据源整合和零成本部署方案,特别适合需要自动化投研辅助的个人投资者。项目强调其仅为分析工具而非投资建议,提醒用户注意AI模型的潜在误差。该工具通过智能化处理重复工作,帮助投资者提升决策效率,成为量化投资

陈奕昆的博客 1526

ios开发:友盟移动数据统计分析详解

友盟移动统计 本只是想着集成友盟移动统计,做一些自定义事件,以便提供运营分析,为了让自己不做重复工作,我把集成后友盟就给我,们处理的统计分析整体看了一遍。没想到友盟统计比我想象的强大的多感觉跟看了一本书一样,进入了一个全新的世界。看完之后,感觉不管是哪个行业,只要是做运营等管理类的工作,都能或多或少的获得一些感悟。为此,我做了一些简单的规整,希望看到这篇博客的能有益处。 一、概况 1、实时统...

chenzimin_blog 2897

Android 13.0 app进程保活白名单功能实现

在13.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 3143

友盟统计和友盟反馈的添加

一 、友盟统计的添加 要在appdelegate里面导入文件 #import "MobClick.h" //UMENG_APPKEY为你在友盟申请应用的时候得到的自己应用的appkey - (NSString *)appKey {     return UMENG_APPKEY; } - (BOOL)application:(UIApplication *)applicat

nana12356789的专栏 1715

Vue - 超强实现网页禁止浏览器缩放功能,浏览器缩放时保持网页不变形、元素不会被挤压等,屏蔽浏览器鼠标滚轮缩放页面(提供详细示例代码,一次引入整个网站无人可以搞乱你的页面布局及样式)

vue,nuxt,禁止浏览器缩放,如何用户缩放浏览器导致页面变形,网页缩放后页面变形了怎么办,怎么解决网站被缩放后元素乱套错乱,vue怎么禁止网页不被缩放,vue如何禁止浏览器缩放,vue缩放网页变形影响布局怎么办,vue电脑分辨率及缩放导致页面变形的问题,前端页面解决浏览器或者系统被放大和缩小导致的显示问题,Vue中页面自适应缩放,如何防止Vue页面缩放时变形/调整大小,Vue项目中,防止页面被缩放和放大,vue等比例缩放网页,网页缩放后界面变形咋办,禁止页面缩放,vue禁止浏览器改变窗口大小,Vue项目

🏆 前端领域优质创作者 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

友盟统计,h5 API

友盟统计,h5 API /** * 友盟统计事件 API https://developer.umeng.com/docs/67963/detail/74517 * _trackEvent 事件统计 * _trackPageView url 统计 // 适用于统计AJAX、异步加载页面,友情链接,下载链接的流量 * ...

齐枫的博客 4613

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

友盟统计+友盟多渠道

开始吧:产品-》移动统计-》进入新版-》创建新应用-》获取到appkey 一、在项目的build.gradle中添加 buildscript { repositories { google() jcenter() maven { url 'https://dl.bintray.com/umsdk/release' } } dependencies { classpath 'com.android.tools.build:

tekabo的博客 899

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

友盟统计操作

/  Copyright (C) 2010-2016 Umeng.com . All rights reserved. #import #import #define XcodeAppVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionSt

lan_li_gang的博客 3548

友盟统计与百度推送

记录一个友盟统计与百度推送可能存在的冲突 前些天先集成了百度推送,测试一下,正常,后来就没管了。 为了快速实现分享和数据统计,又引入了友盟,测试一下,友盟也没有问题。 回头,后端说要改一下推送内容,让我测试一下,百度推送崩了! 在PushMessageReceiver中打印信息,绑定成功,获取到了正确的appid。 po一下这个类 /** * 描述:百度推送 * 创建者:admin * 创建...

三须鳗鱼 743

友盟统计与崩溃日志

友盟统计与崩溃日志 友盟统计,包含:用户分析: 新增用户、活跃用户、启动次数等;留存统计:留存用户、用户新鲜度,用户活跃度;用户参与度:使用时长,使用频率统计,访问页面,使用间隔等。在友盟统计中默认开启了崩溃日志。 广告标识符 广告标识符 (IDFA) 是每台 iOS 设备的唯一 ID,是投放定向广告的唯一方法。 用户可以选择在其 iOS 设备上限制广告定位。但是...

a359798678的博客 750

友盟添加网站统计步骤

前一阵要用到H5页面的埋点统计,还是用友盟,挺久没用,突然不太会操作了。写一下方便自己自省一下。 第一步 找到你的产品中心,开通网站统计 第二步 点击查看报表,点击添加站点 第三步 编写你的站点,添加站点。 然后回到我的站点页面,点击右侧统计代码,选个统计代码方式(我用的文字方式)。放到你要统计页面的</body>前。 最好用个隐藏。 ...

曹焱的博客 2600

友盟统计新手帮助文档

自己总结 多多支持

wxr66666的博客 1494
上一篇: 矢量图和位图
下一篇: JSON在线校验工具
Listron
博客等级 码龄18年 56粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值