Короткий ответ
Нужно провести QA на ограниченной выборке (staging-окружение или небольшая группа пользователей/тестовый релиз) — сверить, что событие действительно отправляется при ожидаемом действии, содержит все нужные свойства, не дублируется и не отправляется при отсутствии действия (ложные срабатывания).
Как это работает подробнее
Валидация нового события обычно включает: (1) ручное воспроизведение действия в тестовой среде и проверку, что событие появилось в сыром потоке данных с ожидаемыми properties, (2) проверку на дубли при повторных действиях (например, повторный клик play/pause), (3) сверку объёма событий с ожидаемым порядком величины после раскатки на небольшую долю пользователей.
Пример кода
example.sql
-- Сравнение количества video_watched на пользователя за тестовый период
SELECT user_id, COUNT(*) AS cnt
FROM events_raw
WHERE event_name = 'video_watched' AND event_date = CURRENT_DATE
GROUP BY user_id
ORDER BY cnt DESC
LIMIT 20;Что использовать на практике
- На практике. Полезно сравнить новое событие с уже существующим похожим (например, "video_started" против "video_watched") на предмет согласованности именования, типов свойств и единиц измерения (секунды vs миллисекунды), чтобы не создавать несогласованность в будущей аналитике.
- Проверка. если у части пользователей cnt аномально большой относительно числа реально просмотренных видео (известно из ручного теста), это указывает на дублирование событий, требующее исправления до полной раскатки.
Подводные камни
- Частые ошибки. Проверяют только «событие появилось хотя бы раз» и сразу раскатывают на 100% пользователей, не заметив, что событие дублируется на части устройств (например, на Android из-за особенностей жизненного цикла приложения) — проблему потом находят через недели по аномально высоким значениям метрики просмотров.