Налаштування A/B тестування у мобільному додатку
A/B тест — це контрольований експеримент, в якому один сегмент користувачів бачить варіант A, інший — варіант B, і ми вимірюємо, який варіант дає кращий результат по цільовій метриці. На практиці більшість A/B тестів у мобільних додатках або налаштовані неправильно (немає статистичної значимості, експеримент зупинили занадто рано), або взагалі не запускаються — тому що немає інфраструктури.
Вибір інструменту
| Інструмент | Підходить для | Мінус |
|---|---|---|
| Firebase A/B Testing | Прості UI/текст/параметри | Обмежена гнучкість таргетингу |
| Amplitude Experiment | Продуктові гіпотези з аналізом retention | Платний, вимагає Amplitude Analytics |
| Statsig | Повний цикл: флаги, експерименти, аналіз | Вимагає налаштування |
| Growthbook | Open-source, self-hosted | Інфраструктурні видатки |
Для більшості мобільних проектів Firebase A/B Testing — розумний старт. Інтеграція через Remote Config, нема дополнительних SDK.
Firebase A/B Testing: налаштування
Firebase A/B Testing побудований на Remote Config. Спочатку визначаємо параметр:
// Отримуємо значення з Remote Config
let remoteConfig = RemoteConfig.remoteConfig()
remoteConfig.configSettings = RemoteConfigSettings()
remoteConfig.configSettings.minimumFetchInterval = 0 // в debug
remoteConfig.fetchAndActivate { status, error in
let ctaText = remoteConfig.configValue(forKey: "checkout_cta_text").stringValue
self.checkoutButton.setTitle(ctaText, for: .normal)
}
У Firebase Console → A/B Testing створюємо експеримент:
- Вибираємо
checkout_cta_textяк Target Parameter - Control: "Оформити замовлення"
- Variant A: "Купити зараз"
- Цільова метрика:
purchase(конверсійна подія) - Відсоток учасників: 50%
- Мінімальний розмір выборки: Firebase рахує автоматично
Критичні помилки в A/B тестах
Зупинення тесту при перших значимих результатах — найчастіша помилка. Якщо дивитися на p-value кожен день і зупинити тест коли p < 0.05 вперше — ймовірність хибнопозитивного результату значно вище заявлених 5%. Тест потрібно зупинити, коли досягнутий заздалегідь визначений розмір выборки.
Один тест — одна метрика. Не можна оптимізувати одночасно conversion rate та session length одним тестом. Якщо обидві метрики зростають — добре, але цільова повинна бути одна.
Novelty effect. Новий дизайн дає всплеск кліків на першому тижні просто тому що він новий. Для поведінкових тестів мінімальний строк — 2 тижні. Для retention-тестів — 4 тижні.
Statsig для складних експериментів
Коли потрібна більш гнучка сегментація (тестуємо тільки на користувачах з Москви, у яких > 3 сесій):
// iOS Statsig SDK
import StatsigSDK
Statsig.initialize(sdkKey: "client-xxx") {
let experiment = Statsig.getExperiment("checkout_flow_v2")
let variant = experiment.getValue(forKey: "flow_type", defaultValue: "standard")
if variant == "simplified" {
self.showSimplifiedCheckout()
} else {
self.showStandardCheckout()
}
}
// Android
val experiment = Statsig.getExperiment("checkout_flow_v2")
val flowType = experiment.getString("flow_type", "standard")
Statsig підтримує Stratified Sampling — рівномірне розповсюджування користувачів за стратами (платформа, країна, план підписки). Без стратифікації випадкове розповсюджування може створити когорти з різним складом, що спотворює результати.
Логування експозиції
Для правильного аналізу важливо логувати факт показу варіанту — не тільки конверсію:
Analytics.logEvent("experiment_exposure", parameters: [
"experiment_id": "checkout_cta_v2",
"variant": variantName,
"user_id": userId
])
Це дозволяє аналізувати конверсію тільки серед користувачів, які реально бачили експеримент, а не всіх учасників.
Що входить до роботи
- Вибір інструменту під завдання та стек (Firebase / Statsig / Amplitude Experiment)
- Інтеграція SDK та налаштування Remote Config / Feature Flags
- Реалізація A/B шару в коді з правильною обробкою варіантів
- Налаштування цільових метрик та конверсійних подій
- Конфігурація розміру выборки та тривалості тесту
- Логування експозиції для аналізу
Сроки
Один A/B тест на Firebase Remote Config: 1–2 дні. Інфраструктура для регулярного A/B тестування (Statsig/Growthbook): 3–5 днів. Вартість розраховується індивідуально.







