我最近开始研究 Firebase/Google Analytics。我正在尝试使用以下代码来记录
screen_view
事件,但我的控制台中没有任何反应。我正在使用 SwiftUI,以下代码在 .onAppear
子句中运行。
Analytics.logEvent(AnalyticsEventScreenView,
parameters: [AnalyticsParameterScreenName: "Initial Load",
AnalyticsParameterScreenClass: InitialLoadView.self])
我是否误解了什么,或者 SwiftUI 和 Firebase Analytics 目前是否存在错误?
import SwiftUI
import Firebase
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(destination: EmptyView()) {
Text("One")
}
NavigationLink(destination: EmptyView()) {
Text("Two")
}
}
.navigationTitle("sample")
.onAppear() {
Analytics.logEvent(AnalyticsEventScreenView,
parameters: [AnalyticsParameterScreenName: "\(ContentView.self)",
AnalyticsParameterScreenClass: "\(ContentView.self)"])
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Firebase 添加了更好的 SwiftUI 支持。对于 iOS 13.0+,现在有一个视图修改器,可用于您想要支持的视图:
/// Logs `screen_view` events in Google Analytics for Firebase when this view appears on screen.
/// - Parameters:
/// - name: Current screen name logged with the `screen_view` event.
/// - class: Current screen class or struct logged with the `screen_view` event.
/// - extraParameters: Any additional parameters to be logged. These extra parameters must
/// follow the same rules as described in the `Analytics.logEvent(_:parameters:)` docs.
/// - Returns: A view with a custom `ViewModifier` used to log `screen_view` events when this
/// view appears on screen.
public func analyticsScreen(
name: String,
class: String = "View",
extraParameters: [String : Any] = [:]
) -> some View
您可以记录手动 screen_view,就像记录 Google Analytics 中的任何其他事件一样。您还可以包含两个可选参数 (i) screen_name 和 (ii) screen_class,以及您想要包含的任何自定义事件参数。这两个可选参数取代了传递到自动收集的 screen_view 事件中的 firebase_screen 和 firebase_screen_class 事件参数。
覆盖 func viewDidAppear(_animated: Bool) { super.viewDidAppear(动画)
// After enough time has passed to make this screen view significant.
Analytics.logEvent(AnalyticsEventScreenView, parameters: [
AnalyticsParameterScreenName: screenName!,
AnalyticsParameterScreenClass: screenClass!,
MyAppAnalyticsParameterFitnessCategory: category!
])
}
请点击以下链接了解详情: 在 Google Analytics 中手动跟踪屏幕视图