首页 > 解决方案 > 将 Google Analytics 4 数据流式传输到 BigQuery 导致数据收集问题

问题描述

我们已经配置了 GA 4 属性和GoogleBigQuery通过 GA 接口之间的链接(没有任何附加代码)。它工作正常,我们在 GBQ 表中看到了迁移的数据,但是,我们面临着如何将这些数据写入这些表中的问题。

如果我们查看任何表格,我们可以看到来自不同用户的事件可以记录在一个会话中(并且可以有不同的clientIDs(甚至是我们在授权用户时传递的 usedID))查看示例

这是执行以下查询的结果:

SELECT
    event_name,
    user_pseudo_id,
    user_id,
    device.category,
    device.mobile_brand_name,
    device.mobile_model_name,
    device.operating_system_version,
    geo.region,
    geo.city,
    params.key,
    params.value.int_value
FROM `%project_name%.analytics_256374149.events_20210331`, unnest(event_params) AS params
WHERE event_name="page_view"
AND params.value.int_value=1617218965
ORDER BY event_timestamp 

结果,您可以看到在一个会话中,来自不同地区、不同设备和标识符的不同用户被组合在一起。当然,不可能将此类数据用于报告目的。再一次,它是 GA4 界面中的默认 GA4 → BigQuery 设置(无附加组件)。

我们不明白错误是什么(在导入、请求或其他地方),并希望获得有关此问题的建议。

谢谢。

标签: google-analyticsgoogle-bigquerygoogle-analytics-4data-collection

解决方案


您应该查看user_pseudo_id和 event_param的组合ga_session_id。这种组合是独一无二的,用于衡量一个属性中的唯一会话。

例如,此查询计算每个会话中唯一事件名称的数量:

SELECT
  user_pseudo_id,
  (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
  COUNT(DISTINCT event_name) AS unique_event_name_count
FROM `<project>.<dataset>.events_*`
GROUP BY user_pseudo_id, ga_session_id

推荐阅读