← Назад к вопросам

Как модифицировать метрику партнерской витрины для учета трат пользователя?

3.0 Senior🔥 91 комментариев
#Метрики продукта#Работа с продуктом и бизнесом

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Модификация метрики партнерской витрины для учета трат пользователя

Партнерские витрины часто оцениваются по простым метрикам (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Тренд
Budget20 руб8%250 руб
Mid100 руб5%2000 руб
Premium300 руб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 → витрина убыточна

Комбинирование метрик даёт полную картину качества трафика.