为啥 Google Analytics 和 BigQuery 之间的独特事件差异如此之大?

Posted

技术标签:

【中文标题】为啥 Google Analytics 和 BigQuery 之间的独特事件差异如此之大?【英文标题】:Why such a big discrepancy in unique events between Google Analytics and BigQuery?为什么 Google Analytics 和 BigQuery 之间的独特事件差异如此之大? 【发布时间】:2019-06-12 16:01:16 【问题描述】:

我正在尝试获取 BigQuery 中唯一事件的数量,尽管我付出了努力,但结果与我在 GA 中看到的结果甚至不相近。某些行在 BQ 和 GA 之间有高达 50% 的差异,我不知道为什么。总事件和用户与 GA 完全相同,只是不匹配的唯一事件。

我正在使用 CONCAT 函数来构建 sessionID,当用于计算给定期间的总会话时,它返回的数字与我在 GA 中看到的非常接近。但是一旦我将它与事件类别列一起使用,数字就会关闭。

这是我的查询:

SELECT h.eventInfo.eventCategory, 
count(h.eventInfo.eventCategory) as total_events, 
count(distinct CONCAT(fullVisitorId, CAST(visitId AS STRING))) as unique_events 
FROM `marketing-stack.12345678.ga_sessions_20190525` as ga,
UNNEST(ga.hits) as h 
GROUP BY h.eventInfo.eventCategory

例如,GA 中的 top 事件如下所示:

4276 个总事件 - 3155 个独立事件 - 1510 个用户

在 BigQuery 中:

4276 个总事件 - 1566 个独立事件 - 1510 个用户

我是否在查询中做错了什么,或者 GA 和 BQ 在独特事件以及我无法掌握的如何计算它们方面存在差异?

我很感激任何帮助或意见,因为我在这里不知所措!

【问题讨论】:

I made a decent answer to this discrepency/delta in this post 【参考方案1】:

您正在计算具有事件而不是唯一事件的用户...

当您COUNT(DISTINCT ) 时,操作和标签不得为NULL

SUM( (SELECT
 COUNT(DISTINCT CONCAT(h.eventInfo.eventCategory,
    coalesce(h.eventinfo.eventaction,  ''),
    coalesce(h.eventinfo.eventlabel, '')
 )) FROM t.hits h ) ) uniqueEvents

另见here

【讨论】:

非常感谢。我之前已经阅读了您的答案的另一个线程,但错过了事件操作和标签的重要性。现在可以使用了!【参考方案2】:

一种可能性是CONCAT() 中的冲突。您可以尝试使用分隔符:

 count(distinct CONCAT(fullVisitorId, ':', CAST(visitId AS STRING))) as unique_events 

这只是一种可能。

另一种可能性是一个或另一个值是NULLCOALESCE() 可以帮忙:

 count(distinct CONCAT(COALESCE(fullVisitorId, ''), ':', COALESCE(CAST(visitId AS STRING), ''))) as unique_events 

【讨论】:

不幸的是,即使使用分隔符,结果仍然相同。

以上是关于为啥 Google Analytics 和 BigQuery 之间的独特事件差异如此之大?的主要内容,如果未能解决你的问题,请参考以下文章

已经存在 (HTTP 409) 错误 Big Query/Google Analytics

应用电子商务操作过滤器时,Big Query 和 Google Analytics UI 不匹配

Big Query 着陆页数字与 Google Analytics 界面不一致

更改不同属性之间的来源(Big Query - Google Analytics)

将 Google Analytics 360 链接到 Big Query,权限问题

在哪里可以找到 Google Analytics Big Query 的项目 ID