本文档将大略介绍 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。