Расхождения в «метрике активных пользователей» между панелью мониторинга 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на случай, если кто-то собирается предположить, что это может быть проблемой

Ответы на вопрос(3)

Ваш ответ на вопрос