Вы логируете событие experiment_exposure для A/B-тестов. Какой инвариант наиболее полезен для контроля качества данных?

AРаспределение вариантов должно быть строго 50/50 каждый день, иначе данные experiment_exposure некорректны
BОдин пользователь за время эксперимента должен получать ровно один вариант, а ключевые поля experiment_exposure обязаны быть заполнены
CСобытие experiment_exposure отправляется при каждом открытии экрана: чем больше отправок, тем точнее доли вариантов
DСобытие experiment_exposure логируется только при первом запуске приложения и далее не повторяется в течение всего эксперимента
Правильный ответ. Инварианты для experiment_exposure должны ловить противоречия в назначении варианта и обязательные поля, а не требовать идеальной пропорции.

Разбор

Главный инвариант данных эксперимента — стабильность присвоения варианта на пользователя: один и тот же user_id не должен встречаться в логе с двумя разными значениями variant. Это ловит баги рандомизации, кросс-девайс склейки и кеширования. Заполненность ключевых полей (experiment_id, variant, user_id) проверяется параллельно. Жёсткое требование 50/50 каждый день нереалистично — небольшие SRM на коротких окнах нормальны. Отправка при каждом открытии экрана раздувает объём, а отправка только при первом запуске теряет переназначения и долгосрочные эксперименты.

Тренировать продукт в Telegram

Ещё вопросы по теме «Инструментация и качество данных»