在实时 运行 期间禁用 google 分析跟踪

Disable google analytics tracking during live run

根据 Google 分析的条款,您需要为用户提供选择退出跟踪的选项。但我觉得,关于如何做到这一点的文档并不是很清楚。这是我目前得到的。

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = analytics.newTracker(R.xml.tracker);
t.enableAdvertisingIdCollection(false);
t.enableAutoActivityTracking(false);
t.enableExceptionReporting(false);

这会禁用包括此类事件在内的所有跟踪吗?

t.send(new HitBuilders.EventBuilder()
    .setCategory("category")
    .setAction("test")
    .setLabel("label")
.build());

如果不是,我如何在 运行 期间在用户设备上完全禁用跟踪?

您可以设置 SharedPreference 设置,如果用户选择退出 Analytics 跟踪,您不会发送 Analytics 更新。

您需要使用GoogleAnalytics.getInstance(this).setAppOptOut(true);

在 Google Analytics 文档 (1) 中,有一个具有共享首选项的简单示例。

SharedPreferences userPrefs = PreferenceManager.getDefaultSharedPreferences(this);

userPrefs.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener () {

  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    if (key.equals(TRACKING_PREF_KEY)) {
      GoogleAnalytics.getInstance(getApplicationContext()).setAppOptOut(sharedPreferences.getBoolean(key, false));
    } else {
      // Any additional changed preference handling.
    }
  }
});

注意:这与在测试/开发期间禁用 Google 分析不同。如果您的目标是在 test/development 期间禁用,请使用 (2)

GoogeAnalytics.getInstance(this).setDryRun(true);