BigQuery: просмотры страниц GA и события разделены по пользовательским измерениям, группам содержимого и категории / действию событий? - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь создать представление со следующими полями: Дата, значения для пользовательского измерения X, значения для пользовательского измерения Y, идентификатор посетителя, просмотры страниц, значения для группы содержимого A, значения для группы содержимого B, событие категория, событие action .

Я знаю, что это много полей, и у меня действительно трудное время, чтобы найти решение.

Сейчас я создал одно представление с Дата, значения для пользовательского измерения X, значения для пользовательского измерения Y, идентификатор посетителя, просмотры страниц .

Затем я создал второе представление с Дата, идентификатор посетителя, значения для группы содержимого A, значения для группы содержимого B, категория события, действие события .

I присоединился к двум на Дата и Идентификатор посетителя .

- код ниже -

CREATE VIEW `TEST_1`
AS

SELECT
date AS Date,
(SELECT value FROM UNNEST(customDimensions) WHERE index=2) AS Institution_ID,
(SELECT value FROM UNNEST(customDimensions) WHERE index=3) AS Institution_Name,
fullVisitorId AS Visitor_ID,
SUM(totals.pageviews) AS Pageviews
FROM
`ga_sessions_*`
GROUP BY
date,
Visitor_ID,
Institution_ID,
Institution_Name

CREATE VIEW `TEST_2`
AS

select 
DATE as DATE,
fullVisitorId AS Visitor_ID,
hits.contentGroup.contentGroup3 as Topic_Name,
hits.contentGroup.contentGroup5 as Topic_ID,
hits.eventInfo.eventCategory as Event_Category,
hits.eventInfo.eventAction as Event_Action
FROM
`ga_sessions_*`
, UNNEST (HITS) AS HITS


CREATE VIEW `TEST_3` AS
SELECT A.DATE, 
A.VISITOR_ID, 
Institution_ID, 
Institution_Name,  
Pageviews, 
Topic_Name, 
Topic_ID, 
Event_Category, 
Event_Action  
FROM `TEST_1` A 
JOIN `TEST_2` B ON A.DATE=B.DATE AND A.VISITOR_ID=B.VISITOR_ID

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

Может кто-нибудь помочь мне понять, что я делаю неправильно? Большое вам спасибо!

1 Ответ

0 голосов
/ 10 марта 2020

Эта статья объясняет формат и схему данных Google Analytics, которые импортируются в BigQuery, а здесь это графическое представление.

Это Поваренная книга BigQuery содержит примеры того, как построить запросы данных Google Analytics, которые вы экспортируете в BigQuery.

Пожалуйста, взгляните на this , чтобы глубже понять UNNEST. () функция, которая работает как «CROSS JOIN» в отношении «1 ко многим».

Пожалуйста, имейте в виду, что я не знаю ваших данных. Сказав это, кажется, что в вашем случае, когда вы создаете представление 3, которое является соединением между представлением 1 и представлением 2, CROSS JOIN может происходить в отношении «многие ко многим». Возможно, вам стоит попробовать следующее:

SELECT
date AS Date,
(SELECT value FROM UNNEST(hits.customDimensions) WHERE index=2) AS Institution_ID,
(SELECT value FROM UNNEST(hits.customDimensions) WHERE index=3) AS Institution_Name,
fullVisitorId AS Visitor_ID,
SUM(totals.pageviews) AS Pageviews,  
hits.contentGroup.contentGroup3 as Topic_Name,
hits.contentGroup.contentGroup5 as Topic_ID,
hits.eventInfo.eventCategory as Event_Category,
hits.eventInfo.eventAction as Event_Action
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST (hits) AS hits
GROUP BY
date,
Visitor_ID,
Institution_ID,
Institution_Name,
hits.contentGroup.contentGroup3,
hits.contentGroup.contentGroup5,
hits.eventInfo.eventCategory,
hits.eventInfo.eventActio
...