Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌分析没有';SetAppOut之前未发送事件(true)_Android_Google Analytics_Google Analytics Api_Google Analytics Sdk - Fatal编程技术网

Android 谷歌分析没有';SetAppOut之前未发送事件(true)

Android 谷歌分析没有';SetAppOut之前未发送事件(true),android,google-analytics,google-analytics-api,google-analytics-sdk,Android,Google Analytics,Google Analytics Api,Google Analytics Sdk,我试图在android中禁用谷歌分析之前发送一个事件。但是,该事件不会显示在实时GA控制台中 tracker.send(new HitBuilders.EventBuilder() .setCategory(category) .setAction(action) .setLabel(label) .build()); /

我试图在android中禁用谷歌分析之前发送一个事件。但是,该事件不会显示在实时GA控制台中

    tracker.send(new HitBuilders.EventBuilder()
                    .setCategory(category)
                    .setAction(action)
                    .setLabel(label)
                    .build());
    //disable GA
    GoogleAnalytics.getInstance(this).setAppOptOut(true);

感谢您的建议。

如果启用Google Analytics日志,您可以看到,当您调用setAppOut(true)时,Google Analytics将清除自上次将点击发送到Google Analytics服务器以来的所有排队点击:

V/GAV4﹕ Thread[GAThread,5,main]: clearHits called
正如您所注意到的那样,
dispatchLocalHits()
没有帮助,因为它是。您需要做的是等待调用
setAppOptOut(true)
,直到发送点击之后。然而,由于您不知道何时发送点击,这不是一件容易的事情

您可以使用该设置指定应用程序应有的调度周期(默认值为30分钟)。如果您等待的时间超过配置的调度周期,您应该相当确定您的事件已经发送,但是这不能保证,因为如果您目前没有任何网络连接,GA可能会等待更长的时间发送数据

如果你想采用这种方法,你必须确保等待在会话间有效,因为Google Play services是设备上的一项独立服务,即使你重新启动应用程序,它也会保留你的点击。因此,选择退出下一次应用程序启动也不会起作用

但是,等待选择退出超过30分钟可能对您的用户不太好,因为这会给用户在认为他们选择退出后收集和提交数据提供大量时间

更好的方法可能是拥有自己的内部Google Analytics包装类,应用程序的所有部分都调用该类来报告数据。然后,每个报告方法都可以检查是否启用了Google Analytics,永远不要调用任何真正的Google Analytics方法

通过这种方式,您可以确保您的最终事件被发送到Google Analytics,而之后不会再发送任何事件,即使您没有调用
setAppOut(true)


请注意,只有在不依赖任何自动跟踪(如或)的情况下,此功能才有效。

实时控制台至少在60-90分钟后显示事件secs@diva是的,我知道,我测试了很多,可能有soem其他问题,可能是网络或GAI的Id不认为有网络问题,因为只有这种方法不会出现。应用程序中的其他分析流(setAppOptOut(true)之前未进行事件跟踪)工作正常。哎呀,api基本上取消了GA跟踪感谢您的回复。但是,我已经实现了自己的包装器类来管理Ga事件。我们无法控制调度真的很奇怪我注意到你在聊天中自己解决了这个问题,但我想我会给其他有同样问题的人留下一个答案,他们将来会发现这个问题。