将 Google Analytics 4 数据流式传输到 BigQuery 导致数据收集问题

问题描述

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

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

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

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 设置(无附加组件)。

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

谢谢。

解决方法

您应该查看 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