BigQuery 数据与谷歌分析

Posted

技术标签:

【中文标题】BigQuery 数据与谷歌分析【英文标题】:BigQuery data versus Google Analytics 【发布时间】:2015-02-09 13:46:53 【问题描述】:

我似乎无法在 BigQuery 中获得与 Google Analytics Premium 相同数量的会话和用户。我使用 fullvisitorID 来计算会话数(计数)和用户数(唯一计数)是否应该与 Google Analytics(分析)中的数字不符?

【问题讨论】:

您能否发布一些查询和数字以更好地指导您获得比您预期更少或更多的用户。另请注意,COUNT(DISTINCT) 只是一个近似数字,更多信息请访问cloud.google.com/bigquery/query-reference 【参考方案1】:

虽然 @Felipe Hoffa 是正确的,COUNT(DISTINCT x, 10000) 可以让您获得更精确的数字,但可以通过将 10,000 进一步提高数量高达 1,000,000(我认为这是目前最大的“采样”率:BigQuery Documentation of Count Distinct)。由于在 BigQuery 中使用 Google Anaytics Premium 数据的人并不多,因此这些问题的社区非常小。作为每天在 BigQuery 中使用 GA 数据的人,我可以告诉您,我的研究和验证表明,以下指标定义与 Google Analytics UnSampled Report 将告诉您的内容非常接近。

会话

count(distinct concat(fullvisitorid, string(visitid)), 1000000) as sessions

用户

count(distinct fullvisitorid, 1000000) as users

新用户

count(distinct (case when totals.newvisits <> 0 then concat(fullvisitorid, string(visitid)) end), 1000000) as new_users

浏览量

sum(case when hits.type = "PAGE" then 1 else 0 end) as pageviews

独特的浏览量

count(distinct (case when hits.type = "PAGE" then concat(fullvisitorid, string(visitid), hits.page.pagepath) end), 1000000) as unique_pageviews

反弹

count(distinct (case when totals.bounces <> 0 then concat(fullvisitorid, string(visitid)) end), 1000000) as bounces

【讨论】:

更新:BQ 现在支持 EXACT_COUNT_DISTINCT() 函数。【参考方案2】:

更新:BQ 现在支持 EXACT_COUNT_DISTINCT() 函数。


正如@Pentium10 所说,COUNT(DISTINCT x) 给出了 BigQuery 上大数字的近似结果。

准确结果的 2 个替代方案:

COUNT(DISTINCT x, 10000)

如果所述计数小于 10000,则给出不同的精确计数。将值更改为更高(更慢的结果)

SELECT COUNT(*) FROM (
  SELECT x
  FROM [table]
  GROUP EACH BY x
)

还以精确的方式计算不同的值。

【讨论】:

我使用 Simba 连接器将数据提取到 Alteryx,从那里混合数据。 'count distinct' 怎么可能只是一个近似数字,如果我导出所有 fullvisitorID,那么我应该能够正确测量一天内的会话和用户数量,还是我看错了?我应该使用其他措施吗?

以上是关于BigQuery 数据与谷歌分析的主要内容,如果未能解决你的问题,请参考以下文章

国产开源项目也能用SQL解决机器学习问题!与谷歌BigQuery ML有何不同?

bigquery如何获取设备信息

如何在 BigQuery 中导出所有谷歌分析数据 [重复]

谷歌分析-BigQuery

谷歌分析 Bigquery 导出

谷歌分析导出设置到 Bigquery