Типы A/B-тестов

Adapty предлагает два типа A/B-тестов, каждый из которых подходит для разных сценариев тестирования:

  • Обычный A/B-тест: A/B-тест, созданный для одного флоу/пейвола/онбординга плейсмента.
  • Кросс-плейсментный A/B-тест: A/B-тест, созданный для нескольких плейсментов пейволов в вашем приложении. После того как A/B-тест назначает вариант , он показывает этот вариант одинаково во всех выбранных разделах приложения.

Кросс-плейсментные A/B-тесты доступны только начиная с Adapty SDK v3.5.0. Кросс-плейсментные A/B-тесты работают только с пейволами.

A/B-тесты для флоу требуют Adapty SDK v4.0.0+.

A/B-тесты для онбордингов требуют Adapty SDK v3.8.0+ (iOS, Android, React Native, Flutter), v3.14.0+ (Unity) или v3.15.0+ (Kotlin Multiplatform, Capacitor).

Пользователи с более ранними версиями пропускают их.

Каждый флоу/пейвол/онбординг получает вес, который распределяет трафик в ходе теста. Например, при соотношении 70% и 30% первый пейвол увидят примерно 700 из 1000 пользователей, второй — около 300. В кросс-плейсментных тестах веса задаются для каждого варианта, а не для каждого пейвола.

Такой подход позволяет сравнивать разные флоу и пейволы и принимать решения на основе данных для монетизации вашего приложения.

Когда использовать каждый тип

Каждый тип A/B-теста полезен в следующих случаях:

  • Обычные A/B-тесты:
    • У вас только один плейсмент в приложении.
    • Вы хотите запустить A/B-тест на одном плейсменте и отслеживать изменения экономики только для него, даже если в приложении несколько плейсментов.
    • Вы хотите провести A/B-тест на старых пользователях (тех, кто уже видел хотя бы один пейвол Adapty).
  • Кросс-плейсментный A/B-тест:
    • Вы хотите синхронизировать варианты сразу на нескольких плейсментах. Например, одновременно изменить цены в онбординге и в настройках приложения.
    • Вы хотите оценить общую экономику приложения. Запуск теста на всех плейсментах упрощает анализ статистики A/B-теста по сравнению с тестированием отдельных плейсментов.
    • Вы хотите проводить A/B-тест только на новых пользователях, то есть тех, кто ещё ни разу не видел ни одного пейвола Adapty.
    • Вы хотите использовать несколько пейволов в рамках одного варианта:
Пример нескольких пейволов в рамках одного варианта кросс-плейсментного A/B-теста

Ключевые различия

ФункцияОбычный A/B-тестКросс-плейсментный A/B-тест
Что тестируетсяОдин флоу/пейвол/онбордингНабор пейволов, принадлежащих одному варианту
Согласованность вариантаВариант определяется отдельно для каждого плейсментаОдин и тот же вариант используется во всех плейсментах пейволов
Таргетинг по аудиторииЗадаётся для каждого плейсмента флоу/пейвола/онбордингаОбщий для всех плейсментов пейволов
АналитикаАнализируется один плейсмент флоу/пейвола/онбордингаАнализируется всё приложение по тем плейсментам, которые входят в тест
Распределение веса вариантовДля каждого флоу/пейвола/онбордингаДля набора пейволов
ПользователиДля всех пользователейТолько новые пользователи (те, кто ещё не видел пейвол Adapty)
Версия SDK AdaptyДля флоу: v4.0.0+. Для пейволов: любая. Для онбордингов: v3.8.0+ (iOS, Android, React Native, Flutter), v3.14.0+ (Unity), v3.15.0+ (KMP, Capacitor)3.5.0+
Лучше всего подходит дляТестирования независимых изменений в одном плейсменте флоу/пейвола/онбординга без учёта общей экономики приложенияОценки общих стратегий монетизации в масштабах всего приложения

Логика выбора A/B-теста

Межплейсментные A/B-тесты имеют приоритет над обычными A/B-тестами. Однако межплейсментные тесты показываются только новым пользователям — тем, кто ещё не видел ни одного пейвола Adapty (метод SDK getPaywall для них ни разу не вызывался). Это обеспечивает согласованность результатов между плейсментами.

На следующей схеме показана логика, которую Adapty использует для выбора A/B-теста для плейсмента:

Diagram showing the A/B test selection logic for a paywall placement

На странице A/B Tests тесты пейволов, онбордингов, флоу и кросс-плейсментные тесты отображаются на отдельных вкладках.

Страница списка A/B-тестов с вкладками для типов тестов: обычные, онбординг и кросс-плейсмент

Ограничения кросс-плейсментных A/B-тестов

Кросс-плейсментные A/B-тесты не могут включать плейсменты с флоу или онбордингом.

Кросс-плейсментные A/B-тесты гарантируют, что каждый пользователь видит один и тот же вариант во всех плейсментах теста. Это создаёт следующие ограничения:

  • Участвовать могут только новые пользователи. Новый пользователь — тот, кто ещё не видел ни одного пейвола Adapty и чьё приложение ни разу не вызывало getPaywall. Для остальных пользователей Adapty не может гарантировать согласованную цепочку пейволов.
  • Первый плейсмент, с которым сталкивается пользователь, определяет, какой пейвол покажет Adapty. Изменить назначение пользователя или записать одного и того же пользователя в более чем один кросс-плейсментный A/B-тест нельзя.

Как только пользователь получает кросс-плейсментный пейвол, он видит его в течение 90 дней — даже после остановки теста. Чтобы изменить этот срок, в настройках General измените значение Cross-placement variation stickiness.

Приоритет Crossplacement A/B-тестов

  • Crossplacement A/B-тесты всегда имеют приоритет над обычными A/B-тестами и A/B-тестами онбордингов. Если новый пользователь подходит одновременно для Crossplacement-теста и обычного теста на одном плейсменте, будет показан Crossplacement-тест.

  • Когда несколько Crossplacement A/B-тестов с одной и той же аудиторией используют один плейсмент, Adapty автоматически расставляет приоритеты по порядку добавления тестов. Первый добавленный тест получает наивысший приоритет. Изменить его вручную нельзя.

  • Тесты, нацеленные на меньшие сегменты аудитории, автоматически получают приоритет над тестами, которые нацелены на сегмент «Все пользователи».

В Analytics кросс-плейсментный A/B-тест отображается как несколько дочерних тестов — по одному на каждый плейсмент. Дочерние тесты именуются по шаблону <test-name> child-0, <test-name> child-1 и так далее. Нумерация соответствует порядку плейсментов на странице с деталями A/B-теста. Чтобы просмотреть результаты по конкретному плейсменту, используйте фильтр Placement.

Следующие шаги