Почему такое большое расхождение в уникальных событиях между Google Analytics и BigQuery? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь получить количество уникальных событий в BigQuery, и, несмотря на все мои усилия, результаты даже не близки к тому, что я вижу в GA.Некоторые строки имеют разницу до 50% между BQ и GA, и я не могу понять, почему.Общее количество событий и пользователей точно такое же, как в GA, только уникальные события, которые не совпадают.

Я использую функцию CONCAT для построения sessionID, и когда он используется для вычисления общего количества сеансов за определенный период, он возвращает очень близкое число к тому, что я вижу в GA.Но как только я использую его со столбцом категории событий, цифры отключаются.

Это мой запрос:

SELECT h.eventInfo.eventCategory, 
count(h.eventInfo.eventCategory) as total_events, 
count(distinct CONCAT(fullVisitorId, CAST(visitId AS STRING))) as unique_events 
FROM `marketing-stack.12345678.ga_sessions_20190525` as ga,
UNNEST(ga.hits) as h 
GROUP BY h.eventInfo.eventCategory

Например, верхнее событие выглядит следующим образом в GA:

  • 4276 всего событий - 3155 уникальных событий - 1510 пользователей

А в BigQuery:

  • 4276 всего событий - 1566 уникальных событий - 1510пользователи

Я что-то не так делаю в запросе или есть разница между GA и BQ в отношении уникальных событий и того, как вы их считаете, что я не понимаю?

Буду признателен за любую помощь или вклад, потому что я в недоумении здесь

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Вы считаете пользователей событиями, а не уникальными событиями ...

Действие и метка не должны быть NULL, когда вы COUNT(DISTINCT ) их.

SUM( (SELECT
 COUNT(DISTINCT CONCAT(h.eventInfo.eventCategory,
    coalesce(h.eventinfo.eventaction,  ''),
    coalesce(h.eventinfo.eventlabel, '')
 )) FROM t.hits h ) ) uniqueEvents

См. Также здесь

0 голосов
/ 12 июня 2019

Одна возможность - столкновения в CONCAT().Вы можете попробовать использовать разделитель:

 count(distinct CONCAT(fullVisitorId, ':', CAST(visitId AS STRING))) as unique_events 

Это просто возможность.

Другая возможность состоит в том, что одно или другое значение равно NULL.COALESCE() может помочь:

 count(distinct CONCAT(COALESCE(fullVisitorId, ''), ':', COALESCE(CAST(visitId AS STRING), ''))) as unique_events 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...