Как модифицировать метрику партнерской витрины для учета трат пользователя?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Модификация метрики партнерской витрины для учета трат пользователя
Партнерские витрины часто оцениваются по простым метрикам (CTR, конверсия), но это игнорирует качество трафика. Учёт расходов пользователя делает метрику более значимой для бизнеса.
Текущие проблемы с базовыми метриками
На примере партнерской витрины (Яндекс.Маркет, Авито и т.д.):
❌ CTR (Click-Through Rate) — не учитывает качество:
- 100 кликов на дешёвый товар = 0 продаж
- 10 кликов на дорогой товар = 5 продаж (50% конверсия)
- CTR не покажет разницу в ROI
❌ Конверсия — не учитывает стоимость товара:
- 10% конверсия на товары за 100 руб = 10 руб прибыли с юзера
- 5% конверсия на товары за 1000 руб = 50 руб прибыли с юзера
❌ AOV (Average Order Value) — слишком обобщённо:
- Не показывает вклад витрины в ROI партнёра
Решение 1: AOV-взвешенная конверсия (Revenue per User)
Метрика: RevPU = Средняя сумма покупки × Конверсия
RevPU = Total Revenue / Unique Users
Пример:
Витрина A: 1000 юзеров → 100 покупок × 500 руб = 50K руб
RevPU_A = 50K / 1000 = 50 руб/юзер
Витрина B: 1000 юзеров → 150 покупок × 200 руб = 30K руб
RevPU_B = 30K / 1000 = 30 руб/юзер
Преимущества:
- Просто вычислить
- Понятна партнёрам
- Нет нужды в стоимости клика
Недостатки:
- Не учитывает стоимость привлечения трафика
- Зависит от сезонности
Решение 2: ROAS (Return on Ad Spend)
Метрика: ROAS = Доход / Затраты на рекламу
ROAS = Revenue / Ad Spend
Пример:
Витрина A: потратили 10K руб на продвижение → получили 50K руб
ROAS_A = 50K / 10K = 5.0x (5 руб дохода на 1 руб затрат)
Нужно ROAS >= 3x для прибыльности (при 60% margin)
Преимущества:
- Учитывает реальные экономику
- Ясно видно когда выключать витрину
- Стандартная метрика в индустрии
Недостатки:
- Нужно правильно считать Ad Spend (косвенные затраты)
- Временной лаг между расходом и результатом
Решение 3: Segmented Revenue Model (рекомендуемое)
Разделить пользователей по стоимости товаров и считать RevPU для каждого сегмента:
# Сегментация пользователей по AOV товаров
segments = {
'budget': (0, 500), # Бюджетные товары
'mid': (500, 5000), # Средней цены
'premium': (5000, float('inf')) # Премиум
}
for segment, (min_price, max_price) in segments.items():
# Считаем метрики отдельно
segment_users = users[users['avg_price'].between(min_price, max_price)]
segment_revenue = revenue[revenue['price'].between(min_price, max_price)]
revpu = segment_revenue.sum() / len(segment_users)
conversion = successful_purchases / len(segment_users)
metrics[segment] = {
'RevPU': revpu,
'Conversion': conversion,
'Avg Basket': segment_revenue.mean(),
'Traffic Quality Score': revpu * conversion # Объединённая метрика
}
Пример таблицы:
| Сегмент | RevPU | Конверсия | Avg Basket | Тренд |
|---|---|---|---|---|
| Budget | 20 руб | 8% | 250 руб | ↑ |
| Mid | 100 руб | 5% | 2000 руб | → |
| Premium | 300 руб | 2% | 15000 руб | ↓ |
Это позволяет:
- Видеть какие сегменты приносят доход
- Оптимизировать витрину под высокооплачиваемых пользователей
- Понять влияние на общий ROI
Решение 4: LTV-adjusted metrics (продвинутое)
Метрика: LTV = Lifetime Value пользователя из витрины
# Для долгосрочных партнеров важно повторное поведение
ltv = (
first_purchase_revenue +
repeat_purchase_revenue * repeat_rate +
referral_revenue * referral_rate
)
# Рассчитать витрины по реальному вкладу в LTV
partnership_value = vitrine_users * ltv - marketing_spend
Когда использовать: для долгосрочных стратегических партнёрств
Шаг за шагом реализация
1. Сбор данных
SELECT
vitrine_id,
user_id,
click_date,
purchase_id,
purchase_amount,
purchase_date,
marketing_spend
FROM vitrine_analytics
WHERE click_date >= DATE_SUB(TODAY(), INTERVAL 30 DAY)
2. Основной расчёт RevPU
SELECT
vitrine_id,
COUNT(DISTINCT user_id) as unique_users,
COUNT(DISTINCT purchase_id) as purchases,
SUM(purchase_amount) as total_revenue,
ROUND(SUM(purchase_amount) / COUNT(DISTINCT user_id), 2) as revpu,
ROUND(100.0 * COUNT(DISTINCT purchase_id) / COUNT(DISTINCT user_id), 2) as conversion_pct,
ROUND(AVG(purchase_amount), 2) as avg_purchase
FROM vitrine_analytics
GROUP BY vitrine_id
ORDER BY revpu DESC
3. Сегментированный анализ
SELECT
vitrine_id,
CASE
WHEN purchase_amount < 500 THEN 'budget'
WHEN purchase_amount < 5000 THEN 'mid'
ELSE 'premium'
END as price_segment,
COUNT(DISTINCT user_id) as users,
ROUND(SUM(purchase_amount) / COUNT(DISTINCT user_id), 2) as revpu_segment,
ROUND(100.0 * COUNT(purchase_id) / COUNT(DISTINCT user_id), 2) as conversion_pct
FROM vitrine_analytics
GROUP BY vitrine_id, price_segment
ORDER BY vitrine_id, revpu_segment DESC
4. Ежемесячная динамика
SELECT
vitrine_id,
DATE_TRUNC('month', click_date) as month,
ROUND(SUM(purchase_amount) / COUNT(DISTINCT user_id), 2) as monthly_revpu,
ROUND(100.0 * COUNT(purchase_id) / COUNT(DISTINCT user_id), 2) as monthly_conversion
FROM vitrine_analytics
GROUP BY vitrine_id, month
ORDER BY vitrine_id, month DESC
Рекомендации по использованию
Для простых витрин → используй RevPU (решение 1)
- Быстро считается
- Интуитивно понятна партнёрам
Для премиум витрин → используй Segmented Revenue (решение 3)
- Видны различия в качестве трафика
- Помогает оптимизировать под целевые сегменты
Для долгосрочных партнёрств → добавь LTV (решение 4)
- Учитывает повторные покупки
- Справедливее оценивает вклад витрины
Для проверки прибыльности → используй ROAS (решение 2)
- Финальный критерий включения/выключения витрины
- ROAS < 2.5x → витрина убыточна
Комбинирование метрик даёт полную картину качества трафика.