【问题标题】:Discrepancies on "active users metric" between Firebase Analytics dashboard and BigQuery exportFirebase Analytics 仪表板和 BigQuery 导出之间的“活跃用户指标”存在差异
【发布时间】: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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太棒了。谢谢!通过 user_engagement 更改 session_start 时,数字仍然不准确,但更接近。我尝试弄乱时区,但最好的结果是当我不更改时区,所以我假设时区实际上是 UTC(这是有道理的,因为我的客户位于伦敦)。如果有更多信息,请多留几天时间,但如果没有其他人参与,我会接受你的回答是正确的
    • 我从未想过尝试用户参与,因为文档说“发起会话的唯一用户数”。但从经验上看,您似乎是对的,而文档则不是(因为根据this other question,可以在不启动会话的情况下看到用户的参与度)
    • 文档不正确。很快就会修复。感谢您提出这个问题,它帮助我发现我们的文档已损坏。干杯。
    【解决方案2】:

    对于我使用的 Android 统计数据:

    user_dim.device_info.resettable_device_id
    

    而不是

    user_dim.app_info.app_instance_id
    

    它产生了更好的结果。

    【讨论】:

      【解决方案3】:

      默认情况下,会话是在您可以更改的相应应用中用户活动 10 秒后测量的。尝试将会话开始时间计数更改为尽可能少的数字,然后您可能会得到一个更接近您预期的数字。

      【讨论】:

        猜你喜欢
        • 2022-11-29
        • 2019-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多