【问题标题】: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 在独特事件以及我无法掌握的如何计算它们方面存在差异?

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

【问题讨论】:

标签: sql google-bigquery


【解决方案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 

【讨论】:

  • 不幸的是,即使使用分隔符,结果仍然相同。
猜你喜欢
  • 2018-12-26
  • 1970-01-01
  • 2012-10-18
  • 1970-01-01
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多