Firebase BigQuery活动用户和界面差异

时间:2019-02-07 20:50:10

标签: firebase google-bigquery

在此日期范围内(从2018年12月18日到2018年12月21日),我在Firebase仪表板上有1,512位活跃用户。

我执行了此查询,并得到了以下内容:

SELECT
 COUNT(DISTINCT user_pseudo_id ) as active_user_count
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `xxxxxx-xxxxx.analytics_000000000.events_*`
WHERE
  event_name = 'user_engagement'
  AND event_timestamp >
      UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 200 DAY))
  -- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE.
  AND _TABLE_SUFFIX BETWEEN '20181218' AND '20181221'

我获得了1326个活跃用户,这些用户与我的Firebase仪表盘相比有很大的差距。

但是当我包含event_date时,我似乎得到了更准确的计数,如下所示:

SELECT
SUM(active_user_count)
FROM(

SELECT
 COUNT(DISTINCT user_pseudo_id ) as active_user_count,
 event_date
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `xxxxxxx-xxxxxx.analytics_xxxx.events_*`
WHERE
  event_name = 'user_engagement'
  -- Pick events in the last N = 20 days.
  AND event_timestamp >
      UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 200 DAY))
  -- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE.
  AND _TABLE_SUFFIX BETWEEN '20181218' AND '20181221'
  GROUP BY event_date)

我的用户数量是1497。我不明白为什么要按日期和总和分组以获得更准确的数字。

第一个查询应该给我和第二个查询相同的电话号码吗?

谢谢

1 个答案:

答案 0 :(得分:1)

  

我不明白为什么我要按日期和总和分组以获得更准确的数字。
  第一个查询应该给我与第二个查询相同的电话号码吗?

简短的答案是-不,不应该!

第一个查询的作用是-计算整个期间内不同用户/帐户的数量。因此,如果同一用户/帐户在超过一天的时间内处于活动状态-该用户/帐户将仅被计数一次!

第二个查询的工作方式大相径庭-它首先计算每天的活动用户-因此每天将分别对同一用户(在上面的示例中)进行计数-因此,当最终将所有这些每日计数相加后,用户被计数的次数是该用户活跃状态的次数-差异

希望这有助于您进行进一步的故障排除

同时,我会推测Firebase仪表板中活动用户的定义-好像他们使用第二个查询(相对于第一个查询)的跟随逻辑-但这是我的猜测