Voltar ao Blog

Dashboard de Google Analytics: conectei o próprio tráfego do meu site no Power BI

Power BIDashboards

Preguiça de ler? Dá um GPT aí

Tempo de leitura: 8 minutos

Dashboard de Google Analytics: conectei o próprio tráfego do meu site no Power BI

O labirinto chamado Google Analytics

Você já tentou usar o Google Analytics na interface web? Dá pra entender alguma coisa de primeira? Vou falar a verdade: a experiência é horrível.

São vários menus, submenus, relatórios com nomes parecidos e filtros nada claros. Pode ser ousado o que vou falar, mas acho que até para quem está acostumado com a ferramenta não deve gostar da experiência. Agora imagine para quem não tem esse costume?

Toda vez que eu queria responder uma pergunta simples como:

  • "o tráfego do blog cresceu esse mês?"
  • "de onde estão vindo as visitas?"
  • "quais páginas prendem mais atenção?"

Era necessário fuçar a ferramenta inteira para entender os gráficos, filtros e relatórios. Depois salvar os tamplates para consumir depois.

Foi esse atrito que me fez resolver criar este dashboard: pegar tudo que realmente importa do Google Analytics e colocar numa única tela, do meu jeito.

A homenagem que surgiu do plugin do Wordpress

Quem já teve um site em WordPress provavelmente conhece o MonsterInsights, um plugin super popular que pega os dados do Google Analytics e mostra direto no painel do WordPress, de um jeito simples. Eu usei esse plugin por muitos anos, em vários projetos, antes de migrar para outra stack.

Por isso o mascote azul que aparece no dashboard não é aleatório: é uma homenagem carinhosa ao "monstrinho" (mascote/logo) do MonsterInsights

Plugin do Google Analytics no Power BI

O Power BI tem o conector oficial para o Google Analytics. Isso muda a forma como o projeto é mantido: em vez de exportar CSV manualmente periodicamente, o modelo se conecta direto na sua conta, navega até a propriedade certa e traz as métricas já estruturadas em formato de cubo — sessões, usuários ativos, visualizações de página, taxa de engajamento e outras, segementadas pelas dimensões que você preferir (data, página, origem, país, dispositivo).

Configurei a atualização para rodar diariamente. Na prática, isso significa que todo dia o modelo já chega com os dados mais recentes prontos para análise — sem exportação manual, sem colar em planilha, sem perder o histórico por esquecimento.

Como o modelo foi estruturado

Segui uma lógica de star schema, mas separei os fatos por tema em vez de usar uma tabela única gigante. Cada recorte de análise tem sua própria tabela fato, alimentada pela mesma fonte, com as dimensões relevantes para aquele contexto:

  • fato_trafego: visão geral por data — sessões, usuários ativos, novos usuários, duração média de sessão e taxa de engajamento.
  • fato_origens: sessões e engajamento agrupados pela origem/mídia da visita (sessionSource).
  • fato_paginas: visualizações, engajamento e duração média por página (pagePath e pageTitle).
  • fato_localizacao: sessões e visualizações por país e cidade.
  • fato_dispositivos: sessões e usuários por categoria de dispositivo e navegador.

Todas se conectam à mesma dim_calendario, gerada no Power Query a partir do intervalo de datas real dos dados.

É importante lembrar que a integração do Google Analytics com o Power BI possui limitações da própria Google Analytics Data API, permitindo consultar até 9 dimensões e 10 métricas por requisição.

Categorização dos dados brutos

O dado bruto de analytics é "sujo". O sessionSource, que apresenta qual foi a origem dessa sessão, traz valores como lnkd.in, (direct) ou google, e o pagePath traz URLs completas como /blog/tmhue/ ou /en/dashboard-portfolio/. Sem tratamento, qualquer gráfico de barras vira uma lista longa e difícil de entender.

Criei duas colunas calculadas para resolver isso:

  • _Origem: agrupa a origem da sessão em categorias legíveis — google, linkedin, direto, facebook, teams, acesso local (ambiente de desenvolvimento) ou "não identificado" — usando SWITCH combinado com CONTAINSSTRING.
  • _CategoriaPagina: classifica cada URL em Home, Blog, Portfólio, Sobre, Serviços, FAQ, Erro ou Outros, olhando o padrão do caminho. Isso transforma dezenas de URLs individuais em um punhado de categorias que realmente respondem "que tipo de conteúdo está performando melhor?".

Sem essas duas colunas, o dashboard seria tecnicamente correto, mas inútil para leitura rápida.

Glossário rápido

Antes de continuar, vale destravar o vocabulário. Boa parte da confusão com Google Analytics não é sobre onde clicar, é sobre não saber o que cada métrica realmente conta. Três termos aparecem o tempo todo neste dashboard:

  • Sessões (sessions): um período de interação de um usuário com o site. Se alguém entra, navega por algumas páginas e sai, isso conta como uma sessão só — mesmo vendo cinco páginas diferentes. Se essa mesma pessoa voltar depois de 30 minutos de inatividade, o GA4 já considera uma nova sessão.
  • Visualizações de página (pageviews): cada vez que uma página é carregada ou recarregada conta como uma visualização, independente da sessão. Por isso o número de pageviews é quase sempre maior que o de sessões: uma sessão pode ter só uma visualização (quem entra e sai) ou várias (quem navega pelo blog inteiro).
  • Taxa de engajamento (engagement rate): a porcentagem de sessões consideradas "engajadas" pelo GA4 — ou seja, sessões que duraram mais de 10 segundos, tiveram algum evento de conversão, ou mais de uma visualização de página. É o oposto direto da antiga taxa de rejeição (bounce rate) do Universal Analytics: em vez de medir quem saiu rápido, mede quem realmente ficou.

O que o dashboard mostra na prática

Segue uma lista de visões que podem ser encontradas nesse Dashboard:

  • Cartões de KPI: sessões, visualizações de página, taxa de engajamento e duração média de sessão — a leitura rápida de "como o site está indo" no período selecionado.
  • Tendência mensal: gráfico de linha com sessões ao longo do tempo, para enxergar se o tráfego está subindo, caindo ou estável.
  • Dispositivos: gráfico de rosca com a proporção de sessões por categoria de dispositivo (desktop, mobile, tablet).
  • Origens de tráfego: gráfico de barras com sessões e taxa de engajamento por origem categorizada — mostra não só de onde vêm as visitas, mas se elas realmente engajam.
  • Categorias de página: visualizações agrupadas por Home, Blog, Portfólio, Sobre, Serviços, FAQ — a visão de qual área do site concentra mais atenção.
  • Localização: tabela e gráfico por país e continente, com sessões e visualizações.
  • Tabela de páginas: ranking das páginas com mais visualizações, cruzado com taxa de engajamento e duração média de sessão — o recorte mais direto para saber quais conteúdos realmente prendem quem chega até eles.
  • Filtros de período e segmentação: slicers de data relativa e dropdowns para fatiar a análise sem sair da página.

Isso é só o pontapé inicial

Vale deixar claro: os indicadores que montei aqui são o começo, não o limite. Dá para ir muito além do que está publicado hoje — cruzar origem de tráfego com categoria de página para entender qual canal traz o visitante mais qualificado, criar uma régua de metas mês a mês, adicionar funil de conversão até o clique em "fale comigo", ou até trazer dados de outras fontes (como o próprio CRM) para cruzar tráfego com resultado de negócio. Comecei pelo que eu uso no dia a dia; o modelo já está estruturado para crescer conforme a necessidade aparecer.

Como isso vira decisão, não só gráfico bonito

Alguns exemplos de uso real deste painel no dia a dia:

  • Um post específico traz muito tráfego, mas engaja pouco: a tabela de páginas cruza visualizações com engajamento, então dá para perceber quando um título atrai clique mas o conteúdo não segura a atenção.
  • Uma origem começou a trazer mais visitas: o gráfico de origens mostra a mudança, e a taxa de engajamento ao lado ajuda a avaliar se é tráfego qualificado ou só volume.
  • Comparar o antes e depois de uma mudança no site: como o modelo é conectado à propriedade real, dá para comparar períodos diferentes — antes e depois de publicar um post, mudar uma CTA, ou lançar uma página nova — sem precisar exportar nada de novo.

Um layout vertical: fugindo do padrão

A maior parte dos Dashboards que desenvolvi no Power BI segue a mesma proporção (1280x720) e visuais lado a lado.

Aqui quis experimentar o contrário: um layout verticalizado, com os visuais concentrados numa coluna central em vez de vários gráficos disputando atenção ao mesmo tempo.

Espalhei o "monstrinho" pelas margens do dashboard, entre um indicador e outro. Além de reforçar a identidade visual da ferramenta, é um jeito de deixar o painel menos "frio": dá aquela sensação de companhia enquanto você analisa os números, em vez de só uma parede de KPIs. Esse cuidado aparece até de forma funcional no rodapé, onde o monstrinho com a lupa expõe um miniglossário direto no canvas.

O dashboard não foi pensado para caber inteiro numa tela. Recomendo navegar com zoom entre 100% e 120%, ajustando conforme a resolução do seu monitor.

Confira o Dashboard

O dashboard está público. Confira o resultado logo abaixo:

Conclusão: analisar o próprio produto é o melhor treino

Construir esse dashboard usando os "dados reais" do meu próprio site foi diferente de trabalhar com uma base fictícia: cada decisão de modelagem (como categorizar página, como agrupar origem, como lidar com privacidade dos números) teve que responder a uma necessidade genuína, não a um exercício hipotético. É esse tipo de fricção real que separa um dashboard de portfólio de uma ferramenta que alguém de fato usa — e este eu uso.

Curtiu este conteúdo?

Compartilhe e continue acompanhando minhas publicações.
Aproveite para conferir mais artigos!

Próximo passo

Quer um dashboard assim para a sua empresa?

Posso ajudar a estruturar seus indicadores e transformar dados brutos em uma leitura mais clara para decidir.