我想知道,有什么方法可以禁用分析自动活动跟踪吗? 我有基于片段的视图层次结构,这种情况很少:
我在Firebase文档的片段中使用了这样的代码来跟踪自定义屏幕:
mFirebaseAnalytics.setCurrentScreen(getActivity(), "some_fragment_1", null);
在第一种情况下,我只想跟踪根片段。 在第二种情况下,我只想跟踪成为根的每个片段。 在第三种情况下,我只想跟踪在ViewPager中可见的每个片段。
问题是,我根本不想跟踪活动,但是不幸的是,Firebase独自完成了它-结果,我的统计数据看起来很奇怪,例如:
SomeActivity 50%
some_fragment_1 30%
some_fragment_2 20%
我不需要此统计信息中的活动,因为片段统计信息已包含该信息。
那么,有什么方法可以禁用活动跟踪吗?
答案 0 :(得分:3)
现在可以使用新的 API 手动跟踪屏幕。
可以禁用自动跟踪
在 iOS 上,在 info.plist 中将 FirebaseAutomaticScreenReportingEnabled 设置为 NO。在 Android 上,在清单中将 google_analytics_automatic_screen_reporting_enabled 设置为 false。
手动跟踪
iOS
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// After enough time has passed to make this screen view significant.
Analytics.logEvent(AnalyticsEventScreenView, parameters: [
AnalyticsParameterScreenName: screenName!,
AnalyticsParameterScreenClass: screenClass!,
MyAppAnalyticsParameterFitnessCategory: category!
])
}
安卓
@Override
public void onResume() {
super.onResume();
// After enough time has passed to make this screen view significant.
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.SCREEN_NAME, screenName);
bundle.putString(FirebaseAnalytics.Param.SCREEN_CLASS, screenClass);
bundle.putString(MyAppAnalyticsConstants.Param.TOPIC, topic);
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle);
}
https://firebase.googleblog.com/2020/08/google-analytics-manual-screen-view.html
答案 1 :(得分:0)
我知道这是一个hack,但是似乎可以与最新的firebase分析一起使用。这个想法是,Firebase Analytics在清单中声明的每个活动内部都使用registerActivityLifecycleCallbacks()
,因此禁用该方式将禁用自动活动报告。
将该代码放在您使用的每个根Activity
中。
@Override
public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) {
// com.google.android.gms.measurement.internal.zzfl for firebase-core:17.1.0, play-services-measurement-impl:17.1.0
if (!callback.getClass().getName().startsWith("com.google.android.gms.measurement.")){
super.registerActivityLifecycleCallbacks(callback);
}
}
在https://github.com/firebase/quickstart-android/issues/370上找到@liudongmiao的信用。
答案 2 :(得分:0)
要在Firebase Analytics 17.5.0中禁用屏幕自动跟踪,我必须在我的Application类中而不是在单个活动中捕获回调注册,并且回调类名称再次更改:
@Override
public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) {
if (!callback.getClass().getName().startsWith("com.google.android.gms.internal.measurement.")){
super.registerActivityLifecycleCallbacks(callback);
}
}
不幸的是,与Google的文档规定(https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#SCREEN_VIEW相反,我无法通过记录事件FirebaseAnalytics.Event.SCREEN_VIEW
来手动标记屏幕视图。目前,我已经借助自定义事件来记录屏幕视图。