Firebase Analytics - 记录 screen_view 在 SwiftUI 中不起作用

问题描述 投票:0回答:3

我最近开始研究 Firebase/Google Analytics。我正在尝试使用以下代码来记录

screen_view
事件,但我的控制台中没有任何反应。我正在使用 SwiftUI,以下代码在
.onAppear
子句中运行。

Analytics.logEvent(AnalyticsEventScreenView,
                   parameters: [AnalyticsParameterScreenName: "Initial Load",
                                AnalyticsParameterScreenClass: InitialLoadView.self])

我是否误解了什么,或者 SwiftUI 和 Firebase Analytics 目前是否存在错误?

swift firebase swiftui analytics firebase-analytics
3个回答
0
投票
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()
  }
}

0
投票

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

-1
投票

您可以记录手动 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 中手动跟踪屏幕视图

© www.soinside.com 2019 - 2024. All rights reserved.