288 lines
9.8 KiB
Markdown
288 lines
9.8 KiB
Markdown
# 📊 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
|