在上一篇文章中我们已经完成对友盟SDK的基本集成,但是要满足产品经理对一个APP的期望,基本集成的功能远远是不够的,此时我们需要更进一步的集成友盟SDK的功能
1.账号统计功能
友盟在统计用户时以设备为标准,如果需要统计应用自身的账号(),请使用以下接口:
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的账号接口,可以通过启动账号统计开关,来开启账号报表的展现。账号统计报表开关仅作用于报表的展现,不影响数据的计算。您可以根据实际的需要来启动或者暂停该功能。可在下图所示位置查看
2.页面统计功能,产品经理往往需要你统统APP中哪个页面打开最频繁
页面统计不需要再添加其他代码。
统计应用中包含Fragment的情况比较复杂,首先要明确一些概念。
1. 和 方法是用来统计应用时长的(也就是Session时长,当然还包括一些其他功能)
2.和方法是用来统计页面跳转的
在仅有Activity的应用中,SDK 自动帮助开发者调用了 中的方法,并把Activity 类名作为页面名称统计。但是在包含fragment的程序中我们希望 统计更详细的页面,所以需要自己调用方法做更详细的统计。
首先,需要在程序入口处,调用 禁止默认的页面统计方式,这样将不会再自动统计 Activity。
然后需要手动添加以下代码:
1. 使用 和 方法统计时长, 这和基本统计中的情况一样(针对Activity)
2. 使用 和 方法统计页面(针对页面,页面可能是Activity 也可能是Fragment或View)
如果页面是直接由Activity实现的,统计代码大约是这样:
public void {
super.onResume();
MobclickAgent.; //统计页面(仅有Activity的应用中SDK自动调用,不需要单独写。"SplashScreen"为页面名称,可自定义)
MobclickAgent.onResume(this); //统计时长
}
public void {
super.onPause();
MobclickAgent.; // (仅有Activity的应用中SDK自动调用,不需要单独写)保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息。"SplashScreen"为页面名称,可自定义
MobclickAgent.onPause(this);
}
如果页面是使用FragmentActivity + Fragment实现的,需要在 FragmentActivity 中统计时长:
public void {
super.onResume();
MobclickAgent.onResume(this); //统计时长
}
public void {
super.onPause();
MobclickAgent.onPause(this);
}
并在其包含的 Fragment 中统计页面:
public void onResume() {
super.onResume();
MobclickAgent.; //统计页面,"MainScreen"为页面名称,可自定义
}
public void onPause() {
super.onPause();
MobclickAgent.;
}
注意:这些方法的调用,需要,每个 onResume 都对应一个 onPause ,每个 Start 都有一个 End 配对。这样才能保证每个页面统计的正确
3.在企业开发中我们APP的奔溃日记一般要求加密上传,防止别人抓包
您可以通过在程序入口处的 中调用如下代码来设置加密模式
/** 设置是否对日志信息进行加密, 默认false(不加密). */
AnalyticsConfig.enableEncrypt(boolean enable);//6.0.0版本以前
MobclickAgent.enableEncrypt(boolean enable);//6.0.0版本及以后
- 如果enable为,SDK会对日志进行加密。加密模式可以有效防止网络攻击,提高数据安全性。
- 如果enable为,SDK将按照非加密的方式来传输日志。
- 如果您没有设置加密模式,SDK的加密模式为false(不加密)。
4.在企业开发中产品经理经常会装逼的跟你说我们能不能办到知道那个商品购买最多,这个时候你心里一个万马奔腾,你直接去后台查不就行了,你和我说个毛啊。产品经理又会和你说我们能不再在这个页面埋下一个点,听到这些话作为小白的是不是已经奔溃了,其实产品经理说的这些都可以用友盟来解决,解决办法就是友盟的自定义统计事件
:自定义事件id
:自定义事件下的参数
:自定义事件参数下的参数值
- 使用自定义事件功能请先登陆友盟官网 , 在 “” (子账户由于权限限制可能无法看到“设置”选项,请联系主帐号开通权限。)页面中添加相应的事件id(事件id可用英文或数字,),然后服务器才会对相应的事件请求进行处理。
- 自定义事件的代码需要放在Activity里的,请在友盟初始化之后调用事件,不支持在service中统计。
在您希望跟踪的代码部分,调用如下方法:
MobclickAgent.onEvent(Context context, String eventId);
指当前的Activity
为当前统计的事件ID。
示例:统计微博应用中"转发"事件发生的次数,那么在转发的函数里调用
MobclickAgent.onEvent(mContext,"Forward");
考虑事件在不同属性上的取值,可以调用如下方法:
MobclickAgent.onEvent(Context context, String eventId, HashMap map);
为当前事件的属性和取值(Key-Value键值对)。
示例:统计电商应用中“购买”事件发生的次数,以及购买的商品类型及数量,那么在购买的函数里调用:
HashMap<String,String> map = new HashMap<String,String>();
map.put(,);
map.put(,);
MobclickAgent.onEvent(mContext, "purchase", map);
5.社交统计
针对社交行为的垂直统计,可以非常详尽地统计应用中发生的各种社交行为。 只需要调用一行代码,便可享用到丰富的社交行为和社交用户分析报表。
在发生社交行为,比如分享了到新浪微博之后,调用这样一行代码:
UMPlatformData platform = new UMPlatformData(UMedia.SINA_WEIBO,);
platform.setGender(GENDER.MALE); //optional
platform.setWeiboId(); //optional
MobclickAgent.onSocialEvent(this, platform);
会把分享信息发送到友盟服务器, 我们会通过这些信息创建社交行为报表。
相关参数说明: UMPlatformData:
平台枚举类型(必填)
用户的id(必填)
微博id
用户姓名
用户性别