# 🧭 Правила навигации - Полное руководство ## 🎯 Возможности Правила навигации поддерживают **все типы условий** как и вариативность экранов: ### 1. ✅ AB тесты (Unleash) Направляйте пользователей на разные экраны в зависимости от AB теста ### 2. ✅ Опции (list экраны) На основе выбранных опций в list экранах ### 3. ✅ Значения (возраст, зодиак, email) На основе конкретных значений из специальных экранов --- ## 📚 Примеры ### Пример 1: AB тест - короткий vs длинный onboarding ```json { "id": "gender", "template": "list", "navigation": { "defaultNextScreenId": "birthdate", "rules": [ { "conditions": [ { "screenId": "gender", "conditionType": "unleash", "unleashFlag": "onboarding-flow-test", "unleashVariants": ["short"], "operator": "equals" } ], "nextScreenId": "payment" } ] } } ``` **Результат:** - Вариант `short` → сразу на payment (пропустить birthdate) - Другие варианты → на birthdate (стандартный путь) --- ### Пример 2: AB тест + пол пользователя ```json { "id": "welcome", "template": "info", "navigation": { "defaultNextScreenId": "standard-flow", "rules": [ { "conditions": [ { "screenId": "gender", "conditionType": "options", "optionIds": ["female"], "operator": "includesAny" }, { "screenId": "welcome", "conditionType": "unleash", "unleashFlag": "female-special-offer", "unleashVariants": ["v1"], "operator": "equals" } ], "nextScreenId": "special-offer-women" } ] } } ``` **Результат:** - Если **женщина** И **AB тест = v1** → special-offer-women - Иначе → standard-flow --- ### Пример 3: Зависимость от возраста ```json { "id": "age-result", "template": "info", "navigation": { "defaultNextScreenId": "standard-path", "rules": [ { "conditions": [ { "screenId": "age", "conditionType": "options", "optionIds": ["18-24", "25-34"], "operator": "includesAny" } ], "nextScreenId": "young-audience-path" }, { "conditions": [ { "screenId": "age", "conditionType": "options", "optionIds": ["45-54", "55+"], "operator": "includesAny" } ], "nextScreenId": "mature-audience-path" } ] } } ``` **Результат:** - 18-34 лет → young-audience-path - 45+ лет → mature-audience-path - Остальные → standard-path --- ### Пример 4: Зависимость от знака зодиака ```json { "id": "zodiac-result", "template": "info", "navigation": { "defaultNextScreenId": "default-path", "rules": [ { "conditions": [ { "screenId": "profile.zodiac", "conditionType": "options", "optionIds": ["aries", "leo", "sagittarius"], "operator": "includesAny" } ], "nextScreenId": "fire-signs-path" }, { "conditions": [ { "screenId": "profile.zodiac", "conditionType": "options", "optionIds": ["cancer", "scorpio", "pisces"], "operator": "includesAny" } ], "nextScreenId": "water-signs-path" } ] } } ``` **Результат:** - Огненные знаки → fire-signs-path - Водные знаки → water-signs-path - Остальные → default-path --- ### Пример 5: Множественные AB тесты ```json { "id": "onboarding", "template": "info", "navigation": { "defaultNextScreenId": "standard", "rules": [ { "conditions": [ { "screenId": "onboarding", "conditionType": "unleash", "unleashFlag": "flow-type", "unleashVariants": ["premium"], "operator": "equals" }, { "screenId": "onboarding", "conditionType": "unleash", "unleashFlag": "upsell-test", "unleashVariants": ["aggressive"], "operator": "equals" } ], "nextScreenId": "premium-aggressive-upsell" }, { "conditions": [ { "screenId": "onboarding", "conditionType": "unleash", "unleashFlag": "flow-type", "unleashVariants": ["premium"], "operator": "equals" } ], "nextScreenId": "premium-standard-upsell" } ] } } ``` **Результат:** - flow-type=premium + upsell-test=aggressive → premium-aggressive-upsell - flow-type=premium + другой upsell → premium-standard-upsell - Остальные → standard --- ## 🛠️ Как настроить в админке ### 1. Откройте экран для редактирования В конструкторе воронок выберите нужный экран ### 2. Найдите секцию "Правила переходов" Она находится в боковой панели после секции "Навигация" ### 3. Добавьте правило Нажмите кнопку **"+"** чтобы добавить новое правило ### 4. Настройте условия #### Для AB теста: 1. **Тип условия:** выберите "AB тест (Unleash)" 2. **Название флага:** введите название флага из Unleash (например `trial-offer-test`) 3. **Оператор:** - "Равен (один вариант)" - точное совпадение - "Любой из вариантов (OR)" - хотя бы один совпадает 4. **Ожидаемые варианты:** введите через запятую (например `v1, v2`) #### Для опций list экрана: 1. **Тип условия:** "Выбранные опции (list экраны)" 2. **Экран:** выберите list экран 3. **Оператор:** "Любое из (OR)" или "Все из (AND)" 4. **Значения:** отметьте нужные опции #### Для значений (возраст, зодиак): 1. **Тип условия:** "Значения (зодиак, возраст, email)" 2. **Экран:** выберите экран с данными 3. **Оператор:** обычно "Любое из (OR)" 4. **Значения:** выберите из списка ### 5. Добавьте несколько условий (опционально) Нажмите **"+ Добавить условие"** чтобы добавить ещё условия Все условия работают как **AND** (все должны выполниться) ### 6. Выберите целевой экран В поле "Переход на экран" выберите куда направить пользователя ### 7. Сохраните Правило автоматически сохраняется при изменениях --- ## 💡 Типы операторов ### includesAny (Любой из - OR) Условие выполняется если **хотя бы одно** значение совпадает ``` Выбрано: ["female"] Условие: ["female", "non-binary"] Результат: ✅ TRUE (female есть в списке) ``` ### includesAll (Все из - AND) Условие выполняется если **все** значения совпадают ``` Выбрано: ["premium", "early-access"] Условие: ["premium", "early-access"] Результат: ✅ TRUE (оба есть) Выбрано: ["premium"] Условие: ["premium", "early-access"] Результат: ❌ FALSE (early-access отсутствует) ``` ### equals (Равен) Точное совпадение одного значения ``` AB тест вариант: "v1" Условие: ["v1"] Результат: ✅ TRUE AB тест вариант: "v2" Условие: ["v1"] Результат: ❌ FALSE ``` --- ## 📊 Порядок проверки правил Правила проверяются **сверху вниз**: 1. Первое правило с выполненными условиями → используется 2. Если ни одно правило не подошло → используется `defaultNextScreenId` 3. Если нет defaultNextScreenId → следующий экран по порядку **Пример:** ```json { "navigation": { "defaultNextScreenId": "standard", "rules": [ { "conditions": [...], "nextScreenId": "path-1" }, // Проверяется первым { "conditions": [...], "nextScreenId": "path-2" }, // Проверяется вторым { "conditions": [...], "nextScreenId": "path-3" } // Проверяется третьим ] } } ``` --- ## ✅ Best Practices ### 1. Используйте осмысленные названия ``` ❌ Плохо: nextScreenId: "screen-5" ✅ Хорошо: nextScreenId: "premium-trial-offer" ``` ### 2. Группируйте связанные условия ```json { "conditions": [ { "screenId": "gender", "optionIds": ["female"] }, { "unleashFlag": "female-offer-test", "unleashVariants": ["v1"] } ] } ``` ### 3. Всегда указывайте defaultNextScreenId Это fallback если ни одно правило не подошло ### 4. Тестируйте все варианты - Создайте правило для каждого варианта AB теста - Проверьте что defaultNextScreenId работает - Протестируйте комбинации условий ### 5. Документируйте сложные правила Добавляйте комментарии в JSON или ведите документацию --- ## 🐛 Troubleshooting ### Правило не срабатывает **Проверьте:** 1. ✅ Все условия в правиле выполняются (AND логика) 2. ✅ Название флага в Unleash совпадает с указанным 3. ✅ Вариант AB теста написан правильно (регистр важен!) 4. ✅ Правило находится выше других конфликтующих правил 5. ✅ Экран указанный в условии существует ### AB тест не работает **Проверьте:** 1. ✅ Unleash флаг создан и включен 2. ✅ Rollout > 0% 3. ✅ Environment variables настроены 4. ✅ В консоли браузера есть логи `[Unleash Analytics]` ### Всегда переходит на default **Причины:** - Ни одно условие не выполняется - Ошибка в названии флага/варианта - AB тест не загрузился --- ## 📚 Связанные документы - **AB_TESTING_GUIDE.md** - Полное руководство по AB тестам - **UNLEASH_SETUP.md** - Настройка Unleash - **AB_TESTING_UPDATES.md** - Аналитика и оптимизация --- ## 🎉 Заключение Правила навигации - это мощный инструмент для персонализации пути пользователя через воронку. Используйте AB тесты, условия по полу/возрасту/зодиаку и их комбинации для максимальной конверсии! **Возможности полностью идентичны вариативности экранов** - используется один и тот же редактор условий.