Google Analytics 基础使用小记
正在学习 Udacity 的 Android 进阶课程,上上周学到了 Google Analytics 工具的使用,做了点笔记,正好决定开通简书写写博客,就当作第一篇了。之前 Google I/O 大会发布了可以说是专为移动 App 打造的 Firebase,奈何其大部分的功能都要配合 Google play service 才能使用,所以学习顺位无限延后。
正好 Udacity 的课程学到了 Google Analytics 的使用,而且 GA 在国内大部分的服务都处于可用状态,试用了下效果还不错,只是去后台查看数据需要*。
遂于是将基本用法记录在这里备查。
先附上两张 GA 数据后台截图。
特别注意:GA 控制台默认显示的日期范围是之前某天到昨天,不包括今天,要显示今天需要手动调整
基础用法
1. 设置权限
GA 至少需要 INTERNET 和 ACCESS_NETWORK_STATE 两项权限。
2. 添加跟踪器配置文件
新建res/xml/ga_tracker_config.xml
文件(文件名随意),将该文件作为跟踪器配置文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--trackingId 必须-->
<string name="ga_trackingId">UA-107729471-1</string>
<!--设置是否自动追踪-->
<bool name="ga_autoActivityTracking">true</bool>
<!--设置 Activity 对应的显示在 GA 后台的名称代号,非必需-->
<screenName name="com.example.android.dinnerapp.ShowDinnerActivity">Show Dinner</screenName>
</resources>
更多更详细的参数可参考 Configuration Parameters 页面。
3. 编写获取 Tracker 的代码
为了保证同一时间只有一个 tracker 在运行(有多个 tracker,发送统计数据的时候可能会发送多次,导致数据不准确),需要将 tracker 加入到 Application 中,在应用程序运行时获取 tracker 实例。
public class MyApplication extends Application {
public Tracker mTracker;
public void startTracking() {
if (mTracker == null) {
GoogleAnalytics ga = GoogleAnalytics.getInstance(this);
mTracker = ga.newTracker(R.xml.ga_tracker_config);
ga.enableAutoActivityReports(this);
//此行是显示 ga log 在 Android Monitor 中,可以直接在 log 窗口查看 Tracker 发送的内容,过滤关键字为`sending hit`。
ga.getLogger().setLogLevel(Logger.LogLevel.VERBOSE);
}
}
public Tracker getTracker() {
startTracking();
return mTracker;
}
}
4. 开始进行跟踪
获取Tracker
实例,并开始跟踪:在MainActivity
的onCreate()
方法中调用startTracking()
代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((MyApplication) getApplication()).startTracking();
}
进阶应用
1. 只发送特定的 Activity 点击数
由于 GA 有配额限制,所以最理想的情况是我们只跟踪我们想要跟踪的内容,而不是跟踪用户的一切操作。
- 首先,在配置文件里将
ga_autoActivityTracking
设置为false
,这样就不会自动跟踪所有的 Activity 了。 - 然后在需要跟踪的 Activity 的
onStart()
方法中,写入如下代码:
protected void onStart() {
super.onStart();
//获取 Tracker
Tracker tracker = ((MyApplication) getApplication()).getTracker();
//设置本 Activity 标签
tracker.setScreenName("Show recipe");
//发送跟踪的 Screen View
tracker.send(new HitBuilders.ScreenViewBuilder().build());
}
注意:MainActivity 里的startTracking
方法不能漏了。
2. 点击事件跟踪(Action)
比如发送点击事件,需要在点击事件代码中加入以下代码:
//获取 tracker 实例
Tracker tracker = ((MyApplication) getApplication()).getTracker();
//发送新构建的 Action
tracker.send(new HitBuilders.EventBuilder()
//设置事件类别标签
.setCategory("Dinner Action")
//设置具体操作标签
.setAction("Remove meal")
//设置操作对象标签
.setLabel(mDinner)
.build());
3. 设置目标转化
这个功能需要在 GA 后台设置,在管理>>目标>>新目标
中可设置目标转化,用户达成特定的操作,比如翻阅了几个 Activity,在某个 Activity 停留的时长达到一定标准,进行了各种事件等等,达成这些操作后,会在后台有相应的显示,便于开发者进行转化率统计。
注意:目标需要统计目标设置的相关操作,因此相应的操作需要发送数据给 GA,需要注意相应的操作代码中有没有集成 GA 事件统计代码。
4. 跟踪用户购买商品的过程(查看>>添加到购物车>>付款)
首先要在管理>>电子商务设置
中启动电子商务和增强型电子商务报告。
这种跟踪由两个类Product
和ProductAction
完成:
- Product:定义某个产品
Product mProduct = new Product()
.setName("product name")
.setPrice(5)
.setVariant("variant")
.setId("id")
.setQuantity(50);
- ProductAction:定义用户如何处理产品,有加入购物车,付款,查看商品详情等行为可选
ProductAction mProductAction = new ProductAction(ProductAction.ACTION_ADD);
创建Product
和ProductAction
实例后,获取Tracker
实例,然后将它们发送给 GA 后台:
//获取 tracker 实例
Tracker tracker = ((MyApplication) getApplication()).getTracker();
//发送新构建的 Action
tracker.send(new HitBuilders.EventBuilder()
.setCategory("Dinner)
.setAction("action")
.setLabel(mDinner)
.addProduct(mProduct)
.setProductAction(mProductAction)
.setVariable(string)
.build());
注意:是在 send 阶段才将特定的Product
和对应的ProductAction
实例关联起来,而不是创建的时候。
用户浏览商品,将商品加入购物车,结帐时,采用如上操作即可。但发生交易行为时,需要给ProductAction
额外设置transactionId
,该 ID 必须是唯一的。
ProductAction
还能设置一系列的操作,比如在结帐时,真正付款前,用户会有查看地址,查看账单,查看购物车商品列表等一系列操作,可以在 GA 后台管理>>电子商务设置>>标记结帐步骤
中设置一系列的操作步骤,然后在ProductAction
中将ProductAction
设置为ACTION_CHECKOUT_OPTION
,然后设置结帐步骤checkoutStep(step)
即可,step
为 GA 后台设置的对应步骤编号。
5. 统计应用内各页面或功能运行的时间
该功能可以用来优化应用,需要开发者自己的应用内计算操作所需的时间,然后将时间发送到 GA,而不是由 GA 来计算,GA 只负责显示并统计。
//获取 tracker 实例
Tracker tracker = ((MyApplication) getApplication()).getTracker();
//发送新构建的 Action
tracker.send(new HitBuilders.TimingBuilder()
.setCategory("Dinner)
.setLabel(mDinner)
.setValue(long time)
.setVariable(string)
.build());
6. 进行崩溃和异常跟踪
对于捕获的异常:
tracker.send(new HitBuilders.ExceptionBuilder()
.setDescription(description)
.setFatal(true)
.build());
对于未捕获异常,可以设置自动跟踪,在Tracker配置文件中如下设置:
<bool name="ga_reportUncaughtExceptions">true</bool>
推荐阅读
-
Google Analytics 基础使用小记
-
站长必须掌握的五个Google Analytics使用窍门
-
TODO:Google Analytics简单使用
-
TODO:Google Analytics简单使用
-
将Google Analytics API v3与PHP结合使用:获取数据
-
将Google Analytics(分析)API与PHP结合使用:登录
-
Titanium Mobile中使用Google Analytics
-
使用Google Analytics来统计手机网站的流量
-
使用Google Analytics来统计手机网站的流量
-
站长必须掌握的五个Google Analytics使用窍门