如何获取应用了多个维度的自定义 Firebase 事件的唯一用户数?

Posted

技术标签:

【中文标题】如何获取应用了多个维度的自定义 Firebase 事件的唯一用户数?【英文标题】:How to get unique user count for custom Firebase event with multiple dimensions applied? 【发布时间】:2018-05-15 13:25:21 【问题描述】:

我目前正在尝试为我在 BigQuery 中的自定义 Firebase 事件计算唯一身份用户。 虽然我已经能够通过使用 APPROX_COUNT_DISTINCT 函数获得聚合中的数字,但在 SELECTING 并向表中添加多个不同维度时,我仍然无法获得正确的(唯一)计数。

关于使用 HLL_COUNT.INIT 的 following resource 让我更近了一步,但我还没有弄清楚如何在同一个表中使用 HLL_COUNT.MERGE 函数,这样我就可以通过应用过滤器获得事件 + 唯一用户数在数据工作室中

到目前为止我使用过的查询:

SELECT
 (SELECT x.date) AS event_date, 
 (SELECT x.name) AS name,
 (SELECT params.value.string_value FROM x.params WHERE params.key = 'grade') AS vl_grades,
 user_dim.geo_info.region as user_region,
  user_dim.geo_info.city as user_city,
  user_dim.device_info.user_default_language as user_language,
   (SELECT user_prop.key) AS user_prop_key,
   (SELECT user_prop.value.value.string_value) AS user_prop_string_value,
    COUNTIF(user_prop.key = "first_open_time") as event_count ,
    APPROX_COUNT_DISTINCT(user_dim.app_info.app_instance_id) as unique_user,
    HLL_COUNT.INIT(user_dim.app_info.app_instance_id) as sketch
FROM `project.info_project_TOTAL.TOTAL_results_jobs` ,
UNNEST (user_dim.user_properties) AS user_prop,
UNNEST(event_dim) AS x
WHERE x.name = 'Zlag_Click'

GROUP BY date,user_prop_key,user_prop_string_value,name,fr_grades,vl_grades,style,item_category,indoor_outdoor,boulder_route,item_name,user_dim.geo_info.country,user_dim.app_info.app_platform,user_dim.geo_info.region,user_dim.geo_info.city,user_dim.device_info.user_default_language,location

ORDER BY event_count desc

有没有人对我如何直截了当地提出任何想法,表格允许我回答以下问题 - 在过去的 x 天内,有多少来自德国的独立用户触发了事件? - 在过去的 x 天内,有多少独立用户触发了难度级别为 5 的事件? - 在过去的 x 天内,有多少独立用户请求了以下资源?

谢谢

【问题讨论】:

【参考方案1】:

让 project.table_results 成为您保存查询结果的表。由于我没有看到与您要回答的所有问题相对应的列,因此我将对您可以提供的列进行一些假设。

统计过去 5 天内触发 event_count 的用户数:

SELECT HLL_COUNT.MERGE(sketch) approx_cnt
FROM `project.table_results`
WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 5 DAY)
AND event_count > 0

如果有难度级别字段; event_diff_level,添加

AND event_diff_level == 5

要获取请求特定资源的唯一用户数,请添加

AND <resource_column_name> == <resource>

另外,你不需要做(SELECT x.&lt;struct_field&gt;) as &lt;struct_field&gt;。只需x.&lt;struct_field&gt; as &lt;struct_field&gt; 应该可以工作。我希望这会有所帮助。

【讨论】:

谢谢丽莎,当尝试 SELECT HLL_COUNT.MERGE(sketch) approx_cnt FROM project.table_results WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 5 DAY) AND event_count > 0 我确实得到了一个无法识别的名称:日期错误。可能与该日期默认存储为 STRING 的事实有关吗?谢谢 我认为你需要用 PARSE_DATE 包裹日期,例如:PARSE_DATE('%x', date) 见 cloud.google.com/bigquery/docs/reference/standard-sql/…

以上是关于如何获取应用了多个维度的自定义 Firebase 事件的唯一用户数?的主要内容,如果未能解决你的问题,请参考以下文章

Google Big Query 按页面路径和 Google Analytics 数据的自定义维度获取用户计数

谷歌 BigQuery 中的自定义维度

使用安装了 Firebase 的自定义崩溃处理程序

如何使用 GoDaddy 在 Firebase 上验证我的自定义域

如何为自定义 cloudwatch 指标使用多个单独的维度?

如何从 Firebase 获取单个数据库引用