Рассчитайте количество активных пользователей за день/месяц (DAU и MAU)

Краткий обзор: Узнайте, как рассчитывать количество активных пользователей в день и в месяц, чтобы получить важные данные о ваших кампаниях

Обзор

Показатели «Активные пользователи в день» (DAU) и «Активные пользователи в месяц» (MAU) -- ключевые метрики для оценки вовлечённости в приложении и общего поведения пользователей. Они предоставляют ценные сведения о вашей активной базе пользователей, такие как коэффициент удержания пользователей, эффективность кампаний и динамика роста во времени.

Эта статья поясняет, как рассчитать DAU и MAU с помощью запросов к двум таблицам необработанных данных Premium Data Locker, которые отражают трафик привлечения пользователей и ретаргетинга: таблицы sessions и sessions_retargeting.

Примечание

Начиная с февраля 2025 года, в панели «Активность» в AppsFlyer по умолчанию отображаются объединенные данные (UA и ретаргетинг). Вы можете заметить небольшую разницу между сырыми показателями и данными панели из-за утвержденных алгоритмических корректировок.

Запрос активных уникальных пользователей

Чтобы рассчитать количество уникальных пользователей, используйте advertising_id в качестве основного идентификатора в вашем запросе. Если advertising_id недоступен, замените его на appsflyer_id. Этот метод применяется только к приложениям, настроенным в режиме первичной установки.

Для приложений, не использующих этот режим, мы рекомендуем использовать вместо этого count(distinct appsflyer_id).

Рассчет количества ежедневных активных пользователей (DAU)

Рассчитайте общее количество уникальных пользователей в день, используя приведенные ниже запросы.

Запрос для DAU – Привлечение пользователей (UA)

Выберите активных пользователей UA за указанный день.

WITH sessions_cleaned AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions
    WHERE app_id = 'your.app.id.here'                      -- Replace with your app ID
		    AND SUBSTR(event_time, 1, 10) = 'YYYY-MM-DD'       -- Target date                 
)

SELECT COUNT(DISTINCT user_id) AS dau_ua
FROM sessions_cleaned;

Запрос для DAU – Ретаргетинг

Выберите активных пользователей ретаргетинга за указанный день.

WITH sessions_retargeting_cleaned AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions_retargeting
    WHERE app_id = 'your.app.id.here'                      -- Replace with your app ID
		    AND SUBSTR(event_time, 1, 10) = 'YYYY-MM-DD'   -- Target date                 
)
SELECT COUNT(DISTINCT user_id) AS dau_retargeting
FROM sessions_retargeting_cleaned;

Запрос для DAU – Объединенные (UA и Ретаргетинг)

Выберите активных пользователей UA и ретаргетинга за указанный день.

Чтобы получить полный охват активных пользователей, необходимо объединить sessions и таблицы sessions_retargeting . Убедитесь, что поля выровнены — обычно по app_id, event_time, advertising_id и appsflyer_id. При необходимости нормализуйте схему, чтобы в обеих таблицах были одинаковые названия столбцов.

WITH ua_sessions AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions
    WHERE app_id = 'your.app.id.here'                 -- Replace with your app ID
      AND SUBSTR(event_time, 1, 10) = 'YYYY-MM-DD'    -- Target date           
      AND is_primary_attribution = TRUE
),

retargeting_sessions AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions_retargeting
    WHERE app_id = 'your.app.id.here'                  -- Same app
      AND SUBSTR(event_time, 1, 10) = 'YYYY-MM-DD'     -- Same date
),

all_sessions AS (
    SELECT * FROM ua_sessions
    UNION ALL
    SELECT * FROM retargeting_sessions
)

SELECT COUNT(DISTINCT user_id) AS dau_unified
FROM all_sessions;

Рассчет количества активных пользователей в месяц (MAU)

Панели управления AppsFlyer представляют MAU в двух форматах:

  1. Активные пользователи за последние 31 день – количество уникальных активных пользователей за последние 31 день.
  2. MAU за календарный месяц – количество уникальных активных пользователей в течение конкретного календарного месяца.

Следующие запросы показывают, как рассчитать первый тип MAU. Чтобы рассчитать MAU за календарный месяц, просто измените диапазон дат, чтобы он соответствовал запрашиваемому месяцу.

Запрос для MAU – Привлечение пользователей (UA)

Выберите активных пользователей UA за указанный месяц.

WITH sessions_cleaned AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions
    WHERE app_id = 'your.app.id.here'  -- Replace with your app ID
			AND DATE_DIFF('day', TRY_CAST(SUBSTR(event_time, 1, 10) AS DATE), DATE('YYYY-MM-DD')) <= 31  -- Replace with target end date 
)
SELECT COUNT(DISTINCT user_id) AS mau_ua
FROM sessions_cleaned;

Запрос для MAU – Ретаргетинг

Выберите активных пользователей ретаргетинга за указанный месяц.

WITH sessions_cleaned AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions_retargeting
    WHERE app_id = 'your.app.id.here'  -- Replace with your app ID
			AND DATE_DIFF('day', TRY_CAST(SUBSTR(event_time, 1, 10) AS DATE), DATE('YYYY-MM-DD')) <= 31  -- Replace with target end date 
)

SELECT COUNT(DISTINCT user_id) AS mau_retargeting
FROM sessions_cleaned;

Запрос для MAU – Объединенный (UA и Ретаргетинг)

Выберите активных пользователей UA и ретаргетинга за указанный месяц.

Чтобы получить полный охват активных пользователей, необходимо объединить sessions и таблицы sessions_retargeting . Убедитесь, что поля выровнены — обычно по app_id, event_time, advertising_id и appsflyer_id. При необходимости нормализуйте схему, чтобы в обеих таблицах были одинаковые названия столбцов.

WITH ua_sessions AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions
    WHERE app_id = 'your.app.id.here'                        -- Replace with your app ID
      AND DATE_DIFF('day', TRY_CAST(SUBSTR(event_time, 1, 10) AS DATE), DATE('YYYY-MM-DD')) <= 31  -- Replace with target end date        
      AND is_primary_attribution = TRUE
),

retargeting_sessions AS (
    SELECT DISTINCT
        app_id,
        COALESCE(advertising_id, appsflyer_id) AS user_id
    FROM sessions_retargeting
    WHERE app_id = 'your.app.id.here'                        -- Same app 
      AND DATE_DIFF('day', TRY_CAST(SUBSTR(event_time, 1, 10) AS DATE), DATE('YYYY-MM-DD')) <= 31  -- Replace with target end date
),

all_sessions AS (
    SELECT * FROM ua_sessions
    UNION ALL
    SELECT * FROM retargeting_sessions
)

SELECT COUNT(DISTINCT user_id) AS mau_unified
FROM all_sessions;