Firebase BigQuery 活动用户和界面差异

Posted

技术标签:

【中文标题】Firebase BigQuery 活动用户和界面差异【英文标题】:Firebase BigQuery Active user and Interface Discrepancy 【发布时间】:2019-02-07 20:50:10 【问题描述】:

在 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】:

我不明白为什么如果我按日期分组并求和,我会得到更准确的数字。 第一个查询应该得到与第二个查询相同的数字吗?

简短的回答是——不,不应该!!

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

第二个查询的工作方式完全不同 - 它首先计算每一天的活跃用户 - 因此同一用户(在上面的示例中)将分别计算每一天 - 所以当最终所有这些每日计数被求和时 - 那用户被计算的次数与该用户活跃的天数一样多 - 因此差异

希望这可以帮助您进行进一步的故障排除

同时,我会推测 Firebase Dashboard 中活跃用户的定义 - 因为他们似乎使用了您的第二个查询的遵循逻辑(与第一个查询相比) - 但这是我的疯狂猜测

【讨论】:

他们似乎没有遵循任何一种方法。第一次,我的 MAU 减少了 20%,第二次几乎增加了 100%。

以上是关于Firebase BigQuery 活动用户和界面差异的主要内容,如果未能解决你的问题,请参考以下文章

如何从 BigQuery 中的 Firebase 事件中获取用户表?

如何计算Firebase中的MAU?我需要BigQuery吗?

BigQuery 数据高于 Firebase 是不是正常?

Bigquery 中新安装用户的 Firebase 事件发生

如何加入 Firebase 和 BigQuery

BigQuery/Firebase 查询事件,按用户属性排序