В корзине пользователь может добавлять товар и менять количество. Какой дизайн схемы событий обычно удобнее для аналитики и контроля качества данных?
AОдно событие
cart_updated с полем cart_json и user_id, куда передаётся вся корзина одной большой строкой при каждом измененииBТолько клики
plus_click и minus_click с user_id, без product_id и quantity, чтобы зафиксировать сам факт нажатияCАтомарные события
cart_item_added и cart_item_removed со свойствами cart_id, product_id и quantity_deltaDСнимки
cart_state с полями items_json и user_id раз в день, без отдельных событий по добавлению или удалению товаровПравильный ответ. Атомарные события с понятными свойствами проще валидировать и использовать в воронках, чем огромные снимки состояния.
Разбор
События с quantity_delta позволяют считать добавления, удаления и итоговые количества без тяжёлых парсингов. Их проще контролировать через инварианты: обязательные поля, разумные диапазоны, отсутствие пустых идентификаторов. Полный снимок корзины строкой ухудшает логирование, усложняет джойны и может ломаться при изменениях формата. Для аналитики пути пользователя атомарные события обычно дают более прозрачную картину.
Ещё вопросы по теме «Инструментация и качество данных»
- Вы проектируете схему событий для регистрации. Какой вариант сбора событий лучше всего подходит, чтобы считать конверсию в успешную регистрацию и понимать, через какой способ вошли?
- Вы хотите логировать применение фильтров в каталоге. Какой вариант лучше для таксономии событий и последующей аналитики?
- Вы настраиваете мониторинг качества данных для платёжного флоу. Какой набор проверок согласованности наиболее практичен и устойчив к сезонности?
- После обновления SDK сумма по `purchase_succeeded` выросла почти в 2 раза, но платёжный провайдер этого не подтверждает. Что наиболее вероятно и какое действие по качеству данных самое уместное?
- В мобильном приложении события могут копиться офлайн и отправляться позже. Какие поля времени лучше заложить в логирование, чтобы корректно строить путь пользователя и контролировать задержки?
- Все вопросы по «Инструментация и качество данных» →