为什么Google Analytics(分析)与BigQuery之间的独特事件之间存在如此大的差异?

时间:2019-06-12 16:01:16

标签: sql google-bigquery

我正在尝试获取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中的顶级事件如下所示:

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

在BigQuery中:

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

我在查询中做错什么了吗?GA和BQ在独特事件方面以及您如何计算我不了解的事件之间有区别吗?

在此我不知所措,不胜感激!

2 个答案:

答案 0 :(得分:1)

您正在用事件而不是唯一事件来计数用户...

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

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

另请参阅here

答案 1 :(得分:0)

一种可能性是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