【发布时间】:2017-04-12 17:01:18
【问题描述】:
根据 Firebase Analytics 文档 (https://support.google.com/firebase/answer/6317517#active-users),活跃用户数是在给定日期发起会话的唯一用户数。同样根据文档,每次启动会话时都会发送带有session_start 名称的事件。我正在尝试使用 BigQuery 的导出来获取该指标,但我的查询给出了不同的结果(BigQuery 为 15636,FB 分析为 14908)
我也尝试过转换到不同的时区,看看这是否可能是问题所在,但无论我尝试哪个时区,我都不会得到相同(或相似)的结果
我应该运行哪个查询来获得与在 Firebase Analytics 仪表板上为活跃用户获得的相同结果?
我的查询是
SELECT EXACT_COUNT_DISTINCT(user_dim.app_info.app_instance_id)
FROM table_date_range([XXXXX.app_events_], timestamp('2016-11-26'), timestamp('2016-11-29'))
WHERE DATE(event_dim.timestamp_micros) = '2016-11-27'
AND event_dim.name ='session_start'
谢谢
更新
在 @djabi 的回答之后,我将查询更改为使用 user_engagement 而不是 session_start,现在效果更好了。不过仍有一些细微的差异(根据日期,它们的范围从 10 到 50 到 16K 不等)。
我通过玩DATE(date_add(event_dim.timestamp_micros,1,'hour')) 再次尝试使用不同的时区,但我从来没有得到我在 Firebase Analytics 仪表板上得到的确切数字。
新数字足以被认为在统计上可以接受,但想知道是否有人建议改进查询并获得准确的结果?
当前查询是:
SELECT
COUNT(*) AS active_users
FROM (
SELECT
COALESCE(user_dim.user_id, user_dim.app_info.app_instance_id) AS user_id
FROM
TABLE_DATE_RANGE([XXXXX.app_events_], TIMESTAMP('2016-11-24'), TIMESTAMP('2016-11-29'))
WHERE
DATE(event_dim.timestamp_micros) = '2016-11-25'
AND event_dim.name ='user_engagement'
GROUP BY
user_id )
注意:目前我们不发送 user_id,所以COALESCE 将始终返回app_instance_id,以防有人建议这可能是问题
【问题讨论】:
标签: firebase google-bigquery firebase-analytics