Firebase Analytics信息中心与BigQuery导出之间的"活跃用户指标"存在差异

Jav*_*rez 6 firebase google-bigquery firebase-analytics

根据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'  
Run Code Online (Sandbox Code Playgroud)

谢谢

更新

@djabi的回答后,我改变了我的查询使用user_engagement而不是session_start现在它的效果要好得多.尽管如此仍然存在一些细微的差异(根据日期,它们在16K的范围内从10以下到50以下).

我曾尝试过再次使用不同的时区,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 )
Run Code Online (Sandbox Code Playgroud)

注意:目前我们没有发送user_id,所以COALESCE总会返回app_instance_id,以防有人提出可能是问题

dja*_*abi 4

离线设备的数据需要等待整整3天才能上传。您的查询根据事件时间戳正确过滤事件,并且您提取了 3 天的数据,但距离今天只有一天半,这足以上传所有数据。尝试包括昨天起的 3 天。

还可以尝试使用 user_engagement 事件而不是 session_start。我相信活跃用户计数基于 user_engagement 而不是基于 session_start 事件。

此外,FB 报告需要一些时间来处理,因此您可能需要在第二天查看 FB 报告。

FB 报告是根据帐户的时区完成的,并且事件以 UTC 为时间戳,因此 FB 报告中的日期与 UTC 日历日不同。您还想控制这种差异以获得匹配的数字。