You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GA与BigQuery加入购物车数据匹配问题:计数不符排查

分析GA界面与BigQuery加购数据差异的原因及解决方案

我帮你梳理下这个数据差异的核心原因,以及对应的修正方法:

核心差异原因

1. 页面过滤维度不匹配

你在BigQuery里用了hits_product.productlistname = 'my_page_url'作为过滤条件,但GA界面里“特定页面”的加购统计,本质是加购动作发生的页面(也就是用户点击加购按钮时所在的页面URL),对应BigQuery里的hits.page.pagePath字段,而不是商品的productlistname。

productlistname是GA中用来标记商品所在的产品列表名称(比如“首页推荐商品”“分类页爆款”),很多时候它和页面URL并不一致。如果你的加购动作来自该页面,但商品的productlistname不是这个URL,那这些数据就会被你的查询过滤掉,导致计数偏少。

2. UNNEST嵌套导致的数据丢失

你的查询同时UNNEST(hits)和UNNEST(hits.product),但如果某个加购动作(action_type=3)对应的hit里没有product数据(比如数据采集异常、加购的是无SKU的虚拟商品等),这个hit会被UNNEST(hits.product)完全排除,不会进入统计。而GA界面通常会统计这类有明确加购动作但无商品信息的记录,所以结果会比你的查询多。

另外你提到“移除页面过滤后全天数据匹配”,这是因为全天范围内,大部分加购动作的productlistname刚好和统计维度匹配,或者无product的加购占比极低,整体差异被抵消了,但特定页面下这个差异就凸显出来了。

修正后的查询

根据你要统计的维度,分两种情况给出查询:

情况1:统计加购动作次数(和GA界面“加入购物车操作”的定义一致,即点击一次加购按钮算一次,不管一次加购几个商品)

SELECT
  date,
  COUNT(DISTINCT CONCAT(fullvisitorid, CAST(visitid AS string), CAST(hits.hitNumber AS string))) AS total_add_actions
FROM `project.dataset.ga_sessions_20191208` AS t,
UNNEST(hits) AS hits
WHERE
  hits.page.pagePath = 'my_page_url'  -- 改为动作发生的页面URL
  AND hits.eCommerceAction.action_type = '3'
GROUP BY date

情况2:统计商品被加购的次数(一次加购多个商品算多次,比如加购3个商品计为3次)

SELECT
  date,
  SUM(CASE WHEN hits.eCommerceAction.action_type = '3' THEN 1 ELSE 0 END) AS total_add_product_count
FROM `project.dataset.ga_sessions_20191208` AS t,
UNNEST(hits) AS hits,
UNNEST(hits.product) AS hits_product
WHERE
  hits.page.pagePath = 'my_page_url'  -- 改为动作发生的页面URL
  AND hits.eCommerceAction.action_type = '3'
GROUP BY date

你可以先确认GA界面的“1,669次”是动作次数还是商品加购次数,然后对应使用上面的查询,应该就能和GA的结果匹配了。

内容的提问来源于stack exchange,提问作者Ben P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:54:13