友盟(二)快速初步集成并测试

来源:互联网 发布:淘宝网耐克运动鞋 编辑:程序博客网 时间:2022/10/02 13:40

一、了解一下友盟快速集成的步骤

1.流程图如下:

从上图看,有些工作已经做好了,下载一个sdk-android:umeng-analytics-v5.2.3.jar,拷贝到libs文件夹中。

2.配置Manifest文件

     通过上一篇,相信大家都可以获取到APPkey了。

    首先,配置权限:

<span style="font-size:12px;"><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></span>
    其次,配置参数常量

<span style="font-size:12px;"><!-- umeng -->        <meta-data            android:name="UMENG_APPKEY"            android:value="54992694fd98c509c6000777" >        </meta-data>        <meta-data            android:name="UMENG_CHANNEL"            android:value="GooglePlay" />        <!-- umeng --></span>
       配置完这些信息后,你的项目其实已经和友盟开发者账户关联在一起了。

      上面的渠道名称,也只是一个标识,写法见名知意即可,建议使用英文。

3.注意

       每台设备仅记录首次安装激活的渠道,如果该设备再次安装其他渠道包,则数据仍会被记录在初始的安装渠道上。 所以在测试不同的渠道时,请使用不同的设备来分别测试。


二、开始进行session统计和页面统计

1.概念理解

       session统计:也就是页面停留时间长度,从onResume()到onPause()之间的时间长度。每一次开始到结束都发送一次统计数据。

       页面统计:也就是视图、屏幕统计,统计用户访问了哪个界面,默认情况下这个功能是自动随着统计session数据而统计的,因为时长也是相对某个页面而言的,要不也没有意义了。

2.session统计

     只有集成正确,才能保证获取正确的新增用户、活跃用户、启动次数、使用时长等基本数据。

   如果想要统计数据是基于某个Activity的需如下操作即可

        @Overrideprotected void onResume() {super.onResume();Adjust.onResume(this);<span style="color:#FF6666;">MobclickAgent.onResume(this);</span>Log.e(TAG, "ONRESUME");}@Overrideprotected void onPause() {super.onPause();Adjust.onPause();<span style="color:#FF6666;">MobclickAgent.onPause(this);</span>Log.e(TAG, "ONPAUSE");}


      如果您的Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计,导致启动次数异常增高。(eg.使用TabHost、TabActivity、ActivityGroup时)。

     如果Activtiy类比较多,为了方便起见,为所有的Activity类创建一个父类,在父类中调用即可

   友盟提示:当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过下面的接口来自定义这个间隔(参数单位为毫秒)。

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

3.页面统计

    页面统计信息集成正确,才能获取正确的额页面路径、访问深度(PV)等数据。

    友盟提示:页面访问路径的数据为抽象统计(抽象比例为所有的log的3%),数据量达到一定程度才会在后台显示。

    如果只是单纯的统计Activity页面,那么我们不需要做任何页面统计的工作,因为在做session统计的时候,默认已经进行了页面统计。

    但是在包含fragment的程序中我们希望统计更详细的页面,所以需要自己调用方法做更详细的统计。首先,需要在程序入口处,调用MobclickAgent.openActivityDurationTrack(false) 禁止默认的页面统计方式,这样将不会再自动统计Activity。

   现在加入有这么一种情况,有一个Activity,这个Activity包含3个Fragment,现在想要统计Activity的session信息和各个Fragment的页面数据,如何做?

   ①在Activity的onCreate中调用:MobclickAgent.openActivityDurationTrack(false) 

   ②在Activity中调用:

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"); }

三、测试并查看测试数据

   点击我的产品,选择全部应用,点击添加新应用按钮(这里点击该按钮,不是真的为了添加新应用,而是为了进入测试环境,查看测试数据),如下图

点击查看链接,查看日志信息列表以及日志时间

其中最上面的一条是刚刚测试的数据,可点击进去查看一下


     可以看到页面路径日志信息,这些信息和自己定义的页面路径名称,以及时间长度都比较吻合。但是数据还是有点问题,因为数据不全,我操作的时间还操作了其它界面,但是却没有统计数据。经过反思了一下,找到了问题,因为页面统计默认是打开的,但是为了统计Fragment的时候关闭了,所以其它页面信息是统计不到的。

    解决办法:

  解释一下BaseActivity:自定义的所有页面的父类。

  管理Fragment的页面,不继承BaseActivity,而是继承FragmentActivtiy或者Activity,在该Activity的onCreate中停用默认的页面统计功能,并调用session统计方法。在Fragment中调用页面统计方法。在BaseActivity中启用默认的页面统计方法,这个是导致问题的根本原因。修改后重新查看统计数据如下:



四、统计多渠道数据原理

     只需修改配置信息里面的渠道信息即可。

  理解渠道包的概念:渠道不同、包名、证书等其它信息全部相同的包,成为渠道包,这种渠道包用于有分别的发布到不同的渠道上。
例如:如果发布的平台是google市场。修改信息如下:
  <!-- umeng -->        <meta-data            android:name="UMENG_APPKEY"            android:value="54992694fd98c509c6000777" >        </meta-data>        <meta-data            android:name="UMENG_CHANNEL"            android:value="GooglePlay" />        <!-- umeng -->
然后打包签名,发布到google play 上即可,友盟就可统计该渠道的数据。
这里的UMENG_CHANNEL的值没有固定写法,只需见名知意即可,googlepaly 、Google、Google_Play等都可以,这只是一个标识,这里写的是什么,后台统计渠道数据的时候,显示的就是什么。
     如果想要发布到安智市场上,只需修改渠道信息,重新打包签名即可,使用的还是之前的证书,然后发布到安智市场上即可。其它同理。这种包就是渠道包。
  <!-- umeng -->        <meta-data            android:name="UMENG_APPKEY"            android:value="54992694fd98c509c6000777" >        </meta-data>        <meta-data            android:name="UMENG_CHANNEL"            android:value="Anzhi" />        <!-- umeng -->















0 0