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吗?