在测试或开发时禁用Android App中的GoogleAnalytics

Mar*_*zzi 12 testing android analytics

我在我的Android应用程序中使用EasyTracker,当应用程序处于"开发"或"测试"模式时,我需要一种方法来禁用Google Analytics跟踪(我在常量文件中有一个标志来区分).

最好的方法是什么?

谢谢!

小智 15

我相信使用分析版本4执行此操作的正确方法是使用选择退出方法

GoogleAnalytics.getInstance(this).setAppOptOut(true);
Run Code Online (Sandbox Code Playgroud)

如果在调试模式下构建,则可以设置要设置的方法.即.

GoogleAnalytics.getInstance(this).setAppOptOut(BuildConfig.DEBUG);
Run Code Online (Sandbox Code Playgroud)

我正在使用类似的东西来允许用户选择退出分析.

我在以下链接中找到了此信息:https://developers.google.com/analytics/devguides/collection/android/v4/advanced

编辑:刚看到原始问题的日期,但我想我会添加这个答案,因为这是我正在寻找的东西.


Atu*_*yal 10

更新:随着AndroidGoogle Analytics v3的发布,

SDK提供了一个dryRun标记,该标记在设置时会阻止将任何数据发送到Google Analytics.每当您测试或调试实施时,都应设置dryRun标志,并且不希望测试数据显示在您的Google Analytics报告中.

设置空运行标志:

//当设置了空运行时,不会调度命中,但仍会记录命中,就好像它们已被调度一样.

GoogeAnalytics.getInstance(本).setDryRun(真);

+++我的旧答案+++

analytics.xml在开发模式下,只需在文件中注释以下行.

<string name="ga_trackingId">UA-****</string>
Run Code Online (Sandbox Code Playgroud)

Google Analytics(分析)无法找到任何跟踪ID,因此EasyTracker将无法完成其工作.当您构建要发布的应用程序时,取消注释该行,您就可以开始了.

  • 我很好奇,你能用`EasyTracker`设置`dryRun`标志吗? (2认同)

Nim*_*van 5

如果您正在构建一个独立的应用程序(而不是库),这将是最简单的方法,让构建系统弄清楚它是否是一个调试版本.

if(BuildConfig.DEBUG){
    GoogleAnalytics.getInstance(this).setDryRun(true);
}
Run Code Online (Sandbox Code Playgroud)

我在网上看到这种方法对于库项目不起作用,因为构建工具中存在错误,它没有BuildConfig.DEBUG为库正确设置标记.不确定此问题现在是否已解决.


Iul*_*rbu 3

您可以使用具有静态布尔值的类,让我们这样进行调试:

public final class BuildMode {
        public final static boolean DEBUG = true;
}
Run Code Online (Sandbox Code Playgroud)

在代码中,只需使用:

if (BuildMode.DEBUG) ...
Run Code Online (Sandbox Code Playgroud)

这是一个适用于所有 Android SDK 版本的解决方案!