Что такое MAU, DAU и как их рассчитывать?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
MAU и DAU: Определения и Расчёты
MAU (Monthly Active Users) и DAU (Daily Active Users) — это ключевые метрики для оценки активности и размера пользовательской базы мобильных и веб-приложений. Они помогают понять, насколько активны пользователи и как растёт аудитория продукта.
DAU (Daily Active Users)
DAU — количество уникальных пользователей, которые совершили определённое действие (открыли приложение, совершили покупку, просмотрели контент) в течение одного календарного дня.
Как рассчитывать:
SELECT
DATE(event_timestamp) as date,
COUNT(DISTINCT user_id) as dau
FROM events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL 30 day
GROUP BY DATE(event_timestamp)
ORDER BY date DESC;
Этот запрос считает уникальных пользователей за каждый день, используя COUNT(DISTINCT user_id). Важно использовать именно DISTINCT, чтобы один пользователь, совершивший несколько действий в день, считался один раз.
MAU (Monthly Active Users)
MAU — количество уникальных пользователей, активных в течение календарного месяца (30/31 день или конкретный месяц).
Как рассчитывать:
SELECT
TO_CHAR(event_timestamp, YYYY-MM) as month,
COUNT(DISTINCT user_id) as mau
FROM events
WHERE event_timestamp >= DATE_TRUNC(month, CURRENT_DATE) - INTERVAL 12 month
GROUP BY TO_CHAR(event_timestamp, YYYY-MM)
ORDER BY month DESC;
Другой подход для получения MAU за последний полный месяц:
SELECT COUNT(DISTINCT user_id) as mau
FROM events
WHERE DATE_TRUNC(month, event_timestamp) =
DATE_TRUNC(month, CURRENT_DATE - INTERVAL 1 month);
Ключевые различия
| Метрика | Период | Применение |
|---|---|---|
| DAU | 1 день | Оценка ежедневной активности, выявление трендов |
| MAU | 30/31 день | Оценка размера активной базы, планирование ресурсов |
Соотношение DAU к MAU
Разработчики часто анализируют коэффициент DAU/MAU (обычно 20-50%), что показывает, какой процент ежемесячных пользователей активны ежедневно:
WITH daily_data AS (
SELECT DATE(event_timestamp) as date,
COUNT(DISTINCT user_id) as dau
FROM events
WHERE event_timestamp >= DATE_TRUNC(month, CURRENT_DATE)
GROUP BY DATE(event_timestamp)
),
monthly_data AS (
SELECT COUNT(DISTINCT user_id) as mau
FROM events
WHERE DATE_TRUNC(month, event_timestamp) = DATE_TRUNC(month, CURRENT_DATE)
)
SELECT
d.date,
d.dau,
m.mau,
ROUND(100.0 * d.dau / m.mau, 2) as engagement_pct
FROM daily_data d
CROSS JOIN monthly_data m
ORDER BY d.date;
Важные нюансы
-
Определение активности — критически важно чётко определить, что считать активностью (открытие приложения, определённое действие, просмотр контента).
-
Временная зона — для корректного подсчёта дневной активности нужно учитывать временную зону пользователей.
-
Анонимные пользователи — решить заранее, будут ли учитываться анонимные сессии или только авторизованные пользователи.
-
Возвратные пользователи — MAU показывает, сколько пользователей вернулось за месяц, что важнее, чем валовое количество загрузок.
Эти метрики критичны для оценки здоровья продукта и принятия решений по развитию.