Firebase到BigQuery:活动用户计数不匹配
我正在将数据从Firebase导出到BigQuery,但Firebase中显示的数字与我在BigQuery中手动提取的数字不同,当我使用用户参与事件统计(不同)用户时 在Firebase中,我定义了“所有用户”受众。 在“相对受众”仪表板中的“活动图”(显示每天的活动用户数与上月相比)中,我看到4月1日我有388.597个用户 我有一个从Firebase到BigQuery的标准实时提取,它集成了事件数据,我想在这里找到相同的数字 这是我在BigQuery中使用的查询Firebase到BigQuery:活动用户计数不匹配,firebase,google-bigquery,firebase-analytics,active-users,Firebase,Google Bigquery,Firebase Analytics,Active Users,我正在将数据从Firebase导出到BigQuery,但Firebase中显示的数字与我在BigQuery中手动提取的数字不同,当我使用用户参与事件统计(不同)用户时 在Firebase中,我定义了“所有用户”受众。 在“相对受众”仪表板中的“活动图”(显示每天的活动用户数与上月相比)中,我看到4月1日我有388.597个用户 我有一个从Firebase到BigQuery的标准实时提取,它集成了事件数据,我想在这里找到相同的数字 这是我在BigQuery中使用的查询 SELECT PARSE
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个
我在这里发现,这可能是由于时区设置。我的项目设置为GMT+1,而BigQuery使用UTC命名表。然而,在我的查询中,我已经按事件日期分组了。
平心而论,我每天都在比较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将“用户活动”定义为不同的东西,但我无法理解如何定义
救命啊
编辑
通过阅读,我开始注意到人们使用的分组字段与我使用的分组字段(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
这可能只是一个分组问题吗?我相信答案隐藏在Firebase文档中的这句话后面:“……日期范围的活动用户,包括以前日期范围的百分比波动。”(参见此处的参考资料)。这意味着Firebase首先会像您一样统计活动用户,然后根据前几天用户的波动情况添加一些数字。这里也有同样的问题。user_pseudo_id似乎对活动用户进行了大量的计算。我想知道使用Firebase计算DAU的正确字段是什么。这句话的意思是,它们在仪表板上显示了活跃用户增加或减少的百分比。在我这方面,仅使用用户参与的BigQuery计算的MAU与Firebase上的MAU之间的差异显著(20%),唯一接近的方法是包含来自所有其他事件的唯一伪ID,这没有意义。