Calcular usuarios activos diarios y mensuales (DAU y MAU)

En resumen: Aprende a calcular usuarios activos diarios y mensuales para obtener insights valiosos sobre tus campañas

General

Los usuarios activos diarios (DAU) y los usuarios activos mensuales (MAU) son métricas clave para entender el engagement de la aplicación y el comportamiento general del usuario. Proporcionan insights valiosos sobre tu base de usuarios activos, incluyendo la retención de usuarios, el rendimiento de las campañas y las tendencias de crecimiento a lo largo del tiempo.

Este artículo explica cómo calcular DAU y MAU utilizando consultas en dos tablas de raw data de Data Locker que representan la adquisición de usuarios y el tráfico de retargeting: las tablas sessions y sessions_retargeting.

 Nota

A partir de febrero de 2025, el dashboard de actividad en AppsFlyer muestra datos unificados (UA y Retargeting) por defecto. Puedes notar una pequeña diferencia entre los raw data y los números del dashboard debido a ajustes algorítmicos aprobados.

Consultando usuarios únicos activos

Para calcular usuarios únicos, utiliza advertising_id como el identificador principal en tu consulta. Si advertising_id no está disponible, sustitúyelo por appsflyer_id. Este método se aplica solo a aplicaciones configuradas en modo de primera instalación.

Para aplicaciones que no utilizan este modo, recomendamos aplicar count(distinct appsflyer_id).

Calcular usuarios activos diarios (DAU)

Calcular el número total de usuarios únicos por día utilizando las consultas a continuación.

Consulta para DAU – Adquisición de Usuarios (UA)

Seleccionar usuarios activos de UA para un día específico.

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;

Consulta para DAU – Retargeting

Seleccionar usuarios activos de retargeting para un día específico.

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;

Consulta para DAU – Unificado (UA y Retargeting)

Seleccionar usuarios activos de UA y retargeting para un día específico.

Para obtener una cobertura completa de usuarios activos, debes unir las tablas sessions y sessions_retargeting . Asegúrate de que los campos estén alineados, generalmente por app_id, event_time, advertising_id y appsflyer_id. Si es necesario, normaliza el esquema para que ambas tablas tengan nombres de columnas consistentes.

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;

Calcular Usuarios Activos Mensuales (MAU)

Los dashboards de AppsFlyer presentan MAU de dos maneras:

  1. Usuarios activos en los últimos 31 días – el número de usuarios activos únicos en los últimos 31 días.
  2. MAU en el mes del calendario – el número de usuarios activos únicos dentro de un mes específico del calendario.

Las consultas a continuación demuestran cómo calcular el primer tipo de MAU. Para calcular el MAU del mes del calendario en su lugar, simplemente ajusta el rango de fechas para que coincida con el mes deseado.

Consultas para MAU – Adquisición de Usuarios (UA)

Selecciona usuarios activos de UA para un mes específico.

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;

Consultas para MAU – Retargeting

Selecciona usuarios activos de retargeting para un mes específico.

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;

Consultas para MAU – Unificado (UA y Retargeting)

Selecciona usuarios activos de UA y retargeting para un mes específico.

Para obtener una cobertura completa de usuarios activos, debes unir las tablas sessions y sessions_retargeting . Asegúrate de que los campos estén alineados, generalmente por app_id, event_time, advertising_id y appsflyer_id. Si es necesario, normaliza el esquema para que ambas tablas tengan nombres de columnas consistentes.

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;