Расскажите о Sticky Factor (коэффициент "липкости"). Как его рассчитать и что считается хорошим показателем?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Sticky Factor (Коэффициент "Липкости")
Определение
Sticky Factor (коэффициент прилипаемости) — это показатель, который измеряет, какая доля ежедневных активных пользователей (DAU) составляет ежемесячных активных пользователей (MAU). По сути, это показывает, насколько "липкий" (addictive) продукт: как часто пользователи возвращаются?
Формула:
Sticky Factor = DAU / MAU × 100%
Где:
- DAU (Daily Active Users) — уникальные пользователи, активные в день
- MAU (Monthly Active Users) — уникальные пользователи, активные в месяц
Интерпретация
Sticky Factor = 50%
Означает: из пользователей, которые заходили хоть раз за месяц,
в среднем 50% заходят КАЖДЫЙ день
Примеры по индустриям
Сервис | DAU | MAU | Sticky Factor
--------------------|-----|--------|----------------
WhatsApp | 5M | 10M | 50%
TikTok | 8M | 15M | 53%
Instagram | 4M | 10M | 40%
LinkedIn | 1M | 8M | 12% (не ежедневный)
Netflix | 0.5M| 3M | 17% (просмотры не каждый день)
YouTube | 10M | 20M | 50%
Telegram | 3M | 6M | 50%
Fitness App | 0.2M| 1M | 20% (сезонное)
Почему это важно?
Sticky Factor показывает:
- Привыкание — стал ли продукт привычкой?
- Здоровье пользовательской базы — реальная активность, не "мертвые" аккаунты
- Монетизационный потенциал — частые пользователи = больше монетизации
- Качество продукта — если Sticky падает → есть проблемы
Диапазоны оценки (benchmarks)
Sticky Factor < 10%
Статус: ⚠️ ПЛОХО
Описание: Пользователи забывают про вас
Примеры: RSS reader, погодное приложение (сезонное)
Sticky Factor 10-20%
Статус: ⚠️ НИЖЕ СРЕДНЕГО
Описание: Используют, но не ежедневно
Примеры: Fitness app, читалка электронных книг, банковское приложение
Sticky Factor 20-30%
Статус: 📊 СРЕДНЕЕ
Описание: Норма для многих сервисов
Примеры: Slack (рабочее ПО), Twitter/X
Sticky Factor 30-40%
Статус: 👍 ХОРОШО
Описание: Пользователи возвращаются регулярно
Примеры: Uber, Grab, Яндекс.Карты
Sticky Factor > 40%
Статус: 🔥 ОТЛИЧНО
Описание: Высокая "липкость", привычный сервис
Примеры: WhatsApp, Telegram, TikTok, YouTube
Как рассчитать Sticky Factor?
Методология 1: Месячное сравнение (самая частая)
WITH daily_actives AS (
SELECT
DATE(event_date) as date,
COUNT(DISTINCT user_id) as dau
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL 30 DAY
GROUP BY DATE(event_date)
),
monthly_actives AS (
SELECT
COUNT(DISTINCT user_id) as mau
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL 30 DAY
)
SELECT
(SELECT AVG(dau) FROM daily_actives) as avg_dau,
(SELECT mau FROM monthly_actives) as mau,
ROUND(100.0 * (SELECT AVG(dau) FROM daily_actives) / (SELECT mau FROM monthly_actives), 2) as sticky_factor_pct
Методология 2: День за днём (более точная)
Вычисляем для каждого дня за месяц:
SELECT
DATE(event_date) as date,
COUNT(DISTINCT user_id) as dau,
(
SELECT COUNT(DISTINCT user_id)
FROM events e2
WHERE DATE_TRUNC('month', e2.event_date) = DATE_TRUNC('month', e.event_date)
) as mau,
ROUND(100.0 * COUNT(DISTINCT user_id) / (
SELECT COUNT(DISTINCT user_id)
FROM events e2
WHERE DATE_TRUNC('month', e2.event_date) = DATE_TRUNC('month', e.event_date)
), 2) as sticky_factor
FROM events e
WHERE event_date >= CURRENT_DATE - INTERVAL 30 DAY
GROUP BY DATE(event_date)
ORDER BY date;
Результат:
date | dau | mau | sticky_factor
-----------|-------|--------|----------------
2024-01-01 | 5000 | 15000 | 33.33%
2024-01-02 | 4800 | 15000 | 32.00%
2024-01-03 | 5200 | 15000 | 34.67%
...
2024-01-31 | 5100 | 15000 | 34.00%
Средний Sticky Factor за месяц = 33%
Методология 3: Когортный анализ Sticky
Видим, как Sticky меняется по когортам:
WITH cohorts AS (
SELECT
DATE_TRUNC('week', user_created_date) as cohort_week,
COUNT(DISTINCT user_id) as cohort_size
FROM users
GROUP BY cohort_week
),
dau_counts AS (
SELECT
DATE_TRUNC('week', u.user_created_date) as cohort_week,
COUNT(DISTINCT u.user_id) as week_dau
FROM users u
JOIN events e ON u.user_id = e.user_id
WHERE e.event_date >= CURRENT_DATE - INTERVAL 30 DAY
GROUP BY cohort_week
)
SELECT
c.cohort_week,
c.cohort_size,
d.week_dau,
ROUND(100.0 * d.week_dau / c.cohort_size, 2) as sticky_factor_pct
FROM cohorts c
LEFT JOIN dau_counts d ON c.cohort_week = d.cohort_week
ORDER BY c.cohort_week DESC;
Видим: старые когорты имеют НИЗКИЙ sticky (забыли), новые — ВЫСОКИЙ (еще в медовом месяце).
Почему Sticky может быть низким?
1. Новые пользователи
- Новички часто пробуют продукт нерегулярно
- Нужно смотреть Sticky отдельно по возрасту когорты
2. Сезонность
- Fitness app: летом выше, зимой ниже
- Игры про новый год: Sticky выше 31 декабря
3. Категория продукта
- Utility (утилиты): низкий Sticky (используют по необходимости)
- Social/Entertainment: высокий Sticky (ежедневные привычки)
4. Проблемы в продукте
- Баги → Sticky падает
- Скучный контент → Sticky падает
- Монетизация раздражает → Sticky падает
Как улучшить Sticky Factor?
1. Улучшить onboarding
Новый пользователь понимает ценность → возвращается
День 1 Retention растёт → Sticky растёт
2. Notifications & Engagement
Уведомления о новом контенте → пользователь возвращается
Но осторожно: спам → Sticky падает
3. Персонализация
Рекомендации → пользователю интересно
Каждый раз разное → возвращается
4. Привычка & Rituals
Daily challenge (как в Duolingo)
Streak counter (горячая серия)
Social features (конкурс с друзьями)
5. Убрать friction
Слишком много шагов для открытия app → Sticky падает
Слишком долгая загрузка → Sticky падает
Ошибки → Sticky падает
Практический пример: отслеживание Sticky
-- Создаём метрику для дашборда
WITH params AS (
SELECT
CURRENT_DATE - INTERVAL 30 DAY as month_start,
CURRENT_DATE as month_end
),
daily_actives AS (
SELECT
DATE(event_date) as date,
COUNT(DISTINCT user_id) as dau
FROM events
WHERE event_date >= (SELECT month_start FROM params)
AND event_date <= (SELECT month_end FROM params)
GROUP BY DATE(event_date)
),
monthly_total AS (
SELECT COUNT(DISTINCT user_id) as mau
FROM events
WHERE event_date >= (SELECT month_start FROM params)
AND event_date <= (SELECT month_end FROM params)
)
SELECT
(SELECT AVG(dau) FROM daily_actives)::INTEGER as avg_dau,
(SELECT mau FROM monthly_total)::INTEGER as mau,
ROUND(100.0 * (SELECT AVG(dau) FROM daily_actives) / (SELECT mau FROM monthly_total), 2) as sticky_factor_pct,
CASE
WHEN 100.0 * (SELECT AVG(dau) FROM daily_actives) / (SELECT mau FROM monthly_total) > 40 THEN 'Отлично'
WHEN 100.0 * (SELECT AVG(dau) FROM daily_actives) / (SELECT mau FROM monthly_total) > 30 THEN 'Хорошо'
WHEN 100.0 * (SELECT AVG(dau) FROM daily_actives) / (SELECT mau FROM monthly_total) > 20 THEN 'Норма'
ELSE 'Нужна работа'
END as health_status;
Sticky Factor vs Retention Rate
Это разные метрики!
Sticky Factor = DAU / MAU (% месячного использования)
Retention Rate = Users on Day N / Users on Day 0 (% возврата из когорты)
Пример:
App с 10k MAU и 3k DAU:
- Sticky = 30%
- D7 Retention: 40% (из пользователей дня 0, 40% вернулись на день 7)
Это совместимо: люди могут иметь 40% D7 retention но 30% Sticky
(вернулись не каждый день, но все ещё вернулись)
SQL для анализа Sticky тренда
-- Видим, растёт ли Sticky месяц за месяцем
WITH monthly_actives AS (
SELECT
DATE_TRUNC('month', event_date)::DATE as month,
COUNT(DISTINCT user_id) as mau,
COUNT(DISTINCT CASE
WHEN event_date = DATE_TRUNC('day', event_date)
THEN user_id
END) as dau_in_month
FROM events
GROUP BY DATE_TRUNC('month', event_date)
)
SELECT
month,
mau,
ROUND(100.0 * dau_in_month / mau, 2) as sticky_factor_pct,
LAG(ROUND(100.0 * dau_in_month / mau, 2)) OVER (ORDER BY month) as prev_month_sticky,
ROUND(ROUND(100.0 * dau_in_month / mau, 2) -
LAG(ROUND(100.0 * dau_in_month / mau, 2)) OVER (ORDER BY month), 2) as monthly_change
FROM monthly_actives
ORDER BY month DESC;
Итог
Sticky Factor — это key health metric продукта:
- Что показывает: Как часто пользователи возвращаются?
- Как считать: DAU / MAU × 100%
- Хорошие значения: 30%+ считается нормой, 40%+ — отлично
- Почему важно: Предсказывает долгосрочный успех и монетизацию
- Как улучшить: Onboarding, notifications, персонализация, привычки
Высокий Sticky Factor = пользователи полюбили ваш продукт = долгосрочный успех.