Firebase 到 BigQuery:活跃用户数不匹配
Firebase to BigQuery : active users count does not match
我正在将数据从 Firebase 导出到 BigQuery,但当我计算 USER_ENGAGEMENT 事件的用户时,Firebase 中显示的数据与我在 BigQuery 中手动提取的数据不同。
在 Firebase 中,我定义了一个 "All users" 受众。
在相关的受众仪表板中,Activity 图表(逐日显示活跃用户与上个月相比)我看到在 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 returns 391394 个独立用户,比 Firebase 多 2797 个。
我在这里 Firebase vs BigQuery Active Users Discrepancies 发现这可能是由于时区设置造成的。我的项目设置为 GMT+1,而 BigQuery 使用 UTC 来命名 tables。但是在我的查询中,我已经按 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 将 "User Activity" 定义为不同的东西,但我不明白是如何定义的。
求助!
编辑
通过阅读 我开始注意到人们如何使用与我使用的不同的分组字段 (user_pseudo_id),但是它看起来不像我的 table 事件_*除了
之外还有其他 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 文档中的这句话后面:“...该日期范围内的活跃用户,包括上一日期范围的百分比波动。” (请参阅此处的参考 https://support.google.com/firebase/answer/6317517?authuser=0#active-users)。这意味着 Firebase 首先会像您一样准确地计算活跃用户,然后根据前几天的用户波动添加一些数字。
我正在将数据从 Firebase 导出到 BigQuery,但当我计算 USER_ENGAGEMENT 事件的用户时,Firebase 中显示的数据与我在 BigQuery 中手动提取的数据不同。
在 Firebase 中,我定义了一个 "All users" 受众。 在相关的受众仪表板中,Activity 图表(逐日显示活跃用户与上个月相比)我看到在 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 returns 391394 个独立用户,比 Firebase 多 2797 个。
我在这里 Firebase vs BigQuery Active Users Discrepancies 发现这可能是由于时区设置造成的。我的项目设置为 GMT+1,而 BigQuery 使用 UTC 来命名 tables。但是在我的查询中,我已经按 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 将 "User Activity" 定义为不同的东西,但我不明白是如何定义的。
求助!
编辑
通过阅读
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 文档中的这句话后面:“...该日期范围内的活跃用户,包括上一日期范围的百分比波动。” (请参阅此处的参考 https://support.google.com/firebase/answer/6317517?authuser=0#active-users)。这意味着 Firebase 首先会像您一样准确地计算活跃用户,然后根据前几天的用户波动添加一些数字。