本指南介绍了如何将 Google Analytics(分析)添加到您的 Android 应用以衡量用户在已命名屏幕上的活动。如果您目前没有应用,而是仅仅想了解一下 Google Analytics(分析)的工作原理,请参阅我们的示例应用。
必需:最新版 Android Studio 和 Google Play 服务
设置项目
更新您项目的 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();
替换为合适的方法,例如使用 onResume
来跟踪 Activity
或者使用 onPageSelected
来跟踪 ViewPager
,以记录屏幕切换情况。
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());