Calcular daily e monthly active users (DAU e MAU)

Resumo: saiba como calcular os usuários ativos diários e mensais para obter insights valiosos sobre as suas campanhas

Visão geral

Daily Active Users (DAU) e Monthly Active Users (MAU) são métricas fundamentais para entender o engajamento no aplicativo e o comportamento geral de um usuário. Essas métricas fornecem insights valiosos sobre a sua base de usuários ativos, incluindo o stickiness do usuário, performance de uma campanha e tendências de crescimento ao longo do tempo.

Esse artigo explica como calcular o DAU e MAU utilizando consultas em duas tabelas de dados brutos do Data Locker, que representam a aquisição de usuários e o tráfego de retargeting: as tabelas sessions e sessions_retargeting.

Atenção

A partir de fevereiro de 2025, o dashboard de atividades na AppsFlyer mostrará dados unificados (UA e retargeting) por padrão. Talvez você observe um pequeno delta entre os dados brutos e os números do dashboard por conta de ajustes algorítmicos aprovados.

Consulta de usuários exclusivos ativos

Para calcular os usuários exclusivos, use advertising_id como identificador primário na sua consulta. Se o advertising_id não estiver disponível, substitua-o por appsflyer_id. Esse método se aplica apenas a aplicativos configurados no modo de primeira instalação.

Para aplicativos que não usam esse modo, recomendamos a aplicação de count(distinct appsflyer_id).

Calcular Daily Active Users (DAU)

Calcule o número total de usuários exclusivos por dia usando as consultas abaixo.

Consulta para DAU - Aquisição de usuários (UA)

Selecione os usuários ativos após a aquisição de usuários para um dia 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

Selecione os usuários de ativos após o retargeting para um dia 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 de DAU - Unificado (UA e retargeting)

Selecionar usuários ativos após UA e retargeting para um dia específico.

Para visualizar todos os usuários ativos, você deve unir as tabelas sessions e sessions_retargeting. Certifique-se de que os campos estão alinhados — normalmente por app_id, event_time, advertising_id e appsflyer_id. Quando necessário, padronize o esquema de modo que ambas as tabelas tenham nomes de colunas 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 Monthly Active Users (MAU)

Os dashboards da AppsFlyer apresentam o MAU de duas maneiras diferentes:

  1. Usuários ativos nos últimos 31 dias — o número de usuários exclusivos ativos nos últimos 31 dias.
  2. MAU do mês selecionado — número de usuários exclusivos durante um mês específico.

As consultas abaixo mostram como calcular o primeiro tipo de MAU. Para calcular o MAU de um mês específico, basta ajustar o intervalo de datas para corresponder ao mês desejado.

Consulta de MAU - Aquisição de usuários (UA)

Selecione os usuários ativos após a aquisição de usuários para um mês 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;

Consulta de MAU - Retargeting

Selecione os usuários de ativos após o retargeting para um mês 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;

Consulta de MAU - Unificado (UA e retargeting)

Selecionar usuários ativos após UA e retargeting para um mês específico.

Para visualizar todos os usuários ativos, você deve unir as tabelas sessions e sessions_retargeting. Certifique-se de que os campos estão alinhados — normalmente por app_id, event_time, advertising_id e appsflyer_id. Quando necessário, padronize o esquema de modo que ambas as tabelas tenham nomes de colunas 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;