Реалізація A/B-тестування сценаріїв бота в мобільному додатку
Продакт хоче перевірити: який варіант вітального повідомлення бота краще конвертує в покупку — «Привіт, чим можу допомогти?» або «Покажу товари за вашим запитом одразу». A/B-тест на рівні UI — зрозуміла задача. Але бот — це не просто текст: це граф діалогу, набір intent'ів, логіка escalation на оператора. Ми стикалися з цим десятки разів — організація A/B-тесту сценаріїв бота потребує окремої інфраструктури. Наш досвід показує, що правильна реалізація A/B-тестування під ключ займає 3–5 днів для двох варіантів, а при складній серверній логіці — до 2 тижнів.
Що тестуємо в боті
Сценарії бота відрізняються від UI-елементів: варіант — це не колір кнопки, а цілий граф діалогу. Користувач може пройти 7 кроків у варіанті A і 3 кроки у варіанті B до одного результату. Метрика — не клік, а завершення цільової дії (покупка, заявка, вирішене питання). Це ускладнює вимірювання і потребує event-трекінгу на кожному кроці діалогу.
Типові гіпотези для A/B на боті:
- Різні привітання та tone of voice
- Quick replies vs введення тексту на першому кроці
- Момент пропозиції escalation до оператора (одразу vs після 2 невдалих intent)
- Різні формулювання CTA всередині діалогу
Як ми реалізуємо A/B-тестування бота?
Ми пропонуємо перевірений підхід, який включає вибір платформи, налаштування конфігурації та інтеграцію з event-трекінгом. Кожен етап документується і супроводжується нашими сертифікованими інженерами.
Вибір платформи. У таблиці нижче — порівняння популярних рішень:
| Платформа | Тип | Статистика | Self-hosted | SDK |
|---|---|---|---|---|
| Firebase Remote Config | Клієнтський | Автоматична | Ні | iOS, Android, Web |
| Growthbook | Клієнтський/Серверний | Розширена | Так | iOS, Android, Web |
| Statsig | Клієнтський | Потужна, з кешуванням | Ні | iOS, Android, Web |
| Серверний (кастомний) | Серверний | Повний контроль | Так | Любой через API |
Інтеграція з Firebase. Для швидкого старту використовуємо Firebase Remote Config. Параметри конфігурації бота (ID сценарію, версія prompt'а, поріг escalation) читаються на старті додатка:
let remoteConfig = RemoteConfig.remoteConfig() remoteConfig.fetch(withExpirationDuration: 3600) { [weak self] status, error in guard status == .success else { return } remoteConfig.activate { _, _ in let botVariant = remoteConfig["bot_scenario_variant"].stringValue ?? "control" self?.chatViewModel.loadScenario(variant: botVariant) } } Firebase автоматично розбиває аудиторію на групи за відсотком трафіку. Можна налаштувати додаткові умови (країна, версія додатка). Аналітика — через Firebase Analytics з подіями конверсії.
Серверний A/B vs клієнтський. Якщо бот реалізований через серверний діалоговий двигун (Rasa, Dialogflow CX, кастомний), ми рекомендуємо керувати варіантом на сервері. Клієнт передає userId + sessionId, сервер вибирає сценарій за експериментальною групою і повертає відповіді потрібного варіанту. Це запобігає cheating і спрощує аналітику. Такий підхід ми використовували в проєкті з 500 000+ користувачів.
Чому статистична значущість критична?
Основна помилка при A/B-тестах — зупиняти тест при перших обнадійливих числах. Потрібен мінімальний обсяг вибірки, розрахований заздалегідь. При бажаному ефекті 5%, базовій конверсії 15% і потужності тесту 80% потрібно не менше 2800 користувачів у кожній групі. Firebase A/B Testing рахує це автоматично, але ми додатково верифікуємо розрахунки.
Наші інженери з досвідом понад 5 років у мобільній розробці гарантують, що тест буде зупинено тільки після досягнення статистичної значущості. В іншому випадку ми безкоштовно проводимо повторний аналіз.
Event-трекінг діалогу
Без детального трекінгу кожного кроку неможливо зрозуміти, де користувач пішов із воронки. Мінімальний набір подій:
-
bot_session_start— {variant, userId, sessionId} -
bot_message_sent— {variant, stepId, messageType} -
bot_message_received— {variant, stepId, intentId, confidence} -
bot_intent_failed— {variant, stepId, userInput} — коли NLU не розпізнав intent -
bot_escalated— {variant, stepId, reason} -
bot_goal_completed— {variant, goalType} — конверсійна подія
Усі події з variant і sessionId дозволяють відновити повний шлях користувача в будь-якому варіанті. Ми підключаємо цей трекінг в рамках послуги — ви отримуєте готову аналітику в обраній платформі.
Що входить в роботу
- Аудит поточного сценарію бота і постановка гіпотези
- Вибір платформи для A/B-тестування (Firebase, Growthbook, Statsig або серверний)
- Налаштування конфігурації (Remote Config, feature flags)
- Розробка event-трекінгу для кожного кроку діалогу
- Інтеграція та запуск тесту
- Моніторинг і розрахунок статистичної значущості
- Автоматичний вибір переможця (можна налаштувати)
- Документування результатів і рекомендації щодо масштабування
Строки орієнтовно
Реалізація A/B-тестування двох варіантів сценарію з Firebase Remote Config і event-трекінгом — від 3 до 5 днів. Якщо потрібна інтеграція з серверним діалоговим двигуном і складніша логіка розбиття аудиторії — від 1 до 2 тижнів.
Хочете дізнатися, скільки займе ваш проєкт? Зв'яжіться з нами — ми безкоштовно оцінимо задачу та запропонуємо оптимальне рішення.







