Performance23 октября 2026 г.3 мин

Кого считать увидевшим тест: событие показа варианта

Как задать exposure event для A/B-теста: назначение, применение варианта, результат, повторные показы и риск отбора только кликнувших.

Обложка статьи: Кого считать увидевшим тест: событие показа варианта

Сервис выдал посетителю вариант Б, но нужный блок не загрузился. Другой человек получил блок, ничего не нажал и ушёл. Если считать увидевшими только кликнувших, эксперимент выберет людей по действию, на которое сам пытается повлиять.

Перед запуском нужны разные отметки: assignment — назначение, exposure — согласованный момент возможности получить вариант, outcome — результат. Название exposure не доказывает, что человек глазами прочитал текст.

Разведите три события во времени

Сохраните ID эксперимента, версию, единицу назначения, вариант и время. Для exposure добавьте причину срабатывания: открытие общей страницы, вход в общий экран или применение ветки интерфейса. Условие должно быть проверяемым до результата.

Amplitude описывает exposure settings как правила включения в анализ. Это конфигурация продукта, которую нужно согласовать с реальным пользовательским сценарием. Срабатывание технического события и фактическая видимость компонента могут расходиться.

В JavaScript SDK Amplitude вызов variant() при настроенной интеграции или exposure provider может автоматически отправлять exposure. Поэтому разработчик должен проверить место вызова. Предварительное чтение флага при старте приложения способно отметить пользователя раньше нужного экрана.

Заполненный контракт для блока цены

Условный сценарий: тест меняет объяснение цены на странице тарифа. Единица — авторизованный аккаунт, назначение сохраняется. Обе версии страницы используют одно условие входа. Ниже предлагаемый контракт, не настройка какого-либо реального сайта.

Условный пример
ПолеПравилоПроверка
AssignmentПервое подходящее открытие страницы тарифаОдин аккаунт сохраняет группу
ExposureОбщий экран готов применить назначенную веткуУсловие не зависит от клика по новому тексту
OutcomeОплата за 7 суток от согласованного начала окнаОдинаковое окно в обеих группах
Повторный визитДополнительный показ остаётся в журналеАккаунт не становится новой единицей
Сбой вариантаНазначение остаётся, ошибка отмечаетсяНе удалять неудачную загрузку незаметно

На схеме это выглядит так: назначили А → применили ветку А → получили либо не получили оплату. В другом пути: назначили Б → сбой загрузки → оплаты нет. Второй путь тоже описывает последствия назначения и важен для оценки полного изменения.

Кого включать в основной отчёт

Для эффекта решения «показывать этот вариант подходящим аккаунтам» основной анализ по исходному назначению сохраняет всех назначенных, включая отсутствие клика и технический сбой. Конкретный протокол фиксирует аналитик до старта.

Срез по достигшим общей точки может помочь оценить воздействие в релевантном сценарии, если достижение точки не зависит от варианта и симметрично определяется для обеих групп. Если Б меняет навигацию до неё, такой отбор уже способен сместить сравнение. Не превращайте его в основной результат задним числом.

  • Флаг прочитан, страница не открыта: есть assignment, но нет обещанного пользовательского показа.
  • Блок вне экрана: технически применённая версия не равна прочитанному сообщению.
  • Кнопка нажата: это возможный outcome, а не нейтральное условие включения.
  • Пользователь вернулся: новый показ не добавляет второго пользователя в знаменатель.

Точность знаменателя разобрана в контракте метрики. Здесь добавляется причинный вопрос: не выбрали ли мы участников по поведению, которое мог изменить эксперимент?

Приёмка до первого платного посетителя

Пройдите контроль, вариант, медленную загрузку, ошибку компонента и повторный визит. Сопоставьте видимое состояние с журналом событий. Проверьте порядок по времени возникновения, задержку доставки и связь идентификаторов, а не только порядок строк в интерфейсе.

В отчёте рядом покажите назначенных, отметившихся exposure и совершивших outcome. Разница между первыми двумя — диагностический материал. Начните с одной трассы на каждый пограничный случай и исправьте момент отправки события до интерпретации роста конверсии.

Ещё по теме