w-funnel/docs/NAVIGATION_RULES_GUIDE.md
2025-10-22 22:42:01 +02:00

12 KiB
Raw Permalink Blame History

🧭 Правила навигации - Полное руководство

🎯 Возможности

Правила навигации поддерживают все типы условий как и вариативность экранов:

1. AB тесты (Unleash)

Направляйте пользователей на разные экраны в зависимости от AB теста

2. Опции (list экраны)

На основе выбранных опций в list экранах

3. Значения (возраст, зодиак, email)

На основе конкретных значений из специальных экранов


📚 Примеры

Пример 1: AB тест - короткий vs длинный onboarding

{
  "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 тест + пол пользователя

{
  "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: Зависимость от возраста

{
  "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: Зависимость от знака зодиака

{
  "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 тесты

{
  "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 → следующий экран по порядку

Пример:

{
  "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. Группируйте связанные условия

{
  "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 тесты, условия по полу/возрасту/зодиаку и их комбинации для максимальной конверсии!

Возможности полностью идентичны вариативности экранов - используется один и тот же редактор условий.