我们公司有两个不同的应用程序。我们为这两个应用程序使用相同的基本代码,95% 的应用程序都使用共享代码。唯一的区别在于样式、字体、字符串和 applicationId。 当我们使用其他功能时,这两个应用程序都完全连接到它们的 firebase 帐户。 然而,分析在我们的一个应用程序中运行得很好,而在另一个应用程序中,我们只能在 Firebase 控制台中看到“screen_view”事件。
我已经完成了所有这些:
FirebaseApp.initializeApp(applicationContext)
FirebaseAnalytics.getInstance(applicationContext).setAnalyticsCollectionEnabled(true)
<meta-data
android:name="google_analytics_default_allow_ad_personalization_signals"
android:value="false" />
app/
├── src/
│ ├── app1_dev/
│ │ └── google-services.json
│ ├── app1_prod/
│ │ └── google-services.json
│ ├── app2_dev/
│ │ └── google-services.json
│ ├── app2_prod/
│ │ └── google-services.json
问题是,即使对于我们的第二个应用程序,有关 firebase 的所有内容都工作正常,除了您无法记录除“screen_view”之外的任何事件。 我检查了“screen_view”事件不是自动的。它们包含我附加到它们的所有属性,如果我调用 logEvent 10 次,它们将注册 10 次。
在您的实施中,请确保您拥有
“com.google.firebase:firebase-analytics”
除了 Firebase 基础平台之外 “com.google.firebase:firebase-bom”
但是,之间的“screen_name
”结果也存在差异“com.google.firebase:firebase-analytics”
和
“com.google.firebase:firebase-analytics-ktx”
'ktx'是Analytics的扩展模块,但根据最新的Firebase报告,最近有一种趋势是避免使用ktx,而是使用基本模块。但是,在显示 screen_name 时,如果未从 ktx 模块中提取 param(FirebaseAnalytics.Param.SCREEN_NAME, "YourScreenName"),则 Google Analytics(分析)报告似乎会受到影响。根本不显示或仅显示为(未设置)。
以上我的观点是基于Kotlin。
基于kotlin提取screen_name的标准代码如下:
private lateinit var firebaseAnalytics: FirebaseAnalytics // Write this line outside of onCreate()
firebaseAnalytics = FirebaseAnalytics.getInstance(this)
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
param(FirebaseAnalytics.Param.SCREEN_NAME, "YourScreenName")
param(FirebaseAnalytics.Param.SCREEN_CLASS, "YourClassName")
}