友盟统计简篇
个人使用友盟统计的心得:
-
注册:友盟后台的应用名与实际应用名和包名无关,建议命名为“应用名+平台(IOS/Android)”。
-
统计场景设置:
MobclickAgent.setScenarioType(Context context, EScenarioType etype) ;
(常用类型:EScenarioType. E_UM_NORMAL 普通统计场景类型) -
Appkey配置:
如果不想在Manifest中配置,希望在代码中配置Appkey、Channel、Token(Dplus)等信息,请在程序入口处调用如下方法: MobclickAgent. startWithConfigure(UMAnalyticsConfig config) -
友盟方法理解 / session的统计:
4.1 在需要统计的Activity中调用 MobclickAgent.onResume() 和MobclickAgent.onPause();
(用于获取正确的新增用户、活跃用户、启动次数、使用时长等基本数据(中用于Activity))
4.2 MobclickAgent.onPageStart() 和MobclickAgent.onPageEnd() ;
(用来统计具体是哪个在页面跳转,(针对页面,页面可能是Activity 也可能是Fragment或View);)
4.3 MobclickAgent.setSessionContinueMillis(long interval);
(当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动))
4.4 若开发者调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。
(注意:其实SDK 自动帮助开发者调用了MobclickAgent.onPageStart() 和MobclickAgent.onPageEnd()方法,并把Activity 类名作为页面名称统计,当然我们可以重新调动来实现命名。)
4.5 但在包含fragment的程序中我们希望统计更详细的fragment页面,就需要自己调用这两个方法做更详细的统计了,设置步骤如下:
1.调用 MobclickAgent.openActivityDurationTrack(false) 禁止默认的页面统计方式,这样将不会再自动统计Activity。
2.注意:要保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息,在程序入口处指的是应用的第一个activity的onCreate()方法里。 -
自定义事件:其目前包括“计数事件”和“计算事件”,计数事件统计事件的发生次数、独立用户数、事件时长及事件各参数的发生次数、时长,也就是显示的是未处理的原生数据。计算事件是对原生数据的统计和处理,有利于我们直接对数据变化进行分析,如均值,概率,累计分布等;
调用方式:
SDK是5.2.2版本以前,调用以下方法集成数值型自定义事件:public static void onEvent(Context context, String id, HashMap<String,String> m, int value){}
SDK是>=5.2.2版本,调用以下方法集成数值型事件:MobclickAgent.onEventValue(Context context, String id, Map<String,String> m, int du){}参考代码: 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);
(参数说明:id 为事件ID;map为当前事件的属性和取值;du为当前事件的数值(在计算事件中使用),取值范围是-2,147,483,648 到 +2,147,483,647 之间的有符号整数,即int 32整型,如果du数据值超过该范围,会造成数据丢包,影响数据统计的准确性。)
注:自定义事件至多传递10个参数,且每个事件只能传递一个数值型参数。
-
数据测试,我们提供了两种方式(debug模式下的测试),普通测试和集成测试。集成测的测试设备的数据是被隔离的,不会污染正常统计数据: MobclickAgent.setDebugMode(true);
-
错误统计是否开启:MobclickAgent.setCatchUncaughtExceptions(false);
-
社交统计:如分享了到新浪微博之后,调用这样一行代码:
UMPlatformData platform = new UMPlatformData(UMedia.SINA_WEIBO, "user_id");
platform.setGender(GENDER.MALE); //optional
platform.setWeiboId("weiboId"); //optional
MobclickAgent.onSocialEvent(this, platform); -
友盟在统计用户时以设备为标准,如果需要统计应用自身的账号(需使用5.6.1及以上版本SDK),请使用以下接口:
public static void onProfileSignIn(String ID) ;
public static void onProfileSignIn(String Provider, String ID) ;
public static void onProfileSignOff(); //账号登出时需调用此接口,调用之后不再发送账号相关内容
(参数说明:ID:用户账号ID,长度小于64字节;Provider:账号来源。如果用户通过第三方账号登陆,可以调用此接口进行统计。)