В мобильном приложении события могут копиться офлайн и отправляться позже. Какие поля времени лучше заложить в логирование, чтобы корректно строить путь пользователя и контролировать задержки?
AХранить только
received_at: серверное время точное и проще используется в отчётах, восстановления порядка действий не требуетсяBХранить
event_time и received_at вместе: первое отражает момент действия пользователя, второе фиксирует момент приёма серверомCХранить только
event_time: момент действия достаточен для воронок, серверное время в отчётах считается дублирующим полемDХранить порядок поступления событий и
user_id: этого хватает для восстановления последовательности без отдельного поля времениПравильный ответ. Для качественной аналитики нужны и время действия (
event_time), и время поступления (received_at) для контроля лагов.Разбор
В офлайн-сценариях события могут лежать в буфере устройства часами и приходить позже, поэтому одного времени недостаточно. event_time фиксирует, когда действие произошло (его берут для построения пути и воронок), а received_at показывает момент приёма сервером и позволяет считать задержку доставки и контролировать офлайн-буфер. Только received_at ломает порядок действий пользователя при поздних отправках, только event_time не даёт измерить задержку, а отказ от времени делает анализ невозможным при перемешанных пакетах.
Ещё вопросы по теме «Инструментация и качество данных»
- Вы проектируете схему событий для регистрации. Какой вариант сбора событий лучше всего подходит, чтобы считать конверсию в успешную регистрацию и понимать, через какой способ вошли?
- Вы хотите логировать применение фильтров в каталоге. Какой вариант лучше для таксономии событий и последующей аналитики?
- Вы настраиваете мониторинг качества данных для платёжного флоу. Какой набор проверок согласованности наиболее практичен и устойчив к сезонности?
- После обновления SDK сумма по `purchase_succeeded` выросла почти в 2 раза, но платёжный провайдер этого не подтверждает. Что наиболее вероятно и какое действие по качеству данных самое уместное?
- Вы описываете схему событий для `purchase_succeeded`. Как лучше хранить сумму покупки в свойствах события, чтобы избежать проблем качества данных при агрегациях?
- Все вопросы по «Инструментация и качество данных» →