Retention vs Revenue: как не разрушить продукт ad-монетизацией
Маркетплейс показывает продакт-команде квартальный отчёт. Ad-выручка выросла на 18%. Команда обсуждает следующий шаг: увеличить ad load в ленте с 5 до 7 рекламных слотов на 20 органических. По быстрым прикидкам — ещё +25% к ad-выручке. Аналитик предлагает A/B на 4 недели. Кто-то спрашивает: «А что с retention?» В ответ — несколько неуверенных аргументов и фраза «давайте посмотрим в тесте».
Через 4 недели тест закрывают. Ad-выручка в тестовой группе +24%, p < 0.001. Retention метрики на 28 дней — около нуля, доверительные интервалы широкие. Решение: раскатать. Через полгода активная база сокращается на 7%, средний DAU просел, total revenue стагнирует. Кто-то открывает старый A/B-репорт: где было «retention близко к нулю».
Эта статья — про три механизма, из-за которых оптимизация revenue без модели retention систематически разрушает продукт. Каждый из механизмов выглядит безобидно в отдельном A/B-тесте, и каждый накапливается во времени и по когортам. Все три объединяются одним методологическим сдвигом — измерять revenue с учётом долгосрочного поведения, не как точечную метрику.
Угроза 1: retention отстаёт от revenue во времени
Самая частая ловушка ad-monetization тестов. Revenue реагирует мгновенно: увеличили ad load — выручка выросла той же недели. Retention реагирует с задержкой 2–6 недель: пользователь увидел больше рекламы, испытал лёгкое раздражение, в следующий заход открыл приложение реже, ещё через неделю — реже, ещё через две — забыл про продукт. Это не падение на 30% за неделю. Это смещение probability of return на 1–3 п.п., которое накапливается через когортное угасание.
В 4-недельном тесте retention-эффект не успевает проявиться. Среднее по когорте за 28 дней — это в большей мере поведение первых двух недель, когда новизна ad load ещё не сработала. В отчёте появляется «retention: ±0%, not significant». Команда принимает решение раскатать, и медленная эрозия retention продолжается полгода.
Численно: если retention падает на 0.5 п.п. в месяц от повышенного ad load, через 6 месяцев база сжимается на 3%. Если ad-выручка растёт на 24% — net revenue effect зависит от того, как ARPU соотносится с retention. Для большинства продуктов retention loss на 3% эквивалентен revenue loss 10–15% в годовом горизонте. И это уже не +24%, а −10%.
Решение — два инструмента вместе. Первый: holdout группы с длинным горизонтом измерения. Это не A/B на 4 недели, а небольшой holdout (3–5% трафика) который держится в старом режиме 6–9 месяцев. Метрики retention в нём сравниваются с большой тестовой группой. Через 3 месяца становятся видны 1–2 п.п. retention deltas, которые не видны в коротком тесте.
Второй: моделирование когортного угасания на исторических данных. Если прошлые ad load изменения шли с retention loss 0.3–0.7 п.п. в месяц, то новое изменение почти наверняка тоже даст retention loss. Не «нулевой эффект», а «эффект который не успел проявиться в окне теста».
Угроза 2: каннибализация внутри сессии
Второй механизм работает на коротких временных рамках, но тоже невидим в стандартных метриках. Пользователь заходит в продукт с фиксированным «бюджетом внимания» — 5 минут, 10 минут, 20 минут. Содержание этого бюджета — органический контент плюс реклама. Каждая дополнительная единица рекламы съедает время которое могло бы пойти на органический контент.
Если органический контент сам генерирует revenue (комиссия с продаж в маркетплейсе, плата за просмотр в медиа, подписки, конверсии в платный продукт) — больше рекламы означает меньше revenue по другим каналам. Net effect зависит от того, какой канал монетизации эффективнее на пределе.
Численно: представьте маркетплейс, где user в сессии видит 10 органических товаров и совершает покупку с вероятностью 3%. Средний чек 2000 рублей, маркетплейс берёт 8% комиссию — 4.8 рубля в среднем revenue с сессии. Добавляем 5 рекламных слотов вместо 3 органических. Пользователь теперь видит 7 органических товаров и 5 реклам. Conversion падает (меньше выбор) до 2.5%, expected commission revenue с сессии: 4 рубля. Ad-выручка с сессии выросла с 2 до 3.5 рублей. Net revenue per session: было 6.8 рублей, стало 7.5 рублей — рост 10%, не 75%, как казалось бы от роста ad slots.
В A/B-отчёте, который показывает только ad-выручку, рост будет +75%. Это число, на которое опирается решение. Net revenue — то, что реально приходит компании — растёт в несколько раз меньше. Иногда падает.
Решение — всегда смотреть net revenue, не ad-выручку. В отчёте по ad load тесту обязательная метрика — это total revenue per user, агрегированная по всем каналам: ad-выручка плюс commission/subscription/transaction revenue минус cost-related metrics если они зависят от поведения. Если ad-выручка растёт на 75%, а total revenue на 10% — это сигнал каннибализации, а не успеха.
Особый случай — продукты с subscription / premium уровнем. В них рекламная нагрузка часто связана обратной связью с подпиской: больше реклам = больше пользователей покупают premium, чтобы их убрать. Net revenue эффект ad load изменений в таких продуктах считается ещё сложнее, потому что subscription revenue лагает на месяцы.
Угроза 3: heavy users поглощают эффект
Третий механизм связан с распределением revenue по пользователям. В большинстве продуктов с рекламой распределение крайне неравномерное: 5–10% самых активных пользователей дают 50–70% всей рекламной выручки. Они заходят часто, смотрят много, толерантны к рекламе или рассматривают её как часть продукта.
Когда команда тестирует изменение ad load на общей аудитории и смотрит overall metrics, эффект на heavy users доминирует в этих метриках. Если +30% ad load дал у heavy users +20% revenue (они стерпели), а у light users — +50% revenue в краткосрочном окне (тоже стерпели за 4 недели, потом начнут уходить) — overall будет выглядеть отлично.
Но heavy users — это база, которая останется. Light users — это будущий поток тяжёлых пользователей. Если ad load увеличение гонит light users из продукта быстрее, чем они конвертятся в heavy — long-term база сокращается. Через год доля heavy users в DAU вырастает (они никуда не делись), но absolute количество DAU падает (light users ушли), и total revenue плоско держится даже при росте ARPU.
Симптом — расхождение между ARPU и DAU в долгосрочном горизонте. Если после ad load изменения ARPU растёт, а DAU падает, это значит вы сжимаете базу до heavy core. Это работает в краткосроке (выручка идёт), но это медленная гибель продукта.
Решение — обязательная сегментация по сегментам value-tier. Минимум три сегмента: heavy (топ 5–10%), medium (следующие 30–40%), light/new (остальные). Метрики revenue и retention в каждом сегменте отдельно. Решение принимается по effect на light/new tier, не на overall и не на heavy. Если изменение даёт положительный effect по light/new — это устойчивая монетизация. Если только по heavy, и light/new падает — это эксплуатация базы.
Что считать вместо «revenue uplift»
Три угрозы выглядят разными — лагирующий retention, within-session каннибализация, неоднородный отклик по сегментам. Объединяет их одно: revenue в моменте теста — это удобная для измерения метрика, а не та которая определяет долгосрочный результат.
Правильная метрика — LTV-aware revenue impact: revenue per cohort с учётом retention probability и времени жизни. Упрощённая формула: ΔLTV ≈ ΔARPU × retention_multiplier × cohort_lifetime, где retention_multiplier учитывает лагирующее падение retention из угрозы 1, ARPU — net после каннибализации из угрозы 2, и всё считается per segment из угрозы 3.
Это не academic точность. Это разница между «ad-выручка +24%, раскатываем» и «LTV-impact (нетто) +3% для heavy, −7% для light, ожидаемое сокращение базы 5% за полгода, total revenue effect через год: −2%». Второй вариант — то, что увидит CFO компании через год. Первый — то, что увидит продакт-команда в A/B-отчёте сегодня.
Главное правило ad monetization: никогда не оптимизировать ad-выручку в изоляции. Total revenue с учётом каннибализации, retention impact на холдауте с длинным горизонтом, segmented analysis по value tier — это базовый набор, не опционально.
Чеклист для команды
Семь правил, которые закрывают большую часть проблем при планировании ad load или ad format теста:
- Holdout-группа с горизонтом 3–6 месяцев. Маленькая (3–5% трафика) контрольная группа, остающаяся в старом режиме. Retention метрики измеряются на ней, а не в 4-недельном A/B.
- Net revenue, не ad-выручка. Total revenue per user агрегированная по всем каналам. Расхождение ad-выручки и net revenue — диагностика каннибализации.
- Segmented analysis по сегментам value-tier. Минимум три сегмента: heavy / medium / light-new. Решение принимается по effect на light/new tier, не на overall.
- Cohort retention curves, не средний 28-day retention. Среднее retention через 28 дней маскирует разную форму кривых. Форма кривой (быстрая эрозия vs медленное накопительное угасание) определяет долгосрочный effect.
- Историческая база для скорости когортного угасания. Если прошлые ad load повышения давали retention loss 0.3–0.7 п.п. в месяц, новое повышение почти наверняка даст похожий паттерн. «Нулевой эффект в коротком тесте» означает «не успел проявиться», не «не существует».
- Subscription / premium dynamic учитывать отдельно. Если в продукте есть платный уровень, ad load повышение часто увеличивает конверсию в подписку (нужно отделить от ad-выручки) и одновременно увеличивает отток (нужно отделить от retention loss).
- Повторная оценка через 6 месяцев после раскатки. Не «раскатили и забыли». Через полгода смотреть на тренд активной базы, retention curves, segment distribution. Если база сжимается, ad load — кандидат на откат.
Это базовая гигиена. Команда, которая делает все семь шагов, получает ad monetization программу, на которую можно полагаться годами. Команда, которая делает один-два из них, получает квартальный рост ad-выручки и медленную эрозию продукта, которую заметит CFO через год.