本指南介绍了如何将 Analytics 添加到您的 Android 应用以衡量用户在已命名屏幕上的活动。如果您还没有应用,只是想了解一下 Analytics(分析)的工作原理,请查看我们的示例应用。
必需:最新版:
设置项目
更新项目的 AndroidManifest.xml
文件,以包含 INTERNET
和 ACCESS_NETWORK_STATE
权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.analytics">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application android:name="AnalyticsApplication">
...
</application>
</manifest>
将以下依赖项添加到项目级 build.gradle
中:
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
将以下 Google Play 服务依赖项添加到 app/build.gradle
:
dependencies {
// ...
compile 'com.google.android.gms:play-services-analytics:10.2.4'
}
创建 global_tracker.xml
创建包含以下内容的 app/src/res/xml/global_tracker.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_trackingId" translatable="false">${YOUR_TRACKING_ID}</string>
</resources>
将 ${YOUR_TRACKING_ID}
替换为您的跟踪 ID。
添加屏幕跟踪
每当用户在您的应用中打开或更改屏幕时,您都需要向 Google Analytics(分析)发送已命名的屏幕视图。您的代码应执行以下操作:
- 通过 Application 子类提供共享的跟踪器。
- 替换前台活动的回调方法。
- 为屏幕提供名称并执行跟踪。
应用
您应该将 Application
子类化,并提供一个会返回应用跟踪器的辅助方法。</>
/*
* Copyright Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.samples.quickstart.analytics;
import android.app.Application;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
/**
* 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 static GoogleAnalytics sAnalytics;
private static Tracker sTracker;
@Override
public void onCreate() {
super.onCreate();
sAnalytics = GoogleAnalytics.getInstance(this);
}
/**
* Gets the default {@link Tracker} for this {@link Application}.
* @return tracker
*/
synchronized public Tracker getDefaultTracker() {
// To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
if (sTracker == null) {
sTracker = sAnalytics.newTracker(R.xml.global_tracker);
}
return sTracker;
}
}
Activity 或 Fragment
打开您要跟踪的 Activity。您还可以跟踪 Fragment
,但要确保它正确表示屏幕浏览。
替换您要跟踪的 Activity
或 Fragment
的 onCreate
方法,以获取共享 Tracker
实例:
// Obtain the shared Tracker instance.
AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();
替换相应的方法,例如针对 Activity
的 onResume
或 ViewPager
的 onPageSelected
,以便在屏幕发生更改时记录。
Log.i(TAG, "Setting screen name: " + name);
mTracker.setScreenName("Image~" + name);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());
为代表屏幕的每个 Activity
或 Fragment
添加跟踪代码。如果您想在 Google Analytics(分析)中区分您应用的屏幕浏览量,请务必在每个 Activity
或 Fragment
内设置一个名称。记录在共享跟踪器上的所有活动都会发送最新的屏幕名称,直到被替换或清除(设置为 null
)。
发送事件
要发送事件,请在跟踪器上设置屏幕字段值,然后发送命中。
以下示例使用 HitBuilders.EventBuilder
发送 Event
:
mTracker.send(new HitBuilders.EventBuilder()
.setCategory("Action")
.setAction("Share")
.build());