GA BigQuery:使用自定义维度计算浏览量

Posted

技术标签:

【中文标题】GA BigQuery:使用自定义维度计算浏览量【英文标题】:GA BigQuery: Calculating pageviews with a custom dimension 【发布时间】:2019-07-11 15:43:27 【问题描述】:

使用 GA BigQuery 数据,我试图计算 3 个维度的总浏览量:日期、设备类别和自定义维度(此处称为“类型”)。

所以期望的输出是:

因此,应列出每个日期、设备和类型组合的总浏览量。

我使用以下查询来获得此结果。我需要取消嵌套“类型”维度,因为它是自定义维度。

#standardsql

SELECT date, device, cd6_type, SUM(pvs) AS pageviews    

FROM(
  SELECT 
        date,
        fullvisitorID, 
        visitID, 
        totals.pageviews AS pvs,
        device.deviceCategory AS device
       , MAX(IF(hcd.index = 6, hcd.value, NULL)) AS cd6_type

        FROM `ga360-173318.62903073.ga_sessions_*` AS t,
              UNNEST (t.hits) AS h,
              UNNEST (h.customDimensions) AS hcd

        WHERE _table_suffix BETWEEN (SELECT FORMAT_DATE('%Y%m%d', '2019-07-08'))
                                AND (SELECT FORMAT_DATE('%Y%m%d', '2019-07-08'))

        AND h.type = "PAGE"

        GROUP BY
              date,
              fullVisitorID,
              visitID,
              totals.pageviews,
              device
   )

GROUP BY date, device, cd6_type

问题是我的结果与 GA 中出现的不匹配;查询返回的结果更少。在GA中,上述结果为:

180,812 次移动,A 类网页浏览量(与 GBQ 中的 149,149 次相比) 30,949 平板电脑,A 类网页浏览量(相比之下,GBQ 为 16,863)

我不确定为什么它们在 2 个系统中不匹配,并且想知道其他人如何计算跨维度的总浏览量。

【问题讨论】:

【参考方案1】:

您正在与customdimensions 交叉连接,因此您计算的不是页面,而是页面上的自定义维度。只是不要执行此交叉连接,如果您使用子查询获取自定义维度,则不需要它。

#standardsql

SELECT  
  date,
  device.deviceCategory AS device
  ,(SELECT hcd.value FROM h.customdimensions AS hcd WHERE hcd.index = 6 ) AS cd6_type
  ,COUNT(1) as pageviews
FROM  `bigquery-public-data.google_analytics_sample.ga_sessions_*`  AS t,
      UNNEST(t.hits) AS h

WHERE _table_suffix between '20170801' and '20170801' 

AND h.type = "PAGE"

GROUP BY date, device, cd6_type

【讨论】:

感谢您的回复!如果我尝试此查询,我会收到以下错误:“from 子句中引用的相关别名必须引用可从外部查询访问的有效数组,但 h 引用的数组在 GROUP BY 或[12:32] 的外部查询中的 DISTINCT。”第 12 行是建议的 customdimensions 子查询所在的位置。 没错 - 我错过了group by ...我猜你也是这样计算页数的。但是交叉连接消除了所有没有任何自定义维度的页面。更正了我的帖子 我刚刚意识到你在交叉加入点击后计算了 totals.pageviews。这并不理想,因为总计包含会话信息,如果您与命中交叉连接,每次命中都会重复这些信息。再次更正并缩短了查询:D @MartinWeitzmann 非常感谢你,在我读到这篇文章之前,会话级别的 totals.pageviews 与命中级别的维度让我大吃一惊:-D

以上是关于GA BigQuery:使用自定义维度计算浏览量的主要内容,如果未能解决你的问题,请参考以下文章

谷歌 BigQuery 中的自定义维度

无法使用 BigQuery 标准 SQL 提取特定 ID 的自定义维度

Google Data Studio:使用 Google BigQuery 数据连接器应用自定义维度作为过滤器

获取自定义维度总数

每个着陆内容分组的会话中 Bigquery 和 GA 之间的差异

BigQuery 在同一查询中展平 GA 会话和命中级别字段