Комментарии (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 показывает, сколько пользователей вернулось за месяц, что важнее, чем валовое количество загрузок.
Эти метрики критичны для оценки здоровья продукта и принятия решений по развитию.
Похожие вопросы
- Расскажи о себе
- Что такое CASE WHEN в SQL и как его использовать?
- Расскажи про инструменты с которыми работаешь
- Что такое JOIN?
- Какие задачи решал с использованием Python?
- Какие приоритеты при выборе компании?
- В каких ситуациях используешь SQL
- С какими библиотеками работал в Python
- Какие задачи решал на последнем месте работы?
- Что такое p-value и как его интерпретировать?
- С какими проблемами сталкивался на работе
- Какие проверки выполняешь для данных?
- В какой технической области хочешь развиваться
- Что такое Retention Rate и Churn Rate?
- В чём важность очистки данных?
- Чем хотел бы заниматься?
- С какими данными работал
- Больше опыта в SQL или Python
- Как работать с датами в SQL (DATE_TRUNC, EXTRACT, INTERVAL)?
- Какие задачи решал при помощи SQL?