在我的 iOS 应用程序中,我将事件发送到 Firebase,如下所示:
Analytics.logEvent(event, parameters: [
AnalyticsParameterItemID: id,
AnalyticsParameterItemName: name,
AnalyticsParameterContentType: type,
])
例如我可以发送事件 complete_review
id 12
代表画面。这似乎运行良好,我在 Firebase/Google Analytics 仪表板中看到了事件数据。但是,我不知道如何根据这些参数进行过滤,例如
id
, name
或 type
.例如 :为了说明,我目前有:
"There are 2000 completed reviews"
...但我真的很想要"there are 500 completed reviews of id 1, 100 of id 2, 300 of id 3 ..."
.我是从 documentation 看到的我应该找到一个“编辑参数报告”链接,但它似乎没有出现,我只看到一个“标记为 NPA”按钮:
现在似乎唯一的解决方案是使用事件名称。这意味着不是
complete_review
与 id
设置为 12,我会发送 complete_review_id_12
并且只有大量不同的事件,将其导出,然后使用自定义脚本重新解析它……这感觉非常糟糕,所以我想知道是否有人有更好的主意。
最佳答案
好的,在 firebase 中,您最多可以将 30 个事件标记为转化,但仅此而已。如果您想查看与每个事件相关的特定数据,每个 ID,您将不得不进入 BigQuery。 BigQuery 乍一看似乎令人生畏,但它就像任何其他具有一些可爱功能的数据库一样,即 unnest()
这是您可以用来根据 ID 过滤事件的方法。
默认情况下,Firebase 每 24 小时将其数据导出到 BigQuery,因此您的数据就在那里,现在的问题是按照您期望的方式解析数据。幸运的是,您可以将此数据导出为 JSON、XML 或表格,以便您可以随意使用它,包括应用程序内。这是我用来在 BigQuery 中按 ID 解析和计数事件的示例。
您可以通过访问链接 https://console.cloud.google.com/bigquery?project= 访问 BigQuery您可能需要在左上角选择您的项目。
#standardSQL
SELECT DISTINCT
// UNNEST() allows you to get a specific value from your nested
// parameters. In this case I'm getting value.int_value and value.string_value.
(SELECT value.int_value FROM UNNEST(event_params)
WHERE key = 'some_ID') AS ID,
(SELECT value.string_value FROM UNNEST(event_params)
WHERE key = 'some_title') AS Title,
COUNT(1) Count
// INFO: If you build a query your last line will have the date as
// .events_20201015 and it will only query for that day. Replace the
// 20201015 with a " * " to filter on ALL events.
FROM `your_table_name.analytics_243434300.events_*` t
WHERE
event_name = 'your_event_name'
GROUP BY ID, Title
这将返回一个表或 JSON,具体取决于您的偏好,其中包含每个唯一 eventID 的计数以及您要标识该事件的数据。如果您决定采用仪表板路线并应用转换,则更新需要 24 小时,因此不要期望立即得到结果。
关于swift - 如何根据参数过滤 Firebase 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64356475/