GA BigQuery: расчет просмотров страниц с пользовательским измерением - PullRequest
1 голос
/ 11 июля 2019

Используя данные GA BigQuery, я пытаюсь рассчитать общее количество просмотров страниц по 3 измерениям: дате, категории устройства и пользовательскому измерению (называемому здесь «типом»).

Итак, желаемый результат: enter image description here

Таким образом, общее количество просмотров страниц должно указываться для каждой даты, устройства и комбинации типов.

Я использовал следующий запрос, чтобы получить этот результат. Мне нужно развернуть измерение «тип», потому что это пользовательское измерение.

#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 (по сравнению с 149 149 в ГБК)
  • 30 949 планшетов, просмотров страниц типа A (по сравнению с 16 863 в ГБК)

Я не уверен, почему они не совпадают в двух системах, и мне интересно, как другие рассчитывают общее количество просмотров страниц по измерениям.

1 Ответ

1 голос
/ 11 июля 2019

Вы перекрестно соединяетесь с 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

...