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

Что такое MAU, DAU и как их рассчитывать?

1.0 Junior🔥 241 комментариев
#Метрики и KPI

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

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

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

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);

Ключевые различия

МетрикаПериодПрименение
DAU1 деньОценка ежедневной активности, выявление трендов
MAU30/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;

Важные нюансы

  1. Определение активности — критически важно чётко определить, что считать активностью (открытие приложения, определённое действие, просмотр контента).

  2. Временная зона — для корректного подсчёта дневной активности нужно учитывать временную зону пользователей.

  3. Анонимные пользователи — решить заранее, будут ли учитываться анонимные сессии или только авторизованные пользователи.

  4. Возвратные пользователи — MAU показывает, сколько пользователей вернулось за месяц, что важнее, чем валовое количество загрузок.

Эти метрики критичны для оценки здоровья продукта и принятия решений по развитию.