# 📊 AB Тесты в Яндекс Метрике

**Дата:** 29 октября 2025  
**Статус:** ✅ НАСТРОЕНО

---

## 🎯 Как работает отправка AB тестов

### Метод отправки: `params` (Параметры визита)

Для AB тестов используется метод **`params`** - передача параметров визита:

```javascript
ym(counterID, 'params', {
  ab_test_soulmate_onboarding_image: 'v1',
  ab_test_app: 'witlab-funnel'
});
```

### Преимущества этого подхода:

✅ **Параметры привязываются к визиту** - сохраняются в течение всей сессии  
✅ **Доступны в отчете "Параметры визитов"** - можно фильтровать и группировать  
✅ **Можно использовать для создания сегментов** - детальная аналитика  
✅ **Можно сравнивать конверсии между вариантами** - A/B тестирование  

---

## 📋 Формат параметров

### Структура:

```javascript
{
  `ab_test_${featureName}`: variant,  // Например: ab_test_soulmate_onboarding_image: "v1"
  ab_test_app: appName                // Например: ab_test_app: "witlab-funnel"
}
```

### Примеры:

**Пример 1: AB тест изображения онбординга**
```javascript
ym(96887126, 'params', {
  ab_test_soulmate_onboarding_image: 'v1',
  ab_test_app: 'witlab-funnel'
});
```

**Пример 2: AB тест стиля кнопки оплаты**
```javascript
ym(96887126, 'params', {
  ab_test_payment_button_style: 'v2',
  ab_test_app: 'witlab-funnel'
});
```

---

## 🔍 Как смотреть данные в Яндекс Метрике

### Шаг 1: Откройте отчет "Параметры визитов"

1. Яндекс Метрика → **Отчеты**
2. **Содержание** → **Параметры визитов**
3. Или прямая ссылка: `https://metrika.yandex.ru/dashboard?id={COUNTER_ID}#?report=visit_params`

### Шаг 2: Выберите параметр AB теста

В отчете вы увидите параметры, которые были отправлены:

```
ab_test_soulmate_onboarding_image
  ├─ v1 (50% визитов)
  └─ v2 (50% визитов)

ab_test_payment_button_style
  ├─ v1 (30% визитов)
  └─ v2 (70% визитов)
```

### Шаг 3: Анализируйте метрики

Для каждого варианта вы можете посмотреть:

- **Визиты** - количество визитов с этим вариантом
- **Отказы** - процент отказов для варианта
- **Глубина просмотра** - сколько страниц смотрят с вариантом
- **Время на сайте** - среднее время сессии
- **Конверсии по целям** - достижение целей для варианта

---

## 📊 Создание сегментов для AB тестов

### Сегмент для варианта V1:

1. **Отчеты** → любой отчет → **Сегменты**
2. **+ Создать сегмент**
3. Условие: **Параметр визита** → `ab_test_soulmate_onboarding_image` → **равно** → `v1`
4. Сохранить как "AB Test: Onboarding Image V1"

### Сегмент для варианта V2:

Аналогично, но условие: `ab_test_soulmate_onboarding_image` → **равно** → `v2`

### Использование сегментов:

Теперь вы можете:
- Применить сегмент к любому отчету (Источники, Конверсии, Контент и т.д.)
- Сравнить два сегмента между собой
- Посмотреть как вариант AB теста влияет на поведение пользователей

---

## 🎯 Сравнение вариантов AB теста

### Метод 1: Через отчет "Параметры визитов"

1. **Отчеты** → **Содержание** → **Параметры визитов**
2. Выбрать параметр `ab_test_soulmate_onboarding_image`
3. Добавить метрики:
   - Конверсия по целям
   - Отказы
   - Глубина просмотра
4. Сравнить метрики для V1 и V2

### Метод 2: Через сегменты

1. Создать 2 сегмента (V1 и V2)
2. Открыть любой отчет (например, **Конверсии** → **Цели**)
3. Применить сегмент V1
4. **+ Сравнить** → применить сегмент V2
5. Увидеть разницу в метриках

---

## 🧪 Пример анализа AB теста

### Сценарий: Тестируем изображение на экране онбординга

**Гипотеза:** Новое изображение (V2) увеличит конверсию в оплату

**Настройка:**
- Вариант A (V1): старое изображение
- Вариант B (V2): новое изображение
- Цель: "Оплата успешна" (ID: 123456)

**Анализ в Яндекс Метрике:**

1. **Отчеты** → **Содержание** → **Параметры визитов**
2. Параметр: `ab_test_soulmate_onboarding_image`
3. Добавить метрику: **Конверсия (цель 123456)**

**Результат:**

| Вариант | Визиты | Конверсия в оплату | Статистика |
|---------|--------|-------------------|------------|
| V1      | 5,000  | 3.2% (160 конв.)  | Baseline   |
| V2      | 5,000  | 4.1% (205 конв.)  | +28% 🎉    |

**Вывод:** V2 показывает на 28% больше конверсий → оставляем V2

---

## 📈 Интеграция с целями

### Как связать AB тест с целью:

1. Создайте цель в Яндекс Метрике (например, "Оплата успешна")
2. Настройте отправку AB теста через `params`
3. В отчете "Параметры визитов" выберите метрику "Конверсия по цели"
4. Сравните конверсию для разных вариантов AB теста

**Пример:**

```javascript
// При показе AB теста
ym(96887126, 'params', {
  ab_test_payment_button_style: 'v2'
});

// При достижении цели (оплата)
ym(96887126, 'reachGoal', 'payment_success');
```

В отчете вы увидите какой вариант кнопки (`v1` или `v2`) привел к большей конверсии в оплату.

---

## 🔧 Технические детали

### Когда отправляются параметры:

```typescript
// src/lib/funnel/unleash/useUnleashAnalytics.ts

useEffect(() => {
  unleashClient.on("impression", (impressionEvent) => {
    if (impressionEvent.enabled) {
      // ✅ Отправка в Яндекс Метрику
      window.ym(counterId, 'params', {
        [`ab_test_${impressionEvent.featureName}`]: impressionEvent.variant,
        ab_test_app: "witlab-funnel",
      });
    }
  });
}, []);
```

### Timing:

- **Когда:** Когда пользователь РЕАЛЬНО видит экран с AB тестом
- **Частота:** Один раз за сессию для каждого уникального флага
- **Формат:** Динамический ключ `ab_test_${featureName}` с значением варианта

### Проверка в консоли:

```
[Analytics] AB Test Impression: {
  feature: "soulmate-onboarding-image",
  variant: "v1",
  appName: "witlab-funnel",
  debugMode: true,
  sentToGA: true,
  sentToYM: true  // ✅ Должно быть true!
}
```

---

## ⚠️ Важные моменты

### 1. События отправляются НА ВСЕХ окружениях

```
✅ develop.funnel.witlab.us → ОТПРАВЛЯЕТ
✅ funnel.witlab.us → ОТПРАВЛЯЕТ
✅ localhost:3000 → ОТПРАВЛЯЕТ (если есть Counter ID)
```

### 2. Параметры сохраняются в сессии

Если пользователь видит несколько AB тестов за одну сессию, все параметры сохраняются:

```javascript
// Экран 1: onboarding
ym(96887126, 'params', { ab_test_soulmate_onboarding_image: 'v1' });

// Экран 2: payment
ym(96887126, 'params', { ab_test_payment_button_style: 'v2' });

// Результат в Метрике:
// ab_test_soulmate_onboarding_image = v1
// ab_test_payment_button_style = v2
```

### 3. Можно комбинировать параметры

В одном визите могут быть несколько AB тестов, и их можно комбинировать для анализа:

**Пример:** Какая комбинация дает лучшую конверсию?
- Onboarding V1 + Payment V1
- Onboarding V1 + Payment V2
- Onboarding V2 + Payment V1
- Onboarding V2 + Payment V2

---

## 🎉 Готово!

AB тесты теперь автоматически отправляются в Яндекс Метрику!

**Что дальше:**

1. ✅ Deploy на сервер
2. ✅ Открыть воронку
3. ✅ Открыть Яндекс Метрика → Параметры визитов
4. ✅ Увидеть параметры AB тестов
5. ✅ Создать сегменты
6. ✅ Анализировать результаты

---

**Дата:** 29 октября 2025  
**Автор:** Cascade AI
