Расхождения в «метрике активных пользователей» между панелью мониторинга Firebase Analytics и экспортом BigQuery
Согласно документам Firebase Analytics (https://support.google.com/firebase/answer/6317517#active-users), активное число пользователей - это количество уникальных пользователей, инициировавших сеансы в определенный день. Также в соответствии с документами, каждый раз, когда сеанс запускается событие сsession_start
Имя отправлено. Я пытаюсь получить эту метрику, используя экспорт BigQuery, но мой запрос дает мне другие результаты (15636 для BigQuery, 14908 для аналитики FB)
Я также пытался конвертировать в разные часовые пояса, чтобы понять, может ли это быть проблемой, но независимо от того, какой часовой пояс я пробую, я никогда не получу одинаковые (или похожие) результаты.
Какой запрос мне следует выполнить, чтобы получить те же результаты, что и на панели мониторинга Firebase Analytics для активных пользователей?
Мой запрос
SELECT EXACT_COUNT_DISTINCT(user_dim.app_info.app_instance_id)
FROM table_date_range([XXXXX.app_events_], timestamp('2016-11-26'), timestamp('2016-11-29'))
WHERE DATE(event_dim.timestamp_micros) = '2016-11-27'
AND event_dim.name ='session_start'
Спасибо
Обновить
После@djabiответ Я изменил свой запрос, чтобы использоватьuser_engagement
скорее, чемsession_start
и теперь это работает намного лучше. Тем не менее, есть небольшие отличия (они варьируются от 10 до 50 из 16K, в зависимости от даты).
Я попытался еще раз, используя разные часовые пояса, играя сDATE(date_add(event_dim.timestamp_micros,1,'hour'))
но я никогда не получал точное число, которое я получаю на панели инструментов Firebase Analytics.
Новые числа достаточно хороши, чтобы считаться статистически приемлемыми, но интересно, есть ли у кого-нибудь предложение улучшить запрос и получить точные результаты?
Текущий запрос:
SELECT
COUNT(*) AS active_users
FROM (
SELECT
COALESCE(user_dim.user_id, user_dim.app_info.app_instance_id) AS user_id
FROM
TABLE_DATE_RANGE([XXXXX.app_events_], TIMESTAMP('2016-11-24'), TIMESTAMP('2016-11-29'))
WHERE
DATE(event_dim.timestamp_micros) = '2016-11-25'
AND event_dim.name ='user_engagement'
GROUP BY
user_id )
Примечание. На данный момент мы не отправляем user_id, поэтомуCOALESCE
всегда будет возвращатьapp_instance_id
на случай, если кто-то собирается предположить, что это может быть проблемой