Ответ
В моем опыте A/B-тестирования UI-элементов, тест кнопки "Купить" строится на четкой гипотезе: "Новый дизайн (например, более контрастный цвет) увеличит конверсию в покупку на X%".
План теста:
- Определение метрик:
- Основная: Конверсия
клики на кнопку / уникальные посетители страницы товара. - Вторичные: Средний чек, глубина корзины, bounce rate со страницы.
- Основная: Конверсия
- Сегментация и сплит: Трафик делится случайно 50/50 (A — контроль, B — вариация). Важно исключить влияние других факторов (например, параллельных маркетинговых кампаний).
- Сбор данных: Инструментируем логирование через событийную аналитику (например, Яндекс.Метрика, Google Analytics 4, Amplitude). Ключевое событие —
purchase_button_clickс параметрамиvariant(A/B) иsession_id. - Статистический анализ: После сбора достаточного объема данных (рассчитывается через калькулятор мощности теста) проверяем значимость.
Пример анализа на Python:
import pandas as pd
import scipy.stats as stats
import numpy as np
# Данные за период теста
data = pd.DataFrame({
'variant': ['A']*10000 + ['B']*10000,
'converted': np.concatenate([
np.random.binomial(1, 0.12, 10000), # Конверсия 12% для A
np.random.binomial(1, 0.135, 10000) # Конверсия 13.5% для B
])
})
# Сводная таблица для хи-квадрат
contingency = pd.crosstab(data['variant'], data['converted'])
chi2, p_value, dof, expected = stats.chi2_contingency(contingency)
print(f"Конверсия A: {data[data.variant=='A'].converted.mean():.3%}")
print(f"Конверсия B: {data[data.variant=='B'].converted.mean():.3%}")
print(f"p-value: {p_value:.4f}")
print(f"Результат: {'Статистически значимо' if p_value < 0.05 else 'Нет значимой разницы'}")
Важные нюансы: Длительность теста должна охватывать полный бизнес-цикл (неделя/месяц), чтобы учесть поведение в разные дни. Также нужно проверить однородность сплита по другим параметрам (источник трафика, устройство).