使用适用于Android的Google Analytics API v4

对于适用于Android的Google Analytics(分析)API的第4版,Google已将其实现转移到Google Play服务中。 作为此举的一部分,EasyTracker类已被删除,但是仍然可以毫不费力地启动并运行一个相当简单的“自动” Tracker。 在这篇文章中,我将向您展示如何。

假设:
  • 您已经在使用Google Analytics v3 API EasyTracker类,并且只想进行基本迁移到v4 –或–
  • 您只想设置一个基本的分析跟踪程序,该跟踪程序在用户开始活动时发送一个匹配
  • 您已经在Android应用中启动并运行了最新的Google Play服务

让我们开始吧。

由于您的版本中已经包含Google Play服务库,因此所有必需的帮助程序类都已对您的代码可用(如果在此处看不到)。 在第4版中,Google Analytics(分析)API具有许多帮助程序类和配置选项,这些类和配置选项可以使启动和运行变得相当简单,但是我发现文档有点不清楚,因此,该怎么做……

第1步。

创建以下global_tracker.xml配置文件,并将其添加到您的android应用程序的res / xml文件夹中。 GoogleAnalytics类将使用它作为基本的全局配置。 您需要为您的应用程序自定义屏幕名称。 请注意,此文件中没有“ Tracking ID”(跟踪ID)–稍后会出现。 值得注意的是ga_dryRun元素,用于打开或关闭向Google Analytics(分析)发送跟踪报告。 您可以在调试中使用此设置,以防止实时数据和调试数据混淆。

<?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>

第2步。

现在,将第二个文件“ app_tracker.xml ”添加到相同的文件夹位置( res / xml )。 该文件中有一些注意事项。 您应该将ga_trackingId更改为您的应用的Google Analytics(分析)跟踪ID(您可以从分析控制台中获取)。 将ga_autoActivityTracking设置为“ true”对本教程很重要-这使从代码中设置和发送跟踪匹配变得更加简单。 最后,请确保自定义屏幕名称,为每个要添加跟踪代码的活动添加一个。

<?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>

第三步

最后在配置方面,通过在'application'元素中添加以下行来修改AndroidManifest.xml。 这会使用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配置。

步骤4。

现在,我们可以添加(或修改)应用程序的“ Application”类,以便它包含一些可从我们的活动中引用的Tracker。

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

忽略ECOMMERCE_TRACKER或在res / xml中创建一个名为ecommerce_tracker.xml的xml文件进行配置。 我将其保留在代码中只是为了展示它可能有除APP和GLOBAL之外的其他跟踪器。 在中的ecommerce_tracker中有一个示例xml配置文件 \ extras \ google \ google_play_services \ samples \ analytics \ res \ xml,但它只包含前面讨论的tracking_id属性。

第五步

最后,我们现在可以将一些实际的匹配跟踪代码添加到我们的活动中。 首先,导入com.google.android.gms.analytics.GoogleAnalytics类,并在您的活动onCreate()方法中初始化应用程序级别跟踪器。 在您要跟踪的每个活动中执行此操作。

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

然后,在onStart()中,在活动启动时记录用户对分析的开始“点击”​​。 在您要跟踪的每个活动中执行此操作。

//Get an Analytics tracker to report app starts & uncaught exceptions etc.
GoogleAnalytics.getInstance(this).reportActivityStart(this);

最后,通过在我们的Activity的onStop()方法中向分析发送停止命中来记录用户活动的结束。 在您要跟踪的每个活动中执行此操作。

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

最后...

如果您现在在设备上编译并安装应用程序并启动它,并假设将ga_logLevel设置为verbose并将ga_dryRun设置为false,则在logCat中,您应该会看到以下一些日志行,确认您的匹配已发送到Google Analytics(分析)。

com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: connecting to Analytics service
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) }
com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: Loaded clientId
com.mycompany.myapp I/GAV3? Thread[GAThread,5,main]: No campaign data found.
com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: Initialized GA Thread
com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: putHit called
...
com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: Dispatch running...
com.mycompany.myapp V/GAV3? Thread[GAThread,5,main]: sent 1 of 1 hits

更好的是,如果您登录到Google Analytics(分析)控制台的报告信息中心,则在“实时–概述”页面上,您甚至可能会注意到以下内容…

Google Analytics(分析)实时概述页面

Google Analytics(分析)实时概述页面

翻译自: https://www.javacodegeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值