Android友盟统计

统计 可以很方便的给我们的程序 带来很多的参考;可以直观的了解我们的产品在市场的使用情况:下面简单谈谈 友盟在项目中的使用:简单、快速。号称三分钟快速集成完成基本功能。
友盟统计:
http://www.umeng.com/
友盟官方集成文档::
http://dev.umeng.com/analytics/android-doc/integration/

简单集成步骤:(环境:AndoridStuido)
#统计基础
##1:申请Key
考虑申请Key的操作简单,这里我就不多说了。
##2:下载SDK,配置项目依赖库
配置 bulid.gradle
A:直接配置:不需要添加到lib包中:
在Gradle依赖中添加:

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

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

allprojects {
    repositories {
            mavenCentral()     
    }
}

B:在lib中配置:
在下载的sdk中找到(目前我下载的是):umeng-analytics-v6.0.9.jar copy到lib下;
然后选中架包:右键–>Add As Library… 即可。
##3:配置Key: Manifest.xml文件中配置:
添加权限 +配置Key








……



    

注意:友盟的配置在application标签中
YOUR_APP_KEY:对应的步骤1中个人申请的:AppKey (唯一的:每一个应用对应一个AppKey)
Channel ID:对应的友盟的渠道;例如:UMENG_CHANNEL 或者wandoujia或者360shouji 等;

说明(可以不用关注):
A:一个App目前只支持一个AppKey:也就是一个应用只能使用一个友盟统计。
B:这个是在Manifest.xml中配置友盟的AppKey;
C:这个“READ_PHONE_STATE”权限需要在程序中判断是否开启;没有开启需要提示开启。
READ_PHONE_STATE:是友盟用来获取用户设备的IMEI,通过IMEI和mac来唯一的标识用户,这个实现我们不用管;如果个人想获取手机的唯一标识请移步:http://blog.csdn.net/u013472738/article/details/72851227 最后一个内容查看。
##4:项目代码配置:
在每个Activity中的方法onResume() 和onPause()方法中 添加:

  //TJ:添加友盟
    @Override
    protected void onResume() {
        super.onResume();
        MobclickAgent.onResume(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        MobclickAgent.onPause(this);
    }

注意A: 如果您的Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计,导致启动次数异常增高。
如:activityA extends activityMain(){…}
那么只需要在:activityMain的Activity 中添加 统计 即可;activityA的Activity可以不用添加。

注意B:
如果开发者调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。

注意C:
有唯一性:单个手机ID唯一:同一个手机多次安装/使用;仅记录了一次安装/使用。


------------完成以上四步基本操作 即可实现基本的新增、活跃、启动、留存等数据统计。------------


#基础扩展:
##5:配置Key: 代码中配置AppKey:
需要在程序入口(如:Application全局类)中配置可以使用:

MobclickAgent. startWithConfigure(UMAnalyticsConfig config) ;

方法说明:

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模式

例如:
在Application全局类的OnCreate()方法中添加:

MobclickAgent. startWithConfigure(new MobclickAgent.UMAnalyticsConfig(this,"Appkey","Wandoujia") );

##6:计数事件
在友盟的App应用中的“概况”中有很多供我们使用的辅助的统计功能:
下面简单举例:自定义事件(计数、计算事件):计数
图1:添加事件说明:
Android友盟统计_第1张图片

图2:添加成功:

Android友盟统计_第2张图片

项目中点击事件计数友盟统计添加代码:
A:简单的一个ID对应一个事件:

MobclickAgent.onEvent(mContext, “TestID”);// 事件ID

B:一个ID对应多个事件:

  Map map_ekv0 = new HashMap();
                map_ekv0.put(“key1” , “value1”);//TJ:这里键和值1。
				map_ekv0.put(“key2” , “value2”);//TJ:这里键和值2。
                MobclickAgent.onEvent(mContext, “TestID”, map_ekv0);//TJ:注意:Key/Value

这样在友盟一个ID:TestID 就对应两个键值对了;代码生效后:在事件:详情–>查看。
详细参考:友盟SDK中的类:AnalyticsHome.java
贴出简单代码:


public class AnalyticsHome extends Activity {
    private Context mContext;
    private final String mPageName = "AnalyticsHome";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.umeng_example_analytics);

        mContext = this;
        MobclickAgent.setDebugMode(true);
        // SDK在统计Fragment时,需要关闭Activity自带的页面统计,
        // 然后在每个页面中重新集成页面统计的代码(包括调用了 onResume 和 onPause 的Activity)。
        MobclickAgent.openActivityDurationTrack(false);
        // MobclickAgent.setAutoLocation(true);
        // MobclickAgent.setSessionContinueMillis(1000);
        // MobclickAgent.startWithConfigure(
        // new UMAnalyticsConfig(mContext, "4f83c5d852701564c0000011", "Umeng",
        // EScenarioType.E_UM_NORMAL));
        MobclickAgent.setScenarioType(mContext, EScenarioType.E_UM_NORMAL);
    }

    @Override
    public void onResume() {
        super.onResume();
        MobclickAgent.onPageStart(mPageName);
        MobclickAgent.onResume(mContext);
    }

    @Override
    public void onPause() {
        super.onPause();
        MobclickAgent.onPageEnd(mPageName);
        MobclickAgent.onPause(mContext);
    }

    /**
     * android:onClick="onButtonClick"
     *
     * @param view
     */
    public void onButtonClick(View view) {
        int id = view.getId();
        switch (id) {
        case R.id.umeng_example_analytics_event_cc:
            List keyPath = new ArrayList();
            keyPath.add("one");
            keyPath.add("two");
            keyPath.add("tree");
            MobclickAgent.onEvent(mContext, keyPath, 20, "label");
            break;
        case R.id.umeng_example_analytics_event:
            MobclickAgent.onEvent(mContext, "click");
            MobclickAgent.onEvent(mContext, "click", "button");
            break;
        case R.id.umeng_example_analytics_ekv:
            Map map_ekv = new HashMap();
            map_ekv.put("type", "popular");
            map_ekv.put("artist", "JJLin");

            MobclickAgent.onEvent(mContext, "music", map_ekv);
            break;
        case R.id.umeng_example_analytics_duration:

            Map map_value = new HashMap();
            map_value.put("type", "popular");
            map_value.put("artist", "JJLin");

            MobclickAgent.onEventValue(this, "music", map_value, 12000);
            break;
       
       
    }
 
}

说明
  1. 添加渠道只能在mainfest里设置?
    当然不是,除了在mainfest通过来设置渠道ID,你还可以在Activity中配置,只需在程序启动时的Activity中调用此接口:AnalyticsConfig.setChannel(String channel)就可以实现。
    小建议:可以使用20位以内的英文或数字为渠道命名(不建议使用中文命名)

  2. 添加了新的渠道,安装包已经发出去了,这个渠道却没有显示
    这个问题真的不是我们的工具有问题,是你对友盟的规则还不了解啊。在添加了新的渠道,友盟后台在收到了该渠道包的启动日志,经过解析之后,才会出现该渠道的信息。所以,如果你的新渠道没有显示,那不是友盟产品的问题,因为还没有人安装这个渠道包并启动呢。怎么解决呢?你可以使用一台新的设备去安装这个新的渠道包,启动之后,友盟后台就会出现这个渠道啦。

    注意:一定要用新的设备,因为每台设备仅记录首次安装激活的渠道,如果该设备再次安装其他渠道包,则数据仍会被记录在初始的安装渠道上。 所以在测试不同的渠道时,请使用不同的设备来分别测试。另外,集成测试的数据不会出现在正常数据里,所以新设备也不能是测试设备。

OK后续会持续完善学习:欢迎指正…
A:flurry统计 : 个人认为国际上相对好用的统计,O(∩_∩)O哈哈~
B:友盟统计: 国内比较强大且好用的统计。
C:极光推送: 主要推送功能比较完善简单。
D:个推: 一个统计。
E:51.la: 针对IP(web页面)统计的一个统计:添加前需要页面支持。
F:CNZZ : 很早和友盟合并了;导致友盟叫:友盟+;不错O(∩_∩)O哈哈~
等…

你可能感兴趣的:(统计,android,友盟)