Android 用户行为收集之 GoogleAnalytics

这段时间因公司项目需要加入用户行为收集这一块,首先第一个想到是友盟(umeng),因为umeng在我国应用很广泛,再加上它确实简单免费,开发文档超详细,所以高高兴兴就准备开始了。可是,可是…..哥们儿的公司做的是国外的产品,这下不好办了,因为umeng服务器在国内啊,这样传数据不仅会丢包,而且安全性也不高,最后索性直接问问umeng吧,就和umeng进行了交流,的确人家国外暂时没服务器,说是有一个内测版的skd可以先体验体验,地址见这里:umeng海外统计链接
可是哥们儿不能把公司的产品当做umeng的试验品啊,还是算了啊,最后想到既然是国外,索性就用国外的服务吧。经过两天的摸索,看了好几家,最后决定在Yahoo 的Flurry 和 GoogleAnalytics中选择一个,鉴于哥们儿这英文水平还有一些其它因素,最后决定用GoogleAnalytics。
好,废话不说了,直接开始


首先直接在Google中直接搜GoogleAnalytics,一般第一个就是的,进去主界面后,就可是找文档吧,可是找了好大半天也没找见,最后还是在一个小角落找到了(可能我太笨了吧)。见图:

这里写图片描述


在这里有个学习资源,点进去后找到GoogleDeveloper这一项

这里写图片描述


这个就是我们要的开发文档了。

这里写图片描述


是不是觉得很情切,中文版的。

在这里我们按照文档说明的往下写就行了,

一,在我们的AndroidManifest中添加权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

二,在build.gradle中添加项目依赖,以及google-service插件

(1)在项目的build.gradle中添加(不是app)

classpath 'com.google.gms:google-services:3.0.0'

(2)将此插件添加到应用级 build.gradle 的底部

apply plugin: 'com.google.gms.google-services'

(3)在app的build.gradle中添加

compile 'com.google.android.gms:play-services-analytics:9.2.0'
注:文档中提醒用最新的Android studio和google-service,我试着按文中的配置来可是一直依赖失败本人使用的为(目前一切功能均可正常使用)
    compile 'com.google.android.gms:play-services-analytics:7.3.0'
    classpath 'com.google.gms:google-services:1.3.0'

三,在代码中设置跟踪

至于在文档中提到的获取配置文件google-service.json以及将文件添加到项目中,经过本人的实验,其实并没有卵用。

1在我们的application中进行配置
/**
 * This is a subclass of {@link Application} used to provide shared objects for this app, such as
 * the {@link Tracker}.
 */
public class AnalyticsApplication extends Application {
  private Tracker mTracker;

  /**
   * Gets the default {@link Tracker} for this {@link Application}.
   * @return tracker
   */
  synchronized public Tracker getDefaultTracker() {
    if (mTracker == null) {
      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
      mTracker = analytics.newTracker(R.xml.global_tracker);
    }
    return mTracker;
  }
}

这是文档中给出的代码,这里在获取Tracker对象时,使用了:

       mTracker = analytics.newTracker(R.xml.global_tracker);

其中xml文件为我们需要写的一些属性:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="ga_trackingId">UA-66283842-1</string>

    <!-- 每次用户启动Activity时自动跟踪屏幕浏览量。默认值为false。 -->
    <bool name="ga_autoActivityTracking">true</bool>

    <!-- 每次您的应用中出现未捕获的异常时,自动对其进行跟踪。默认值为false。 -->
    <bool name="ga_reportUncaughtExceptions">true</bool>

    <!-- SDK日志记录器的详细程度。从最简略到最详细的有效值分别为:error、warning、info、verbose。日志级别默认设置为warning。 -->
    <string name="ga_logLevel">warning</string>

    <!-- 数据发送间隔,以秒为单位。默认值为30分钟。 -->
    <integer name="ga_dispatchPeriod">20</integer>

    <!-- 要使用的抽样率。默认值为100.0。可以是0.0和100.0之间的任何值。 -->
    <string name="ga_sampleFrequency">100.0</string>

    <!-- 您的应用在会话结束前可在后台停留的时间(以秒为单位)。默认值为30秒。将此值设为负值即可停用EasyTracker会话管理。 -->
    <integer name="ga_sessionTimeout">30</integer>

</resources>

还有一种方法就是将这些属性写到代码中。

  sAnalytics = GoogleAnalytics.getInstance(this);
        //  The dispatching period in seconds when Google Play services is unavailable. The default period is 1800 seconds or 30 minutes
        // sAnalytics.setLocalDispatchPeriod(1800);
        tracker = sAnalytics.newTracker("UA-93805582-2");

        // tracker.enableAdvertisingIdCollection(false); // 广告收集
        // tracker.enableExceptionReporting(true);   // 当应用中有未被捕获的异常时自动对其进行捕获收集

        tracker.enableAutoActivityTracking(true);   // 每次用户启动Activity时自动跟踪屏幕浏览量
2,添加屏幕跟踪
Log.i(TAG, "Setting screen name: " + name);
mTracker.setScreenName("Image~" + name);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());

我们可以像文档中这样,前面在application中设置了enableAutoActivityTracking(true),这个方法就是自动跟踪我们的activity,所以,如果在application中初始化了tracker对象,并设置了他的属性,那么我们在activity中是不需要添加的,唯一要添加的就是在fragment中和viewpager中添加。

在这里有些读者可能会在以下这两个方法中困惑

@Override
    public void onStart() {
        super.onStart();
        mTracker. reportActivityStart (this);
    }

    @Override
    public void onStop() {
        super.onStop();
        mTracker. reportActivityStop (this);
    }

其实在API14之前使用这两方法的,但在14后,他们就被.enableAutoActivityTracking(true)给替代了。所以说他们的效果只一样的。

那么要追踪fragment和viewpager,只需按文档中说的那样做就行。

3添加事件Event跟踪

事件的跟踪就好比我们的点击事件了,还有做了哪些需要我们关心的动作,我们都可以记录下来。
以点击事件为例:

pageviewButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
         mTracker.send(
                new HitBuilders.EventBuilder()  
                        .setCategory(category)  // 事件类型  String  必须有
                        .setAction(action)      // 动作     String  必须有
                        .setLabel(lable)        // 标签     String  可有可无
                        .setValue(value)        // 值       Long    可有可无
                        .build()
        );
      }
    });

上面就是我们需要做的,一般这些就差不多了,还有什么广告功能,异常崩溃捕捉了,有兴趣的自己去看看。都挺简单的。还有一些基础功能,就是不用代码实现,就可以统计的一些

用户量统计(活跃用户,每天,每月等),位置,手机型号(包括分辨率,品牌,操作系统等),语言,国家,应用版本等。

最后在上几张统计的图吧

与用户相关

用户相关


用户行为流

这里写图片描述


事件

这里写图片描述


最后写的不好,大神勿喷,有错误或不足之处请指正,共同进步。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值