Google 分析在 setAppOptOut(true) 之前不发送事件
Google analytics doesn't send event before setAppOptOut(true)
我尝试在 android 中禁用 Google 分析之前发送一个事件。但是,该事件没有显示在实时 GA 控制台中。
tracker.send(new HitBuilders.EventBuilder()
.setCategory(category)
.setAction(action)
.setLabel(label)
.build());
//disable GA
GoogleAnalytics.getInstance(this).setAppOptOut(true);
感谢任何建议。
如果启用 Google Analytics 日志记录,您可以看到当您调用 setAppOptOut(true) 时 Google Analytics 将清除自上次向 Google Analytics 发送点击后排队的所有点击服务器:
V/GAV4﹕ Thread[GAThread,5,main]: clearHits called
如您所见,dispatchLocalHits()
没有帮助,因为它 does nothing with Google Play Services installed。您需要做的是等待调用 setAppOptOut(true)
直到您的点击被发送。然而,由于您不知道匹配项何时发送,因此这并非易事。
您可以使用 ga_dispatchPeriod
设置指定您的应用程序应具有的调度周期(默认值为 30 分钟)。如果您等待的时间超过配置的发送周期,您应该相当确定您的事件已经发送,但是这不能保证,因为如果您此时没有任何网络连接,GA 可能会等待更长时间发送数据。
如果您采用这种方法,您必须确保等待跨会话有效,因为 GooglePlay 服务是设备上的一项单独服务,即使您重新启动应用程序,它也会保留您的点击.因此,在您的应用下次启动时选择退出也不会起作用。
然而,选择退出等待超过 30 分钟对您的用户来说可能不是很好,因为在用户认为他们已经选择退出后,这会为收集和提交数据提供大量时间。
更好的方法可能是拥有自己的内部 Google 分析包装器 class,应用程序的所有部分都会调用它来报告数据。然后每个报告方法都可以检查 Google 分析是否已启用,永远不要调用任何真正的 Google 分析方法。
通过这种方式,您可以确保将最终事件发送到 Google Analytics,而之后不会再发送任何事件,即使您没有调用 setAppOptOut(true)
。
请注意,这仅在您不依赖任何自动跟踪时才有效,例如 automatic reporting of uncaught exceptions or automatic screen measurement。
我尝试在 android 中禁用 Google 分析之前发送一个事件。但是,该事件没有显示在实时 GA 控制台中。
tracker.send(new HitBuilders.EventBuilder()
.setCategory(category)
.setAction(action)
.setLabel(label)
.build());
//disable GA
GoogleAnalytics.getInstance(this).setAppOptOut(true);
感谢任何建议。
如果启用 Google Analytics 日志记录,您可以看到当您调用 setAppOptOut(true) 时 Google Analytics 将清除自上次向 Google Analytics 发送点击后排队的所有点击服务器:
V/GAV4﹕ Thread[GAThread,5,main]: clearHits called
如您所见,dispatchLocalHits()
没有帮助,因为它 does nothing with Google Play Services installed。您需要做的是等待调用 setAppOptOut(true)
直到您的点击被发送。然而,由于您不知道匹配项何时发送,因此这并非易事。
您可以使用 ga_dispatchPeriod
设置指定您的应用程序应具有的调度周期(默认值为 30 分钟)。如果您等待的时间超过配置的发送周期,您应该相当确定您的事件已经发送,但是这不能保证,因为如果您此时没有任何网络连接,GA 可能会等待更长时间发送数据。
如果您采用这种方法,您必须确保等待跨会话有效,因为 GooglePlay 服务是设备上的一项单独服务,即使您重新启动应用程序,它也会保留您的点击.因此,在您的应用下次启动时选择退出也不会起作用。
然而,选择退出等待超过 30 分钟对您的用户来说可能不是很好,因为在用户认为他们已经选择退出后,这会为收集和提交数据提供大量时间。
更好的方法可能是拥有自己的内部 Google 分析包装器 class,应用程序的所有部分都会调用它来报告数据。然后每个报告方法都可以检查 Google 分析是否已启用,永远不要调用任何真正的 Google 分析方法。
通过这种方式,您可以确保将最终事件发送到 Google Analytics,而之后不会再发送任何事件,即使您没有调用 setAppOptOut(true)
。
请注意,这仅在您不依赖任何自动跟踪时才有效,例如 automatic reporting of uncaught exceptions or automatic screen measurement。