【问题标题】:Firebase Default Parameters not logging to Events DashboardFirebase 默认参数未记录到事件仪表板
【发布时间】:2019-05-20 19:36:01
【问题描述】:

所以我在将事件参数从我的应用程序记录到 Firebase 控制台时遇到问题。事件及其参数按预期显示在 Firebase 的 DebugView 上,当我单击“事件”选项卡上的事件时,所有事件都会显示出来。但是,我记录的参数没有可用的数据,即使它们是默认的 Firebase 参数。

我对 Firebase 有点混乱的文档进行了大量阅读,发现为了看到自定义参数显示在仪表板上,我需要在应用程序中注册它们(即使有一些硬性限制我们允许的文本参数的数量)。但是,我没有读到任何关于对 Firebase 的默认事件和默认参数施加此类限制的信息,或者我们甚至需要注册默认参数。

我已将 Firebase 的 logEvent 功能抽象为以下逻辑(包括一个 getter,因为我在多个 pod 中使用 Firebase):

func sendEvent(eventType: String, toolName: String, toolAction: String, /*actionLabel: String,*/ actionDetail: String?) {
        switch provider {
        case .firebase:
            if actionDetail != nil {
                Analytics.logEvent(eventType, parameters: [
                    AnalyticsParameterOrigin: toolName,
                    AnalyticsParameterMethod: toolAction,
                    AnalyticsParameterContent: actionDetail
                    ])
            } else {
                Analytics.logEvent(eventType, parameters: [
                    AnalyticsParameterOrigin: toolName,
                    AnalyticsParameterMethod: toolAction
                    ])
            }

        case .GA:

            print("Event received w/deprecated GA")
        }
    }

func getAnalyticsEventType(eventString: String) -> String {
        switch eventString {
        case "selectContent" : return AnalyticsEventSelectContent
        case "viewItem" : return AnalyticsEventViewItem
        default: return ""
        }
    }

并按如下方式调用我的自定义方法:

ValuesExploration.analytics?.sendEvent(eventType: ValuesExploration.analytics?.getAnalyticsEventType(eventString: "selectContent") ?? "", toolName: "Values", toolAction: "Happiness Sticker Selected", actionDetail: value.name)

在调用该方法时,它将默认事件记录到仪表板,但不记录任何默认参数。任何关于为什么会发生这种情况的意见将不胜感激,在此先感谢您!

【问题讨论】:

    标签: swift firebase firebase-analytics


    【解决方案1】:

    事件类型具有它们允许的特定参数。

    AnalyticsEventSelectContent[1]的参数为:

    • AnalyticsParameterContentType

    • AnalyticsParameterItemID

    而对于AnalyticsEventViewItem [2] 是:

    • AnalyticsParameterItemID
    • AnalyticsParameterItemName
    • AnalyticsParameterItemCategory
    • AnalyticsParameterItemLocationID(可选)
    • AnalyticsParameterPrice(可选)
    • AnalyticsParameterQuantity(可选)
    • AnalyticsParameterCurrency(可选)
    • AnalyticsParameterValue(可选)
    • AnalyticsParameterStartDate(可选)
    • AnalyticsParameterEndDate(可选)
    • AnalyticsParameterFlightNumber(可选)
    • AnalyticsParameterNumberOfPassengers(可选)
    • AnalyticsParameterNumberOfNights(可选)
    • AnalyticsParameterNumberOfRooms(可选)
    • AnalyticsParameterOrigin(可选)
    • AnalyticsParameterDestination(可选)
    • AnalyticsParameterSearchTerm(可选)
    • AnalyticsParameterTravelClass(可选)

    【讨论】:

    • 所以您的意思是,如果我希望这些事件在仪表板中显示它们的参数,那么这些是我必须记录它们的参数吗?我还需要注册吗?
    • 不,only custom parameter per event needs to be registered。您可以根据事件类型注册问题中使用的事件类型,或从建议的事件类型中为您的分析数据选择合适的事件类型
    • 我很难理解。只需要注册自定义参数,但我仍然需要注册我的问题中使用的参数,即使它们是默认的 Firebase 参数?抱歉,如果我只是一遍又一遍地问同一个问题,我还是有点困惑。
    • 您的问题中使用的是它们所针对的特定事件。这样看,一个事件有它的参数。如果您使用的参数不是为事件记录的参数,它是自定义参数,应该注册。为一个事件定义事件参数并不能使它对完全不同的事件有用。这有意义吗?
    • 哦,我明白了,所以每个事件都有自己的一组默认参数,无需将它们注册为自定义即可记录?我认为默认参数在 Firebase 中是统一的,但听起来每个事件都有自己不同的默认参数集,不需要注册。对吗?
    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多