← Назад к демо

🧪 A/B Тестирование

Сравнивайте разные варианты модальных окон и выбирайте наиболее эффективные. Система автоматически разделяет пользователей на когорты и отслеживает результаты через аналитику.

🚀 Возможности системы

🎯

Простой API

Создавайте тесты в стиле chains — просто и декларативно

👥

Умное разделение

Детерминированное разделение пользователей на когорты с сохранением в localStorage

📊

Интеграция с аналитикой

Автоматическая отправка событий в Yandex Metrica и Google Analytics

⏱️

Контроль времени

Настройка длительности тестов и автоматическое завершение

Демо 1: Простой A/B тест (Popup vs Banner)

Тест: Сравниваем эффективность всплывающего окна и баннера для подписки на рассылку.
const simpleTest = NHLeads.abTest('popup-vs-banner') .variant('popup', { template: 'default', title: 'Подпишитесь на рассылку!', description: 'Получайте актуальные новости первыми', fields: ['email'], buttonText: 'Подписаться' }) .variant('banner', { template: 'banner', title: 'Новости прямо в почту', position: 'top', buttonText: 'Подписаться' }) .split(50, 50) .analytics({ yandexMetrica: { goal: 'subscription_test' } }) .start();

Демо 2: Многовариантный тест форм

Тест: Сравниваем 3 варианта форм регистрации с разным количеством полей.
const formTest = NHLeads.abTest('registration-forms') .variant('minimal', { template: 'default', title: 'Быстрая регистрация', fields: ['email'], buttonText: 'Зарегистрироваться' }) .variant('standard', { template: 'default', title: 'Создать аккаунт', fields: ['name', 'email'], buttonText: 'Создать аккаунт' }) .variant('detailed', { template: 'default', title: 'Полная регистрация', fields: ['name', 'email', 'phone'], buttonText: 'Завершить регистрацию' }) .split(30, 40, 30) .duration(7) .analytics({ yandexMetrica: { goal: 'registration_conversion' }, googleAnalytics: { event: 'ab_registration_test' } }) .start();

Демо 3: Тест с условиями отображения

Тест: Тестируем разные подходы к показу модальных окон с условиями.
const conditionalTest = NHLeads.abTest('conditional-display') .variant('immediate', { template: 'default', title: 'Специальное предложение!', description: 'Скидка 20% на все товары!', trigger: { type: 'immediate' } }) .variant('scroll', { template: 'banner', title: 'Не упустите скидку!', description: 'Прокрутите вниз и получите промокод', trigger: { type: 'scroll', value: 50 } }) .variant('exit-intent', { template: 'default', title: 'Подождите! У нас есть предложение', description: 'Специальная скидка перед уходом', trigger: { type: 'exit-intent' } }) .cohortBy('fingerprint') .split(33, 33, 34) .analytics({ yandexMetrica: { goal: 'offer_interaction' } }) .start();

👥 Методы разделения на когорты

🆔

Session ID

По ID сессии (по умолчанию)

👤

User ID

По ID пользователя

🔍

Fingerprint

По отпечатку браузера

📚 Документация API

Настройка аналитики

.analytics({ yandexMetrica: { counterId: 12345678, goal: 'ab_test_goal' }, googleAnalytics: { event: 'ab_test_event' }, custom: (eventName, params) => { // Ваша кастомная аналитика console.log('AB Test Event:', eventName, params); } })

Отслеживание конверсий

const test = NHLeads.abTest('my-test') // ... настройка вариантов .start(); // Отследить конверсию test.trackConversion('subscription', 1); test.trackConversion('purchase', 299);