如何在BigQuery中匹配GA4流量获取报告数据?
关于GA4流量获取报告在BigQuery中复现的问题求助
问题1:为何部分事件(如session_start)不带source/medium/campaign参数?
已知GA4/BQ中source/medium/campaign字段基于事件而非会话,但发现并非每个事件都携带这些参数,比如session_start事件也没有,不符合预期。
问题2:复现报告的三种尝试及结果偏差
2.1 基于会话首个medium的查询
使用以下SQL查询会话首个medium:
with cte as ( select PARSE_DATE("%Y%m%d", event_date) AS Date, user_pseudo_id, concat(user_pseudo_id,(select value.int_value from unnest(event_params) where key = 'ga_session_id')) as session_id, FIRST_VALUE((select value.string_value from unnest(event_params) where key = 'medium')) OVER (PARTITION BY concat(user_pseudo_id,(select value.int_value from unnest(event_params) where key = 'ga_session_id')) ORDER BY event_timestamp) as first_medium FROM `project`) select Date, first_medium, count(distinct user_pseudo_id) as Users, count (distinct session_id) as Sessions from cte group by 1,2;
结果:返回44k medium为null的用户、1.8k有机用户,但GA4视图中对应为17k medium为none的用户、8k有机用户,数据差距明显。
2.2 改为基于会话最后一个medium的查询
将上述SQL中的first_medium替换为以下逻辑获取最后一个medium:
FIRST_VALUE((select value.string_value from unnest(event_params) where key = 'medium')) OVER (PARTITION BY concat(user_pseudo_id,(select value.int_value from unnest(event_params) where key = 'ga_session_id')) ORDER BY event_timestamp desc) as last_medium
结果:有机用户增至9k,但仍与GA4视图数据不匹配。
2.3 使用第三方教程中的会话级source/medium代码
尝试了第三方教程中的会话级source/medium查询代码,结果仍与GA4视图完全不一致。
更新
找到一篇详细讲解流量源查询的优质文章,标题翻译为:《在BigQuery中查询GA4会话的最后非直接流量来源》
内容的提问来源于stack exchange,提问作者Nadia K
相关产品推荐
相关产品推荐

