Como automatizar relatórios do Google Analytics com Python

Rocketseat

Navegação Rápida:
Por que automatizar relatórios de marketing vale a pena?
1O que você precisa para começar
2Passo 1 - configurar o Google Cloud Console
3Passo 2 - Instalar bibliotecas Python necessárias
4Passo 3 - Conectar seu script com a API do GA4
5Passo 4 - Extrair seus primeiros dados do Analytics
6Passo 5 - Transformar dados em tabelas com Pandas
7Passo 6 - Exportar para Excel e CSV
8Casos de uso práticos para aplicar agora
9Erros comuns e como resolver rapidamente
10Deu o play no foguete? Hora de decolar de vez!
11
Faaala devs, marqueteiros ou entusiastas de automação! 🚀
Você já se pegou copiando e colando dados do Google Analytics para o Excel pela milésima vez essa semana? Gastando 3, 4, às vezes 5 horas toda segunda-feira para montar o mesmo relatório que envia para o seu chefe ou cliente?
Besteira! Com Python e a API do Google Analytics (
GA4
), você automatiza isso em 15 minutos. E o melhor: o código roda sozinho sempre que você precisar.Hoje você vai criar seu primeiro relatório automatizado do GA4 usando Python. Sem enrolação, código que funciona, paulatinamente. Se você quer economizar horas mensais e se destacar no mercado, se ajusta na cadeira, aperte o cinto e bora para mais uma missão! 🚀
Por que automatizar relatórios de marketing vale a pena?
Pensa aí: quantas horas por mês você gasta com relatórios manuais?
Profissionais de marketing estão buscando soluções para lidar com a nova interface e a complexidade dos dados. Ao mesmo tempo, Python se consolidou como a linguagem número 1 do planeta, sendo cada vez mais adotada no marketing digital.
Automatizar não é mais um luxo, é uma necessidade. O ROI é claro: tempo é dinheiro. Veja o que você ganha ao automatizar seus relatórios:
- ✅ Economize muitas horas mensais: tempo que volta para análise estratégica e criatividade.
- ✅ Elimine erros humanos: o famoso "copia e cola" manual é onde os erros acontecem. Scripts não erram.
- ✅ Dados sempre atualizados: precisa dos números de ontem? Rode o script e tenha o relatório em segundos.
- ✅ Escale sem esforço: o mesmo script pode ser adaptado para múltiplos clientes ou projetos.
O que você precisa para começar
Antes de colocar a mão na massa, vamos organizar nossa estação de lançamento.
Conhecimentos básicos
Você precisa ser expert em programação? Que nada!
- Python: se você nunca usou, tudo bem. Vamos te guiar.
- GA4: familiaridade com a interface e conceitos como métricas e dimensões.
- APIs: APIs são como garçons digitais. Você faz um pedido (request) e elas trazem os dados do "restaurante" (Google Analytics).
Relaxa, se você sabe abrir o terminal e rodar um comando, já está ótimo.
Ferramentas e contas necessárias
- Python 3.7 ou superior instalado na sua máquina.
- Um editor de código (sugerimos o Visual Studio Code).
- Acesso a uma propriedade do Google Analytics 4 (GA4).
- Uma conta no Google Cloud Console (é gratuito para começar).
Passo 1 - configurar o Google Cloud Console
Este é o passo mais "chatinho", mas tem que ser feito. É aqui que pedimos permissão ao Google para acessar os dados via código. Vamos configurar o centro de comando.
📍 Você está aqui: passo 1 de 6
Criar projeto e ativar a API
- Acesse o Google Cloud Console.
- No topo, clique em "selecionar um projeto" e depois em "novo projeto". Dê um nome claro (ex:
automacao-relatorios-mkt
).
- Com o projeto selecionado, vá ao menu lateral e clique em "APIs e serviços" > "biblioteca".
- Na barra de busca, procure por
Google Analytics Data API
.
- Clique nela e depois no botão azul "ativar".
Gerar credenciais de autenticação
Agora precisamos de uma chave de acesso (credentials).
- Volte para "APIs e serviços" > "credenciais".
- Clique em "+ criar credenciais" e escolha "conta de serviço" (service account).
- Dê um nome para a conta (ex:
python-ga4-script
) e clique em "criar e continuar". Pode pular as etapas opcionais.
- Após criada, clique na conta de serviço recém-criada.
- Vá para a aba "chaves" (keys).
- Clique em "adicionar chave" > "criar nova chave".
- Selecione o tipo JSON e clique em "criar".
Um arquivo JSON será baixado automaticamente. Guarde esse arquivo com segurança! Ele é a chave do seu cofre de dados. Nunca compartilhe publicamente.
A etapa que 90% das pessoas esquecem
A conta de serviço que você criou precisa ter permissão para LER seus dados do GA4.
- Copie o e-mail da conta de serviço (algo como
python-ga4-script@automacao-relatorios-mkt.iam.gserviceaccount.com
). Você encontra esse email na tela de detalhes da conta de serviço no Google Cloud, ou no campo"client_email"
dentro do arquivo JSON que você baixou.
- Vá para o seu Google Analytics.
- Clique em "administrador" (roda dentada no canto inferior esquerdo).
- Em "propriedade", clique em "gerenciamento de acesso à propriedade".
- Clique no botão azul "+" e em "adicionar usuários".
- Cole o e-mail da conta de serviço e selecione a função "leitor" (viewer).
- Clique em "adicionar".
Parabéns! Você acabou de configurar sua primeira API do Google. Primeiro estágio do foguete completo!
Passo 2 - Instalar bibliotecas Python necessárias
Agora que a parte burocrática acabou, bora codar! Abra seu terminal e instale as bibliotecas que vamos usar.
📍 Você está aqui: passo 2 de 6
pip install google-analytics-data pandas openpyxl
google-analytics-data
: a biblioteca oficial do Google para interagir com a API do GA4.
pandas
: a ferramenta padrão do mercado para manipulação de dados em Python.
openpyxl
: necessário para o pandas exportar arquivos no formato Excel (.xlsx).
Passo 3 - Conectar seu script com a API do GA4
Vamos criar seu primeiro script Python. Crie um arquivo chamado
relatorio.py
.📍 Você está aqui: passo 3 de 6
Lembre-se de colocar o arquivo JSON de credenciais na mesma pasta do seu script. Renomeie o arquivo JSON baixado para
credentials.json
para facilitar, ou indique o caminho correto no código.from google.analytics.data_v1beta import BetaAnalyticsDataClient from google.oauth2 import service_account # --- CONFIGURAÇÕES --- # 1. Seu Property ID do GA4 # ⚠️ SUBSTITUA pelo seu ID (encontrado em Admin > detalhes da propriedade) PROPERTY_ID = "123456789" # 2. Caminho para o arquivo de credenciais CREDENTIALS_FILE = 'credentials.json' # --------------------- # Configurar credenciais e iniciar o cliente da API print("🚀 Conectando à API do Google Analytics...") try: credentials = service_account.Credentials.from_service_account_file( CREDENTIALS_FILE) client = BetaAnalyticsDataClient(credentials=credentials) print("✅ Conectado com sucesso!") except FileNotFoundError: print(f"❌ Erro: Arquivo de credenciais não encontrado em {CREDENTIALS_FILE}") exit() # Encerra o script se não encontrar as credenciais except Exception as e: print(f"❌ Erro ao conectar: {e}") exit()
Rode o script no terminal:
Bash
python relatorio.py
Se você vir a mensagem "✅ Conectado com sucesso!", sua autenticação funcionou!
Se APIs parecem complexas, na Formação Python da Rocketseat você vai aprender a criar e consumir APIs do zero.
Passo 4 - Extrair seus primeiros dados do Analytics
Agora a mágica acontece. Vamos pedir dados reais ao GA4.
📍 Você está aqui: passo 4 de 6
No GA4, os dados são divididos em:
- Dimensions (dimensões): características dos dados (ex: data, cidade, fonte de tráfego).
- Metrics (métricas): números (ex: sessões, usuários, conversões, receita).
Vamos extrair o número de sessões e usuários ativos por data e fonte de tráfego nos últimos 7 dias. Adicione este código ao seu
relatorio.py
:from google.analytics.data_v1beta.types import DateRange, Dimension, Metric, RunReportRequest # Construir a requisição de relatório request = RunReportRequest( property=f"properties/{PROPERTY_ID}", dimensions=[ Dimension(name="date"), Dimension(name="sessionSource") ], metrics=[ Metric(name="sessions"), Metric(name="activeUsers") ], # Definir o período (aceita "7daysAgo", "today", "yesterday", ou datas YYYY-MM-DD) date_ranges=[DateRange(start_date="7daysAgo", end_date="today")], ) # Executar a requisição print("📊 Extraindo dados...") try: response = client.run_report(request) except Exception as e: print(f"❌ Erro ao extrair dados: {e}") # Se der erro (ex: permissão negada), a variável 'response' não será criada. response = None # Exibir os resultados brutos (apenas para conferência inicial) if response: print("\n🔎 Resultados brutos (preview):") # Mostra apenas as primeiras 5 linhas para conferência for i, row in enumerate(response.rows): if i >= 5: break # row.dimension_values[0] = date # row.dimension_values[1] = sessionSource # row.metric_values[0] = sessions print(f"{row.dimension_values[0].value} | " f"{row.dimension_values[1].value} | " f"Sessões: {row.metric_values[0].value}")
Rode novamente:
python relatorio.py
.Olha só! Você acabou de extrair dados reais do GA4 com Python!
Aviso: Nem toda combinação de dimensão e métrica funciona. Use o Dimensions & Metrics Explorer oficial para verificar o que pode ser combinado.
Passo 5 - Transformar dados em tabelas com Pandas
Os dados brutos são ótimos, mas difíceis de analisar. É aqui que o
pandas
entra em cena para transformar esses dados em um dataframe (uma tabela superpoderosa).📍 Você está aqui: passo 5 de 6
Adicione esta função auxiliar ao seu script para converter a resposta da API em um dataframe:
import pandas as pd def ga_to_dataframe(response): """Converte resposta GA4 em dataframe do Pandas.""" # Cabeçalhos das colunas columns = [h.name for h in response.dimension_headers] columns += [h.name for h in response.metric_headers] # Linhas de dados rows = [] for row in response.rows: r = [d.value for d in row.dimension_values] r += [m.value for m in row.metric_values] rows.append(r) return pd.DataFrame(rows, columns=columns) # Converter para dataframe (se a extração foi bem-sucedida) if response: df = ga_to_dataframe(response) print("\n🐼 Dataframe criado:") print(df.head())
Por que dataframe? Porque facilita a manipulação, filtragem, ordenação e, claro, a exportação para formatos que seu chefe ou cliente entendem.
Passo 6 - Exportar para Excel e CSV
O objetivo final é ter um relatório pronto sem abrir o GA4. Vamos salvar os resultados diretamente em arquivos excel e csv.
📍 Você está aqui: passo 6 de 6
Adicione este código final ao seu script:
# Verifica se o dataframe foi criado e não está vazio if 'df' in locals() and not df.empty: print("\n💾 Exportando relatórios...") # Exportar para CSV # encoding='utf-8-sig' garante que acentos funcionem bem no Excel brasileiro # index=False remove a coluna de índice do pandas df.to_csv('relatorio_ga4.csv', index=False, encoding='utf-8-sig') print("✅ Relatório exportado para relatorio_ga4.csv") # Exportar para Excel (xlsx) df.to_excel('relatorio_ga4.xlsx', index=False, sheet_name='Dados GA4') print("✅ Relatório exportado para relatorio_ga4.xlsx") print("\n🚀 Missão cumprida! Automação concluída.") else: print("\n⚠️ Nenhum dado para exportar. Verifique os passos anteriores.")
Rode o script uma última vez. Verifique a pasta do seu projeto: os arquivos
relatorio_ga4.csv
e relatorio_ga4.xlsx
estarão lá, prontinhos!Parabéns! Seu primeiro relatório automatizado está pronto. O que antes tomava horas, agora leva segundos.
Casos de uso práticos para aplicar agora
Agora que você tem o poder, veja o que dá para fazer. Você só precisa mudar as
dimensions
e metrics
na requisição (Passo 4).Relatório semanal de fontes de tráfego
Toda segunda às 9h, você quer saber quais canais geraram mais tráfego, conversões e receita.
dimensions=[ Dimension(name="sessionSource"), Dimension(name="sessionMedium") ] metrics=[ Metric(name="sessions"), Metric(name="conversions"), Metric(name="totalRevenue") ]
Quando usar: análise de ROI de canais de marketing e performance de campanhas.
Performance de landing pages
Quais páginas estão trazendo visitantes, e qual a taxa de rejeição (bounce rate)?
dimensions=[ # landingPagePlusQueryString mostra a URL completa, incluindo parâmetros UTM Dimension(name="landingPagePlusQueryString") ] metrics=[ Metric(name="sessions"), Metric(name="bounceRate"), Metric(name="averageSessionDuration") ]
Quando usar: otimização de conversão (CRO) e análise de conteúdo.
Análise de público por localização
De onde vêm seus usuários mais engajados?
dimensions=[ Dimension(name="country"), Dimension(name="city") ] metrics=[ Metric(name="activeUsers"), Metric(name="eventCount") ]
Quando usar: segmentação geográfica para campanhas de mídia paga.
Qual desses se aplica ao seu trabalho? Adapta o código e começa a economizar tempo agora!
Erros comuns e como resolver rapidamente
Todo lançamento de foguete tem suas turbulências. Isso é normal. Aqui estão os problemas mais comuns e suas soluções.
Erro 1: PERMISSION_DENIED: User does not have sufficient permissions
O que significa: a conta de serviço não tem permissão para acessar sua propriedade GA4.
Solução: volte ao passo 1 e confirme que você adicionou o e-mail da conta de serviço como "leitor" (viewer) nas configurações de administrador do GA4. Às vezes leva alguns minutos para a permissão propagar.
Erro 2: INVALID_ARGUMENT: ...dimension and metric combination is incompatible
O que significa: você tentou combinar dados que o GA4 não permite cruzar em um mesmo relatório.
Solução: verifique a compatibilidade usando o Dimensions & Metrics Explorer.
Erro 3: FileNotFoundError
ou "Arquivo de credenciais não encontrado"
O que significa: o Python não encontrou o arquivo JSON de credenciais no caminho que você indicou.
Solução: confirme que o nome do arquivo está correto na variável
CREDENTIALS_FILE
e que o arquivo credentials.json
está na mesma pasta do seu script relatorio.py
. Se estiver em outra pasta, use o caminho completo.Se os erros persistirem, eu te convido a compartilhar suas dúvidas em nossa comunidade.
Deu o play no foguete? Hora de decolar de vez!
Parabéns! Você acabou de entrar para o time que não perde tempo com tarefas manuais. Seu primeiro script de automação está rodando, extraindo dados e gerando relatórios.
Pensa no poder que você tem agora. O código que você escreveu hoje é o primeiro tijolo de uma habilidade que pode transformar sua carreira.
Sua próxima missão: de automatizador a arquiteto digital
Você acabou de economizar horas com menos de 50 linhas de código. Imagine o que você poderia construir com uma formação prática e guiada.
O script de hoje foi só o começo. Na Formação Python da Rocketseat, você vai muito além:
- Construir suas próprias APIs, em vez de apenas consumir as do Google, para integrar qualquer sistema que você imaginar.
- Salvar dados do GA4 em um banco de dados próprio, criando um ativo histórico para análises preditivas.
- Criar notificações em tempo real para ser avisado via Slack ou Discord quando uma meta de marketing for atingida.
Este é o caminho para se tornar o profissional que não apenas executa, mas que arquiteta as soluções que geram valor real, com o domínio técnico que te coloca entre os mais disputados do mercado.
Milhares de vagas estão abertas agora para quem tem essas habilidades. A sua jornada começou hoje. Não pare no primeiro passo.
Artigos_
Explore conteúdos relacionados
Descubra mais artigos que complementam seu aprendizado e expandem seu conhecimento.