使用帮助 | 联系电话:400-880-0256 0769-23037585 21686281

在Android系统上使用Google Analytics API V4

作者:admin 发表于:2014-08-01 点击:1619  保护视力色:

New Relic和Verivo是现在移动领域的优秀者。New Relic是一款性能良好的监视工具。如果登陆进去,在你的名字上面会显示一个数据书呆子样式的T恤。Verivo是一款企业级的移动应用平台,它被设计成为特别简化了编译,安全和控制企业级应用。

对于Android平台的Google Analytics API V4,Google已经将其移动到了Google play Services,同时将EasyTracker类从中移除。但您能得到一个相对简单的“自动”跟中和小的消耗。下面我将介绍它的使用方法。

假设
* 您已经使用过Google Analytics v3 API EasyTracker 类,并且您想要做一个基本的迁移。
* 您想要建立一个基本的分析轨迹,那时候发送一个“Hit”当用户启动一个活动的时候。
* 您已经安装了最新的Google Play Services,并且运行在您的Android应用中。

让我们开始吧

因为您已经有Goolge Play Services类库在您的编译环境中,您的代码将可以使用所有帮助类(如何不能请点这里)。在Google Analytics API V4中,有一些帮助类和配置选项。它们能启动并且运行良好。但是我发现这个文档没有描述清楚,所以下面我将详细描述……

第一步

创建下面的global_tracker.xml配置文件,并将它放在您的Android应用程序的res/xml文件夹下。该文件将作为一个基本的全局配置被GoogleAnalytics使用。您需要为您的应用程序指导名称。注意,在这个文件中没有“Tracking ID”,它会在之后创建。ga_dryRun元素是用来打开或关闭发送给GoogleAnalytics的跟踪报告。为了防止debug数据混淆您可以使用这个设置。

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" <span style="line-height: 

1.5; font-style: inherit; font-weight: inherit;">tools:ignore="TypographyDashes"></span>

<!-- the Local LogLevel for 

Analytics -->
<string name="ga_logLevel">verbose</string>

<!-- how often the dispatcher should fire -->
<integer 

name="ga_dispatchPeriod">30</integer>

<!-- Treat events as test events and don't send to google -->
<bool 

name="ga_dryRun">false</bool>

<!-- The screen names that will appear in reports -->
<string 

name="com.mycompany.MyActivity">My Activity</string>
</resources>

第二步

添加第二个文件app_tracker.xml到相同的目录(res/xml)。在这个文件中有以下几点需要注意:改变ga_trackingId为he Google Analytics Tracking Id (您能得到该值通过分析控制台)。设置ga_autoActivityTracking为”true”是非常重要的-这会简化从您的代码中设置和发送跟踪点击。最后,确定使用您自己定义的名称,添加到您要跟踪的Activity中。

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" <span style="line-height: 

1.5; font-style: inherit; font-weight: inherit;">tools:ignore="TypographyDashes"></span>

<!-- The apps Analytics Tracking Id 

-->
<string name="ga_trackingId">UX-XXXXXXXX-X</string>

<!-- Percentage of events to include in reports -->
<string 

name="ga_sampleFrequency">100.0</string>

<!-- Enable automatic Activity measurement -->
<bool 

name="ga_autoActivityTracking">true</bool>

<!-- catch and report uncaught exceptions from the app -->
<bool 

name="ga_reportUncaughtExceptions">true</bool>

<!-- How long a session exists before giving up -->
<integer 

name="ga_sessionTimeout">-1</integer>

<!-- If ga_autoActivityTracking is enabled, an alternate screen name can be specified 

to
substitute for the full length canonical Activity name in screen view hit. In order to
specify an alternate screen name 

use an <screenName> element, with the name attribute
specifying the canonical name, and the value the alias to use instead. 

-->
<screenName name="com.mycompany.MyActivity">My Activity</screenName>

</resources>

第三步

最后配置修改您的AndroidManifest.xml文件,在application标签下添加下面的代码。使用res/xml/global_tracker.xml配置GoogleAnalytics类(单例类控制Tracker实例的创建)

<!-- Google Analytics Version v4 needs this value for easy tracking -->
<meta-data 

android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/global_tracker" />

所有的Xml文件配置完成。

第四步

现在我们可以添加(或者修改)您的应用程序的“Application”类,让它与我们引用的Activity包含相同的Trackers。

package com.mycompany;

import android.app.Application;

import com.google.android.gms.analytics.GoogleAnalytics;
import 

com.google.android.gms.analytics.Tracker;

import java.util.HashMap;

public class MyApplication extends Application {

// The 

following line should be changed to include the correct property id.
private static final String PROPERTY_ID = "UX-

XXXXXXXX-X";

//Logging TAG
private static final String TAG = "MyApp";

public static int GENERAL_TRACKER = 0;

public enum 

TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. 

eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}

HashMap<TrackerName, 

Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

public MyApplication() {
super();
}

synchronized Tracker getTracker

(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {

GoogleAnalytics analytics = GoogleAnalytics.getInstance

(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.app_tracker)
: (trackerId == 

TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(trackerId, t);

}
return mTrackers.get(trackerId);
}
}

第五步

最后,我们添加具体的hit代码到我们的Activity中。首先,导入com.google.android.gms.analytics类。GoogleAnalytics和初始化您的应用层tracker在onCreate方法中。在每个您想跟踪的activity中添加下面代码:

//Get a Tracker (should auto-report)
((MyApplication) getApplication()).getTracker(MyApplication.TrackerName.APP_TRACKER);

之后,在onStart方法中记录用户开始“Hit”。在每个您想跟踪的activity中添加下面代码:

//Get an Analytics tracker to report app starts & uncaught exceptions etc.
GoogleAnalytics.getInstance

(this).reportActivityStart(this);

接下来,记录发送停止hit结束用户活动在onStop方法中。在每个您想跟踪的activity中添加下面代码:

//Stop the analytics tracking
GoogleAnalytics.getInstance(this).reportActivityStop(this);

然后,如何您现在编译安装你的应用在您的设备上,设置 ga+logLevel为verbose和ga+dryRun为false。在logCat中,您能看见一些Google Analytics发送的log。

04-11 13:25:05.026 13287-13304/com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: connecting to Analytics service
04-11 

13:25:05.030 13287-13304/com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: connect: bindService returned false for 

Intent { act=com.google.android.gms.analytics.service.START cmp=com.google.android.gms/.analytics.service.AnalyticsService 

(has extras) }
04-11 13:25:05.030 13287-13304/com.mycompany.myapp W/GAV3? Thread[GAThread,5,main]: Service unavailable 

(code=1), will retry.
04-11 13:25:05.043 13287-13304/com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: Loaded clientId
04

-11 13:25:05.045 13287-13304/com.mycompany.myapp I/GAV3? Thread[GAThread,5,main]: No campaign data found.
04-11 13:25:05.045 

13287-13304/com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: Initialized GA Thread
04-11 13:25:05.067 13287-

13304/com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: putHit called
...
04-11 13:25:10.106 13287-

13304/com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: Dispatch running...
04-11 13:25:10.623 13287-

13304/com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: sent 1 of 1 hits

更好的是,当您登陆Google Analytics 控制台报告面板后,将看到实时的关注页面:
analytics

在Android系统上使用Google Analytics API V4,首发于博客 - 伯乐在线