TL;DR
- Criamos um painel em Streamlit que lê os eventos da landing page no BigQuery, enviados pelo Google Analytics 4 (GA4).
- Assim, o time consulta indicadores de funil, termos de busca e frases personalizadas sem montar uma consulta a cada análise.
- A conexão usa uma conta de serviço do Google Cloud, com permissão só de leitura e a chave guardada nos segredos do Streamlit.
- Em geral, o cache das consultas reduz o custo no BigQuery e deixa o painel mais rápido.
- Por fim, o ponto de partida é definir as perguntas que o time quer responder, antes de montar os gráficos.
A exportação do GA4 para o BigQuery grava cada evento em uma linha, dentro de tabelas diárias. Esse formato guarda muito detalhe, mas dificulta a leitura rápida.
Foi o que encontramos na landing page da Orbital. Para resolver, criamos uma análise de dados de landing page com Streamlit, ferramenta que cria aplicações web interativas com Python.
O painel lê os eventos no BigQuery, trata os dados e mostra indicadores, gráficos e filtros em uma única tela.
Hoje, mostramos como conectamos o Streamlit ao BigQuery, quais dados extraímos e que cuidados a solução exige.
O que você encontrará no conteúdo:
- Por que a análise de dados de landing page fica subutilizada no BigQuery?
- Como conectar o Streamlit ao BigQuery com segurança?
- Quais dados da landing page vale extrair?
- Como transformar eventos em indicadores de funil?
- Quais visualizações ajudam a decidir?
- Que cuidados a solução exige?
- Perguntas frequentes
Por que a análise de dados de landing page fica subutilizada no BigQuery?
Porque o volume de eventos e a estrutura em tabelas tornam cada consulta lenta e trabalhosa.
A landing page da Orbital é uma das principais portas de entrada de potenciais clientes. Por isso, entender o comportamento dos visitantes importa para a equipe.
Os eventos chegam ao BigQuery pelo GA4, como acontece em muitas empresas. No entanto, o GA4 guarda os detalhes em campos aninhados, que exigem comandos específicos para a leitura. Como resultado, cada consulta toma tempo para ser montada e interpretada.
Além disso, o título da página exibe uma frase personalizada. A equipe precisa entender como essa variação se relaciona com a busca que trouxe cada visitante.
Assim, os dados ficavam guardados, mas pouco usados. Precisávamos de uma forma de coletar, processar e visualizar as informações, para que o time avaliasse a performance com dados atualizados.

Como conectar o Streamlit ao BigQuery com segurança?
Com uma conta de serviço do Google Cloud, permissão de leitura e a chave guardada nos segredos do Streamlit.
Primeiro, criamos a conta de serviço, que acessa os registros do BigQuery por API (Application Programming Interface). Em seguida, geramos a chave, um arquivo JSON (JavaScript Object Notation) com as credenciais de acesso.
A documentação oficial do Streamlit recomenda a permissão de visualizador. Ela permite ler os dados, mas não alterá-los.
Além disso, a chave fica no arquivo de segredos do aplicativo, e esse arquivo não vai para o GitHub. Dessa forma, o código acessa as credenciais pelo recurso de segredos do Streamlit, e a chave não aparece no repositório.
Quais dados da landing page vale extrair?
Os campos que ligam o comportamento do visitante à origem e à mensagem exibida.
Pela API, extraímos cinco informações de cada evento:
- data e hora do evento;
- nome do evento;
- identificador pseudônimo do usuário;
- UTM (Urchin Tracking Module) term, o termo de busca que trouxe o visitante até a página;
- frase personalizada do título da página.
Com esses campos, o painel acompanha a jornada de cada visitante dentro dos eventos. Além disso, cruza essa jornada com a busca de origem e com a frase exibida.
Como transformar eventos em indicadores de funil?
Com o Pandas, biblioteca Python que organiza os eventos e calcula os números de cada etapa.
Depois da coleta, tratamos os dados e os transformamos em informação de uso diário. A aplicação mostra os indicadores das etapas do funil, uma prévia dos dados e a nuvem de palavras da frase personalizada.
Além disso, o time filtra eventos, períodos e termos UTM. Cada filtro recalcula a tela, então a análise acompanha a pergunta de quem usa o painel.
Quais visualizações ajudam a decidir?
Gráficos de linha, nuvem de palavras, tabelas interativas e cartões de KPI (Key Performance Indicator).
O Plotly cria os gráficos interativos, em que o usuário explora os valores direto na tela. Os gráficos de linha mostram o crescimento do tráfego ao longo do tempo. Já a nuvem de palavras destaca os termos mais frequentes na frase personalizada.
Por fim, as tabelas interativas e os cartões de KPI facilitam a leitura rápida dos números. Dessa forma, quem acompanha a landing page encontra a resposta sem abrir o BigQuery.
Veja como o painel se apresenta:



Que cuidados a solução exige?
Três cuidados ajudam: controlar o custo das consultas, usar cache e proteger as credenciais.
A exportação do GA4 é gratuita, mas o uso do BigQuery tem custo. Por isso, vale filtrar as consultas por data, de modo que o painel leia apenas os dias necessários.
Além disso, o cache do Streamlit guarda o resultado de uma consulta por um tempo definido. O exemplo da documentação oficial mantém o resultado por dez minutos, o que evita consultas repetidas.
O Streamlit também recebe versões com frequência. Portanto, registre a versão usada e teste cada atualização em um ambiente separado.
Por fim, revise de tempos em tempos quem tem acesso à conta de serviço e à chave.
Perguntas frequentes
O que é o Streamlit?
É uma ferramenta que cria aplicações web interativas com Python. No nosso caso, ela leu os dados do BigQuery e os exibiu em gráficos e filtros.
Quem usa o painel precisa saber programar?
Não. Quem usa o painel filtra os dados e lê os gráficos na tela. A criação do painel, porém, exige conhecimento de Python.
Por que usar o BigQuery com o GA4?
Porque a exportação guarda o detalhe de cada evento. Assim, é possível fazer análises que os relatórios agregados do GA4 não mostram.
A conta de serviço precisa de permissão para alterar dados?
Não. A documentação oficial do Streamlit indica a permissão de visualizador, que apenas lê os dados.
Com que frequência os dados são atualizados?
Depende da exportação do GA4. Ela cria uma tabela por dia e, se o envio contínuo estiver ativo, uma tabela intradiária atualizada ao longo do dia.