Relatório do Painel - Visitas dos Usuários

Este é um relatório de painel em versão SQL para Visitas de Usuários e Visitas de Usuários (Dispositivos Móveis).

Este relatório de painel fornece insights sobre o engajamento do usuário rastreando as visitas diárias dos usuários. Os administradores podem filtrar os dados com base no intervalo de datas, associação de grupo e tipo de dispositivo (móvel ou não móvel).

Compreender os padrões de visita do usuário pode ajudar os administradores a tomar decisões informadas para aprimorar o engajamento do usuário e a saúde da comunidade.

-- [params]
-- date :start_date = 2024-01-06
-- date :end_date = 2024-02-07
-- null text :group_name
-- boolean :mobile_views = false

SELECT uv.visited_at AS date,
       COUNT(DISTINCT uv.user_id) AS visits_count
FROM user_visits uv
LEFT JOIN group_users gu ON gu.user_id = uv.user_id
LEFT JOIN groups g ON g.id = gu.group_id AND (:group_name IS NULL OR g.name = :group_name)
WHERE uv.visited_at BETWEEN :start_date AND :end_date
AND (:group_name IS NULL OR g.name IS NOT NULL)
AND (:mobile_views = false OR uv.mobile = true)
GROUP BY uv.visited_at
ORDER BY uv.visited_at ASC

Explicação da Consulta SQL

A consulta SQL opera selecionando dados da tabela user_visits, que registra as visitas de cada usuário à plataforma. Os principais componentes da consulta são explicados abaixo:

  • Parâmetros
    • :start_date e :end_date definem o intervalo de datas para o relatório. Ambos os parâmetros de data aceitam o formato de data AAAA-MM-DD.
    • :group_name permite filtrar por um nome de grupo de usuários específico. Se não for especificado, os dados de todos os grupos são incluídos.
    • :mobile_views determina se deve incluir apenas visitas de dispositivos móveis (true) ou todas as visitas (false).
  • Seleção de Dados e Operações de Junção:
    • A consulta seleciona a data da visita (visited_at) e conta IDs de usuário distintos (user_id) para calcular o número de visitas exclusivas por dia.
    • Ela executa um LEFT JOIN com a tabela group_users para associar as visitas do usuário aos seus respectivos grupos, seguido por outro LEFT JOIN com a tabela groups para filtrar pelo nome do grupo especificado, se houver.
  • Filtragem:
    • A cláusula WHERE aplica filtros com base nos parâmetros de entrada:
      • Garante que apenas as visitas dentro do intervalo de datas especificado sejam incluídas.
      • Filtra pelo nome do grupo, se especificado, e garante que as visitas sejam contadas para usuários pertencentes a esse grupo.
      • Inclui apenas visitas móveis se o parâmetro :mobile_views estiver definido como true.
  • Agrupamento e Ordenação:
    • A consulta agrupa os resultados pela data da visita (visited_at) para agregar as contagens de visitas por dia.
    • Ela ordena os resultados em ordem crescente por data, fornecendo uma visualização cronológica das visitas do usuário.

Exemplo de Resultados

date visits_count
2024-01-06 67
2024-01-07 71
2024-01-08 88
2024-01-09 79
2024-01-10 78
3 curtidas

6 posts foram divididos em um novo tópico: Alterar a descrição de ‘visitas de usuários’ para deixar mais claro que se refere a usuários logados