Вычисление сессий, пользователей и доходов по пользовательскому измерению в области BigQuery - PullRequest
0 голосов
/ 29 апреля 2020

Спасибо, что заглянули!

Моя цель - получить количество сеансов, пользователей, транзакций и доходов по устройствам для определенных поддоменов на моем сайте, имена которых хранятся в пользовательском измерении. Ниже приведен желаемый результат и имя_сайта хранится в customdimension 4.

desired output

Запрос ниже от этого ответа с использованием публикации GA c набор данных. Я изменил его, заменив просмотры страниц сеансами, добавил нужные столбцы и попытался изолировать просмотры страниц, являющиеся входом для имени_сайта, потому что я думал, что это точный метод.

SELECT  
   (SELECT hcd.value FROM h.customdimensions AS hcd WHERE hcd.index = 4 ) AS site_name,
   device.deviceCategory AS device,
   SUM(totals.visits) as sessions,
   COUNT(DISTINCT fullVisitorId) as users,
   SUM(totals.transactions) as transactions,
   SUM(totals.transactionREvenue) as revenue
FROM  `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
      UNNEST(hits) AS h

WHERE _table_suffix between '20170801' and '20170801' 
AND hits.isEntrance IS TRUE
AND totals.visits = 1

GROUP BY site_name, device

Когда я добавляю AND hits.isEntrance IS TRUE, Я получаю сообщение об ошибке Не удается получить доступ к полю isEntrance ... Так как я отклонил хиты, я удивлен этой ошибкой. Если запрос будет точным без этой строки, пожалуйста, дайте мне знать.

К сожалению, я не могу сравнить результаты запроса с интерфейсом GA, потому что это довольно дорогостоящий запрос для моего реального набора данных.

1 Ответ

2 голосов
/ 29 апреля 2020

Когда я добавляю AND hit.isEntrance, TRUE * Вы должны ссылаться на этот необъявленный (UNNEST(hits) AS h) экземпляр (в данном случае h), поэтому используйте вместо него AND h.isEntrance IS TRUE, как в примере ниже

#standardSQL
SELECT  
   (SELECT hcd.value FROM h.customdimensions AS hcd WHERE hcd.index = 4 ) AS site_name,
   device.deviceCategory AS device,
   SUM(totals.visits) as sessions,
   COUNT(DISTINCT fullVisitorId) as users,
   SUM(totals.transactions) as transactions,
   SUM(totals.transactionREvenue) as revenue
FROM  `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
      UNNEST(hits) AS h

WHERE _table_suffix between '20170801' and '20170801' 
AND h.isEntrance IS TRUE
AND totals.visits = 1

GROUP BY site_name, device
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...