8.4 KiB
8.4 KiB
🚀 Unleash AB Testing - Quick Start
✅ Что реализовано
1. Типы и интерфейсы
- ✅ Расширен
NavigationConditionDefinitionс полямиunleashFlagиunleashVariants - ✅ Добавлен тип условия
"unleash"наравне с"options"и"values" - ✅ Полная типизация для TypeScript
2. Unleash SDK интеграция
- ✅ Установлен
@unleash/proxy-client-react - ✅ Создан
UnleashProviderс настройками для воронок - ✅
UnleashContextProviderдля передачи активных вариантов - ✅
FunnelUnleashWrapperавтоматически собирает все флаги из воронки
3. Логика проверки условий
- ✅
navigation.tsподдерживает Unleash условия - ✅
variants.tsподдерживает Unleash условия - ✅ Функция
unleashCheckerпередается через всю цепочку - ✅ Работает для навигации И для вариантов экранов
4. UI в админке конструктора
- ✅
ConditionTypeSelector- выбор типа условия - ✅
UnleashConditionEditor- полноценный редактор AB тестов - ✅ Интегрировано в
VariantConditionEditor - ✅ Поддержка всех операторов (includesAny, equals, etc.)
5. Документация
- ✅ Полное руководство
AB_TESTING_GUIDE.md - ✅ Примеры использования
- ✅ API Reference
- ✅ Best practices
🏁 Быстрый старт
Шаг 1: Настройте Unleash
Создайте .env.local:
NEXT_PUBLIC_UNLEASH_URL=https://your-unleash.com/api/frontend
NEXT_PUBLIC_UNLEASH_CLIENT_KEY=your-client-key
Шаг 2: Создайте флаг в Unleash Dashboard
- Перейдите в Unleash Dashboard
- Создайте новый feature flag:
button-text-test - Добавьте варианты:
- v0 (контроль) - 50%
- v1 - 25%
- v2 - 25%
- Включите gradual rollout strategy
- Установите stickiness =
sessionId
Шаг 3: Добавьте AB тест в воронку
В админке конструктора:
- Откройте экран для редактирования
- Перейдите в секцию "Вариативность"
- Добавьте вариант
- Выберите тип условия: AB тест (Unleash)
- Укажите:
- Название флага:
button-text-test - Ожидаемые варианты:
v1 - Оператор:
Равен (один вариант)
- Название флага:
- Настройте overrides (например, текст кнопки)
- Сохраните воронку
Шаг 4: Тестируйте
npm run dev
Откройте воронку в разных вкладках - вы увидите разные варианты!
📁 Структура файлов
Новые файлы:
├── src/lib/funnel/unleash/
│ ├── UnleashProvider.tsx # Provider для Unleash SDK
│ ├── UnleashContext.tsx # Context с активными вариантами
│ ├── useUnleash.ts # Хук для работы с флагами
│ └── index.ts
├── src/components/funnel/
│ └── FunnelUnleashWrapper.tsx # Сборщик всех флагов
├── src/components/admin/builder/forms/
│ ├── UnleashConditionEditor.tsx # UI редактор AB тестов
│ └── ConditionTypeSelector.tsx # Селектор типа условия
├── AB_TESTING_GUIDE.md # Полное руководство
├── UNLEASH_SETUP.md # Этот файл
└── public/funnels/
└── ab-test-example.json # Пример воронки с AB тестами
Модифицированные файлы:
├── src/lib/funnel/
│ ├── types.ts # ✏️ Добавлены поля для Unleash
│ ├── navigation.ts # ✏️ Поддержка Unleash условий
│ └── variants.ts # ✏️ Поддержка Unleash условий
├── src/components/funnel/
│ └── FunnelRuntime.tsx # ✏️ Интеграция unleashChecker
├── src/components/admin/builder/forms/variants/
│ └── VariantConditionEditor.tsx # ✏️ Добавлен UI для Unleash
├── src/app/[funnelId]/[screenId]/
│ └── page.tsx # ✏️ Обернут в Unleash Provider
└── package.json # ✏️ Добавлен @unleash/proxy-client-react
🎯 Примеры использования
Пример 1: AB тест текста кнопки
{
"id": "payment",
"template": "trialPayment",
"bottomActionButton": {
"text": "Continue"
},
"variants": [
{
"conditions": [
{
"screenId": "payment",
"conditionType": "unleash",
"unleashFlag": "button-text-test",
"unleashVariants": ["v1"],
"operator": "equals"
}
],
"overrides": {
"bottomActionButton": {
"text": "Start Trial"
}
}
}
]
}
Пример 2: AB тест навигации
{
"id": "gender",
"template": "list",
"navigation": {
"defaultNextScreenId": "birthdate",
"rules": [
{
"conditions": [
{
"screenId": "gender",
"conditionType": "unleash",
"unleashFlag": "onboarding-flow-test",
"unleashVariants": ["short"],
"operator": "equals"
}
],
"nextScreenId": "payment"
}
]
}
}
🧪 Тестовая воронка
Готовая тестовая воронка: /public/funnels/ab-test-example.json
Запустите:
npm run dev
# Откройте: http://localhost:3000/ab-test-example/welcome
✨ Возможности
Что можно тестировать:
- ✅ Тексты (заголовки, подзаголовки, кнопки)
- ✅ Навигацию (разные пути через воронку)
- ✅ Контент (иконки, описания, блоки)
- ✅ Комбинации (AB тест + пол + возраст)
- ✅ Любые поля экрана через variants
Операторы:
includesAny- хотя бы один вариантincludesAll- все вариантыincludesExactly- точно эти вариантыequals- равен (один вариант)
Типы условий:
options- выбор из спискаvalues- конкретные значения (зодиак, возраст)unleash- AB тесты через Unleash
🔧 Требования
- Node.js 18+
- Next.js 15
- Unleash instance (или Unleash Cloud)
- React 19
📚 Дополнительная документация
- AB_TESTING_GUIDE.md - Полное руководство с примерами
- Unleash Docs - https://docs.getunleash.io/
- Примеры воронок -
/public/funnels/
🐛 Troubleshooting
Флаги не работают?
- Проверьте
.env.local- переменные должны быть установлены - Проверьте Unleash Dashboard - флаг должен быть включен
- Проверьте rollout - должен быть > 0%
- Проверьте консоль браузера - должны быть логи Unleash
Ошибка импорта?
npm install
npm run dev
Всегда показывается контроль?
- Увеличьте rollout в Unleash
- Проверьте stickiness = sessionId
- Откройте в новой вкладке (новая сессия)
🎉 Готово!
AB тестирование полностью интегрировано и готово к использованию!
Следующие шаги:
- Настройте Unleash
- Создайте первый флаг
- Добавьте AB тест в воронку
- Анализируйте результаты
- Выбирайте победителя!