LTV и когорты: как читать и использовать
Зачем нужен LTV-анализ
LTV (Lifetime Value) — суммарный доход от пользователя за весь период его активности. В контексте gambling/betting это первичный депозит + повторные депозиты (редепозиты).
Почему LTV критически важен для арбитражника:
Представь: два источника трафика.
Источник А: 100 FTD, LTV per FTD = $45 → суммарный доход $4 500
Источник Б: 80 FTD, LTV per FTD = $120 → суммарный доход $9 600
Если смотреть только по FTD — Источник А «лучше» (100 vs 80). Но по реальному доходу Источник Б приносит в 2 раза больше. Без LTV ты масштабируешь не тот источник.
Когда LTV важнее ROI на короткой дистанции:
При запуске нового GEO — первые дни ROI может быть отрицательным, но если LTV растёт — трафик качественный
При сравнении двух офферов одной партнёрки — один даёт много FTD с низким LTV, другой меньше FTD но «долгих» пользователей
При оценке окупаемости трафика через 30-90 дней — D0 показывает только первый день, а основная прибыль приходит позже
Особенность для iGaming: В gambling/betting основной доход приходит не от первого депозита, а от редепозитов (CPA_REDEP). Пользователь может задепозить $20, а за следующий месяц — ещё $200. LTV D0 покажет только $20, а LTV D31-90 может показать $220.
Как устроены когорты
Когорта — группа пользователей, объединённых по дате первого действия.
В Adset.Pro доступны два типа когорт (через разные group keys):
FTD-когорты (по дате первого депозита)
Group Key | Описание |
|---|---|
| Когорта по дню FTD |
| Когорта по неделе FTD |
| Когорта по месяцу FTD |
| Количество дней от FTD до последнего редепозита |
Когда использовать: Анализ монетизации платящих пользователей. Ты отвечаешь на вопрос: «Сколько зарабатываю с пользователя, который задепозил в январе?»
Reg-когорты (по дате регистрации)
Group Key | Описание |
|---|---|
| Когорта по дню регистрации (CPA_HOLD) |
| Когорта по неделе регистрации |
| Когорта по месяцу регистрации |
| Количество дней от регистрации до последнего действия |
Когда использовать: Анализ конверсии из регистрации в депозит и поведения всех зарегистрированных (не только задепозивших). Отвечаешь на вопрос: «Какой % зарегистрировавшихся доходит до депозита и сколько они приносят?»
Практический пример разницы
Кейс 1: «Хочу знать, сколько зарабатываю с пользователя, который задепозил в январе» → FTD-когорта (
cohort_month) +ltv_per_ftdКейс 2: «Хочу знать, сколько % зарегистрировавшихся доходят до депозита» → Reg-когорта (
reg_cohort_month) +reg_to_ftd_rateКейс 3: «Хочу видеть доход с регистрации, включая FTD и все редепозиты» → Reg-когорта +
ltv_per_reg
Окна LTV (временны́е периоды)
FTD-based LTV
Каждый пользователь отслеживается на 4 временны́х горизонтах после первого депозита (CPA_ACCEPT):
Метрика | Период | Что измеряет |
|---|---|---|
| День 0 (день FTD) | Первоначальный депозит + редепозиты в тот же день (CPA_ACCEPT + CPA_REDEP) |
| Дни 1–7 после FTD | Ранние редепозиты (первая неделя, только CPA_REDEP) |
| Дни 8–30 после FTD | Среднесрочный retention (2-4 неделя, только CPA_REDEP) |
| Дни 31–90 после FTD | Долгосрочный retention (2-3 месяц, только CPA_REDEP) |
Итоговые метрики:
ltv_total=ltv_d0 + ltv_d1_7 + ltv_d8_30 + ltv_d31_90ltv_per_ftd=ltv_total / cpa_accept(средний LTV на одного FTD)
Reg-based LTV
Аналогичная структура, но отсчёт от даты регистрации (CPA_HOLD):
Метрика | Период | Что измеряет |
|---|---|---|
| День 0 (день регистрации) | CPA_ACCEPT + CPA_REDEP в день регистрации |
| Дни 1–7 после регистрации | CPA_REDEP за первую неделю |
| Дни 8–30 после регистрации | CPA_REDEP за 2-4 неделю |
| Дни 31–90 после регистрации | CPA_REDEP за 2-3 месяц |
Итоговые:
ltv_reg_total= сумма всех периодовltv_per_reg=ltv_reg_total / registrations(средний LTV на одну регистрацию)
Важные замечания по окнам
D0 — это не весь LTV, а только начало. Обычно D0 составляет 30-50% от итогового LTV D0-D90
D31-90 имеет смысл смотреть только если с даты FTD прошло 3+ месяца. Иначе окно ещё «не закрылось» и данные неполные
Неполное окно: Если когорта создана 2 недели назад, то
ltv_d8_30будет неполным (прошло только 14 дней из 30), аltv_d31_90— пустымКонвертация валют: Все LTV-метрики автоматически конвертируются в USD через
event_fx_to_usdесли валюта постбека отличается
Lifetime Days (дни жизни)
Lifetime Days (lifetime_days) — количество дней от FTD до последнего активного действия (редепозита).
Формула: dateDiff('day', ftd_time, event_time) — целое число дней.
Как читать распределение lifetime days:
Значение | Что означает |
|---|---|
| Пользователь задепозил и больше не возвращался (FTD без редепозитов) |
| Краткосрочная активность (вернулся 1-2 раза в первую неделю) |
| Средний retention (активен 2-4 недели) |
| Лояльный пользователь (активен месяцами) |
Практическое применение:
Если 70%+ когорты имеют
lifetime_days = 0— значит редепозитов почти нет, проблема в качестве трафика или в оффереРазбивка по
lifetime_days+cpa_redep— показывает тепловую карту: в какие дни пользователи вносят повторные депозитыСравнивай
lifetime_daysмежду кампаниями/источниками — какой даёт «долгих» пользователей
Аналог для reg-когорт: lifetime_days_from_reg — дни от регистрации (CPA_HOLD) до последнего действия.
Дополнительные метрики
Метрика | Формула | Применение |
|---|---|---|
|
| Какой % FTD сделали хотя бы один редепозит |
|
| Какой % регистраций дошёл до депозита |
|
| Соотношение редепозитов к депозитам |
|
| Общее количество депозитов |
|
| Общий доход от всех депозитов |
Как фильтровать в LTV-анализе
Доступные фильтры в LTV-отчётах ограничены атрибуционными полями:
Фильтр | Что делает |
|---|---|
| Фильтр по кампании |
| Фильтр по источнику трафика |
| Фильтр по офферу |
| Фильтр по CPA-сети |
| Фильтр по стране пользователя |
Почему нет фильтра по device/browser? LTV-анализ работает с когортами пользователей через
events_ltvтаблицу. У одного пользователя может быть несколько сессий с разных устройств. Фильтрация по device привела бы к дублированию и некорректным данным.
Как использовать комбинацию фильтров:
«Сравнить LTV двух офферов одной партнёрки» → filter:
cmp_cpa = X, breakdown:cmp_offer«LTV трафика из Украины за последние 3 месяца» → filter:
user_country = UA, group:cohort_month«Качество трафика по источникам» → filter: нет, breakdown:
cmp_source, метрика:ltv_per_ftd
Разбивки (breakdowns)
В LTV-анализе можно добавить разбивку для сравнения когорт:
Разбивка (Group Key) | Применение |
|---|---|
| Сравнить качество трафика между кампаниями |
| Какой источник даёт более «тяжёлых» пользователей |
| Сравнить два оффера одной партнёрки по LTV |
| Сравнить разные партнёрки по monetization |
| LTV по GEO (обычно Tier-1 > Tier-3) |
| Период когорты — для отслеживания трендов |
| Тепловая карта активности по дням |
Типичные кейсы
«Какой оффер у 1win даёт лучший LTV по UA трафику?»
Фильтр:
user_country = UA,cmp_cpa = 1winРазбивка:
cmp_offerМетрика:
ltv_per_ftd
«Как менялось качество трафика по месяцам?»
Разбивка:
cohort_monthМетрики:
ltv_d0,ltv_d1_7,ltv_d8_30,cpa_accept
«Какой источник даёт пользователей с редепозитами?»
Разбивка:
cmp_sourceМетрика:
ftd_to_redep_rate
Рекомендации по настройке запроса
Период данных ≥ 90 дней — чтобы захватить полные LTV-окна (D0, D1-7, D8-30, D31-90)
LTV-метрики работают только с
events_ltvтаблицей — она автоматически выбирается при использовании cohort-групп или LTV-метрикКогортные группы активируют LTV-расчёты —
cohort_day/cohort_week/cohort_monthтриггерят JOIN сftd_timesCTEReg-когортные группы —
reg_cohort_day/reg_cohort_week/reg_cohort_monthтриггерят JOIN сreg_timesCTE
Типичные метрики и интерпретация
Метрика | Хорошее значение | Плохое значение | Что делать |
|---|---|---|---|
| Близко к среднему депозиту партнёрки | Сильно ниже → мусорные лиды или мелкие депозиты | Проверить маппинг статусов, качество оффера |
| > 30-40% (активные редепы в первую неделю) | < 10% → пользователи задепозили и ушли | Проверить UX оффера, бонусную программу партнёрки |
| > 20-30% | < 10% → почти никто не редепозитит | Проблема в качестве трафика или в оффере |
| > 30-40% (для gambling) | < 15% → регистрации есть, но не депозят | Проблема в онбординге партнёрки или бонусах |
| 5-15 дней (активная первая 1-2 недели) | 0-1 день (deposited-and-gone) | Типично для Tier-3 GEO или фрода |
Частые вопросы
Q: Почему LTV в Adset.Pro не совпадает с данными в кабинете партнёрки?
Причины расхождений:
Задержка постбеков — партнёрка может отправлять редепозиты с задержкой (от часов до дней)
Timezone — дата когорты определяется по timezone, указанному в запросе. Разные timezone = разные даты
Дедупликация — Adset.Pro отбрасывает дубликаты конверсий (если не включены
acceptDuplicates)Конвертация валют — Adset.Pro конвертирует через
event_fx_to_usd, партнёрка может показывать в другой валюте
Q: Когорта создана неделю назад — почему D8-30 пустой?
Это нормально. Окно D8-30 означает «дни 8-30 после FTD». Если когорте только 7 дней, данные для D8-30 ещё не поступили. Подожди ещё 3-4 недели — данные начнут появляться.
Q: Как сравнить LTV двух кампаний, которые запускались в разные месяцы?
Проблема сезонности: январская когорта могла быть более активной из-за новогодних промо, а февральская — менее. Решения:
Используй
cohort_month+ltv_per_ftd— сравнивай метрики внутри когорты, а не абсолютные числаСмотри
ftd_to_redep_rate— он менее чувствителен к сезонностиСравнивай LTV за одинаковый период после FTD (например, только D0+D1-7 для обеих когорт)
Q: Зачем нужны reg-когорты если есть FTD-когорты?
FTD-когорты включают только пользователей, которые задепозили. Reg-когорты включают всех зарегистрированных и позволяют увидеть:
Конверсию reg → FTD (
reg_to_ftd_rate)LTV на регистрацию (
ltv_per_reg) — учитывает что не все регистранты депозятБолее полную картину воронки: сколько людей пришло vs сколько реально принесло денег
