高级配置 - Android SDK v2(旧版)

本文档将大略介绍 Android 版 Google Analytics(分析)SDK v2 的高级配置功能。

概览

Android 版 Google Analytics(分析)SDK 使用两个类来管理实现的全局状态并将数据发送到 Google Analytics(分析)服务器。EasyTracker 封装了这些类,以提供简化的配置和会话管理:

  • GoogleAnalytics - 一个单例,用于处理实现的全局状态,包括获取 Tracker 对象。
  • Tracker - 用于向 Google Analytics(分析)发送数据的类。

例如,要衡量简单 Activity 的视图,请使用以下代码:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private Tracker mGaTracker;
  private GoogleAnalytics mGaInstance;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton. Note that the SDK uses
    // the application context to avoid leaking the current context.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get a Tracker.
    mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID.
    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view when the Activity is displayed to the user.
    mGaTracker.sendView("/HomeScreen");
  }
}

使用多个跟踪器

自 SDK 版本 2 起,您可以在单个实现中使用多个跟踪器,每个跟踪 ID 一个。所有跟踪器都共享由您的 GoogleAnalytics 单例持有的同一全局状态。

在下面的示例中,系统会使用两个跟踪器(每个跟踪器都有自己唯一的媒体资源 ID),将一个屏幕视图发送到两个单独的媒体资源中:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private GoogleAnalytics mGaInstance;
  private Tracker mGaTracker1;
  private Tracker mGaTracker2;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get two Trackers with
    // unique property IDs.
    mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y");
    mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z");

    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user.
    mGaTracker1.sendView("/HomeScreen");

    // Send another screen view to the second property, "UA-XXXX-Z".
    mGaTracker2.sendView("/Home");
  }
}

请注意,EasyTracker 提供的自动衡量功能仅使用默认跟踪器进行调用。如果您正在使用这些 EasyTracker 功能并想要使用其他跟踪器发送数据,则需要手动发送。

默认跟踪器

虽然一个实现可能会使用多个跟踪器,但其在全局范围内只有一个默认跟踪器。检索到的第一个 Tracker 将成为默认跟踪器。

要获取默认跟踪器,请使用以下命令:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get default tracker.
Tracker myDefault = myInstance.getDefaultTracker();

如需设置默认跟踪器,请使用:

// First get a tracker using a new property ID.
Tracker newTracker = myInstance.getTracker("UA-XXXX-2");

// Then make newTracker the default tracker globally.
myInstance.setDefaultTracker(newTracker);

调度

调度设置由 GAServiceManager 单例管理。如需设置调度时间段,请执行以下操作:

// Set dispatch period to 30 seconds.
GAServiceManager.getInstance().setDispatchPeriod(30);

如需在计划间隔之外手动调度,请执行以下操作:

// Manually dispatch any queued hits.
GAServiceManager.getInstance().dispatch();

采样

您可以启用客户端抽样,以限制向 Google Analytics(分析)发送的匹配数量。如果您的应用有大量用户,或因其他原因而向 Google Analytics(分析)发送大量数据,则启用抽样有助于确保报告不发生中断。

例如,要通过 EasyTracker 和 XML 以 50% 的速率启用客户端采样,请在 analytics.xml 文件中使用以下参数:

<string name="ga_sampleFrequency">50.0</string>

您还可以以编程方式启用客户端采样:

// Get tracker from singleton.
GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this);
Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID.

// Set a sample rate of 50%.
tracker.setSampleRate(50.0d);

应用级选择停用

您可以启用应用级选择停用标志,该标志将在整个应用中停用 Google Analytics(分析)。设置后,该标志将在整个应用的生命周期或重置前持续有效。

要获取应用级选择停用设置,请使用:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get the app opt out preference using an AppOptOutCallback.
myInstance.requestAppOptOut(new AppOptOutCallback() {
   @Override
   public void reportAppOptOut(boolean optOut) {
     if (optOut) {
     ... // Alert the user that they've opted out.
     }
   });
}

如需设置应用级选择停用标志,请使用以下命令:

myInstance.setAppOptOut(appPreferences.userOptOut);

测试和调试

Android 版 Google Analytics(分析)SDK 提供了一种调试模式,该模式会输出有关日志中发送到 Google Analytics(分析)的数据的有用信息。

如需使用 EasyTracker 启用调试模式,请将以下代码添加到 analytics.xml 资源文件中:

<bool name="ga_debug">true</bool>

如需以编程方式启用调试模式,请使用以下命令:

// Get singleton using application context.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Enable debug mode.
myInstance.setDebug(true);

系统会使用 GAV2 标记将输出输出到 logcat