Холдауты#
В некоторых случах помимо эффекта от отдельного эксперимента может потребоваться измерить совокупный эффект от группы / серии экспериментов.
Для решения подобных задач платформа предоставляет холдауты.
Что такое холдаут?#
Холдаут (holdout) – инструмент для проведения А/В тестов, позволяющий случайно и воспроизводимо разделить трафик на две выборки: основную часть и отложенную выборку по аналогии с тестом и контролем в эксперименте.
Основными параметрами холдаута являются: название и доля трафика в отложенной выборке.
Между холдаутами и экспериментами довольно схожая механика:
- разделение трафика на основе соли
- наличие отложенной выборки, интерпретируемой как контрольная группа
- возможность построить отчёт
Важно учитывать, что тип участника, по которому проводится разделение на отложенную и основную
выборки не определён в холдауте, а берётся из эксперимента использующего холдаут.
Это значит, что холдаут может быть использован как в экспериментах по userId
, так по visitorId
и другим типам участников.
Также это значит, что один и тот же пользователь может попадать как в отложенную выборку,
так и в основную в зависимости от используемого типа участника.
Например, в экспериментах по userId
пользователь может оказаться в отложенной выборке, а в
экспериментах по visitorId
- в основной.
В каких случаях холдаут полезен?#
Можно использовать холдаут для измерения совокупного эффекта от серии экспериментов. В таком сценарии все эксперименты из серии должны использовать один и тот же холдаут для исключения отложенной выборки из каждого эксперимента. Подвести итоги серии экспериментов поможет отчёт со сравнением метрик между основной и отложенной выборками.
Такой сценарий возможен только на холдаутах поддерживающих использование отложенной выборки.
Как создать холдаут?#
На данный момент средства управления холдаутами не вынесены в UI.
Где найти отчёт?#
Для построения отчётов по холдаутам существуют специальные технические эксперименты. Особенности таких экспериментов:
- имеют особый тип:
Holdout Analyzer
- могут иметь только две группы (фичи) в настройках, контрольная ассоциируется с отложенной выборкой
- не требуют (и не допускают) размещения на слоях
- необходимо указать для какого холдаута рассчитывать отчёт и тип участника
Если кратко: эксперимент в таком случае используется только для построения отчёта.
Соответственно если эксперимента для нужного холдаута и типа участника ещё нет - его нужно создать и настроить. У холдаута может быть не более одного технического эксперимента на каждый анализируемый тип участника.
Отчёт будет считаться только после создания эксперимента!
Следует учесть, что в отсутствие технического эксперимента отчёт по холдауту считаться не будет!
Соответственно чтобы отчёт содержал полные данные с момента начала использования холдаута, необходимо завести такой технический эксперимент, настроить, запустить, а уже после запускать эксперименты использующие холдаут.
Как проверить в какую из выборок попал пользователь?#
В некоторых случаях, например, при проведении длительных серий экспериментов, может потребоваться внутри кода ветвления в сервисе получить разметку: в какую из частей холдаута попадает трафик.
Для этого также используются вышеупомянутые технические эксперименты.
Конфиги экспериментов с типом Holdout Analyzer
выгружаются в сплиттер и для них можно запрашивать
группу так же как и для обычных экспериментов.
Что стоит учесть:
- вне зависимости от того, какие метки групп указаны в техническом эксперименте, конфиги для
сплиттера всегда содержат две группы:
hold_part
иgeneral_part
. Соответственно проверка на попадание в отложенную выборку выполняется через проверку попадания трафика в группуhold_part
по метке технического эксперимента. - для определения попадания в одну из групп используется тип участника, указанный в техническом
эксперименте (если в техническом эксперименте указан
userId
, то сплит в холдауте проводится поuserId
). Если нужно иметь возможность проверять попадание в отложенную выборку как поuserId
, так и поvisitorId
, стоит завести два технических эксперимента с разными типами участников. В таком случае для холдаута будет доступно два разных отчета и конфига в сплиттере.
Функционал диагностики сплитования также доступен на странице технического эксперимента для проверки попадания в отложенную выборку холдаута.
Какие есть ограничения стоит учесть при работе с холдаутами?#
На платформе существует ряд технических ограничений при работе с холдаутами:
- операции с холдаутами не вынесены в интерфейс админки, для создания холдаута необходимо обратиться к команде Trisigma, у каждого нашего клиента есть свое контактное лицо, кто может помочь решить этот вопрос.
- отчёт для холдаута можно получить только через заведение и запуск специального технического эксперимента
- на текущий момент в эксперименте можно использовать не более одного холдаута
- при раскатке эксперимента через АВ наличие холдаута в эксперименте не учитывается! Это значит, что пользователи из отложенной выборки в ходе раскатки будут получать раскатываемую фичу, так же как и пользователи из основной выборки холдаута
- система разрешения конфликтов между экспериментами на слоях, не учитывает размещение на холдауте. Для экспериментов размещаемых на отложенной части холдаута (например, для глобальной отложенной выборке) это означает, что указание конфликтов может привести к неожиданным результатам
Подробнее о холдаутах и системе конфликтов
Основной тезис: система разрешения конфликтов ничего не знает о использовании экспериментом холдаутов, поэтому конфликты определяются без учёта холдаутов.
Рассмотрим пример:
- два эксперимента
А
иВ
- оба размещены на одном слое, на 100% трафика слоя (или имеют перекрытие по трафику)
- используют один холдаут.
А
размещён на основной части холдаута, аВ
- на отложенной
Если в таком случае в одном из экспериментов другой будет указан как конфликтующий, система разрешения конфликтов на слоях будет блокировать запуск второго эксперимента, после запуска первого из них, т.к. с точки зрения размещения на слое оба эксперимента задействуют общий трафик, и отмечены как конфликтующие.
В случае, когда оба эксперимента размещены на одной и той же части холдаута, конфликты будут определяться ожидаемым образом
Есть ли какие-то риски при использовании холдаутов?#
Риски есть, и, в основном, они связаны с техническими ограничениями платформы. Ниже собран перечень рисков, которые важно учесть:
- наличие холдаута не гарантирует автоматический расчёт отчёта по отложенной выборке. Если перед проведением экспериментов на холдауте не завести технический эксперимент для расчёта отчёта или не запустить его - отчёт не будет считаться
- фактическое поведение системы определения конфликтов на слоях может отличаться от ожидаемого (см. детали в ограничениях выше)
- при раскатке через АВ эксперимента на холдауте раскатываемый функционал станет доступен пользователям из отложенной выборке. Соответственно есть риск испортить эксперимент раскатив функционал на отложенную выборку, если предварительно не заложить проверку на не попадание в отложенную выборку в коде
- технический риск связанный с разработкой сервисов, в которых проводятся эксперименты. В разработке надо учитывать наличие отложенной выборки и корректно определить функционал доступный пользователям из неё. Помимо этого, при проведении длительных серий экспериментов на отложенной выборке, разработке нужно поддерживать большее количество ветвлений в коде, а значит, возрастает риск роста ошибок в разработке. Ошибки могут привести к тому, что пользователи из отложенной выборки получат тестовый функционал и чистый, несмещённый эффект от серии экспериментов измерить уже не получится