从Firebase到BigQuery:活跃用户数不匹配

时间:2019-05-15 14:21:29

标签: firebase google-bigquery firebase-analytics active-users

我正在将数据从Firebase导出到BigQuery,但是Firebase中显示的数字与我通过USER_ENGAGEMENT事件对(DISTINCT)个用户进行计数时在BigQuery中手动提取的数字不同。

在Firebase中,我定义了“所有用户”受众。 在相对的受众群体信息中心的“活动”图(显示每天的活跃用户与上个月的活跃用户)中,我看到4月1日的用户为388.597。

我有从Firebase到BigQuery的标准实时提取文件,其中集成了事件数据,我想在这里找到相同的数字。

这是我在BigQuery中使用的查询

SELECT
  PARSE_DATE('%Y%m%d', event_date) AS Date
  , COUNT(DISTINCT user_pseudo_id ) AS Active_Users
FROM
  `xxxx.analytics_162988291.events_*`
WHERE FORMAT_DATE('%Y-%m', PARSE_DATE('%Y%m%d', event_date)) = FORMAT_DATE('%Y-%m', DATE_ADD(CURRENT_DATE(), INTERVAL -EXTRACT(DAY FROM CURRENT_DATE()) DAY))
  and event_name = 'user_engagement'
  GROUP BY Date
  ORDER BY Date;

在4月1日,BigQuery返回了391394个不同的用户,比Firebase多2797个。

我在Firebase vs BigQuery Active Users Discrepancies处发现这可能是由于时区设置所致。我的项目设置为GMT + 1,而BigQuery使用UTC命名表。但是,在我的查询中,我已经按照EVENT_DATE进行了分组。 可以肯定的是,我还是逐日比较了4月份的两个数字。这些是数字:

Firebase         BigQuery       Difference
 388 597         391 394        -2 797    
 378 393         374 023         4 370    
 372 890         374 601        -1 711    
 364 520         366 367        -1 847    
 375 903         374 479         1 424    
 453 630         452 077         1 553    
 476 413         476 401         12    
 398 481         396 227         2 254    
 378 338         375 531         2 807    
 368 699         369 699        -1 000    
 363 063         363 436        -373    
 369 874         368 441         1 433    
 460 472         454 647         5 825    
 481 832         487 214        -5 382    
 395 781         392 564         3 217    
 370 940         366 189         4 751    
 122 434         122 549        -115    
 342 249         344 086        -1 837    
 371 934         367 609         4 325    
 391 817         391 765         52    
 390 550         391 367        -817    
 412 276         408 876         3 400    
 377 219         379 659        -2 440    
 370 611         366 901         3 710    
 367 272         365 267         2 005    
 365 307         369 399        -4 092    
 438 676         439 990        -1 314    
 471 515         471 363         152    
 392 256         395 532        -3 276    
 369 500         368 416         1 084   
Total 
 11 581 442      11 566 069      15 373

如果这是一个时区问题,我会认为总差异应该与其他任何一天都没有太大差异,但是差异却更为明显。

另外,由于我使用的是StandardSQL,COUNT(DISTINCT)应该准确。

在这一点上,我怀疑Firebase将“用户活动”定义为不同的内容,但我不明白该怎么做。

帮助!

编辑

通过阅读Firebase -> BigQuery how to get active users for that month, week, day,我开始注意到人们使用的分组字段与我使用的分组字段(user_pseudo_id)不同,但是看起来我的表events_ *没有其他app_info。*字段了

app_info.id STRING
app_info.version    STRING
app_info.install_store STRING
app_info.firebase_app_id    STRING
app_info.install_source STRING

这仅仅是一个分组问题吗?

1 个答案:

答案 0 :(得分:0)

我相信答案隐藏在Firebase文档中的这句话后面:“ ...该日期范围内的活跃用户,包括前一个日期范围内的百分比波动。”(请参见此处的参考https://support.google.com/firebase/answer/6317517?authuser=0#active-users)。这意味着Firebase首先会像您一样准确地计算活动用户,然后根据前几天的用户波动添加一些数字。