Como automatizar relatórios do Google Analytics com Python

Rocketseat

Rocketseat

5 min de leitura
automatize-relatorios-com-python-ga4
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.
  • 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

  1. Acesse o Google Cloud Console.
  1. No topo, clique em "selecionar um projeto" e depois em "novo projeto". Dê um nome claro (ex: automacao-relatorios-mkt).
  1. Com o projeto selecionado, vá ao menu lateral e clique em "APIs e serviços" > "biblioteca".
  1. Na barra de busca, procure por Google Analytics Data API.
  1. Clique nela e depois no botão azul "ativar".

Gerar credenciais de autenticação

Agora precisamos de uma chave de acesso (credentials).
  1. Volte para "APIs e serviços" > "credenciais".
  1. Clique em "+ criar credenciais" e escolha "conta de serviço" (service account).
  1. Dê um nome para a conta (ex: python-ga4-script) e clique em "criar e continuar". Pode pular as etapas opcionais.
  1. Após criada, clique na conta de serviço recém-criada.
  1. Vá para a aba "chaves" (keys).
  1. Clique em "adicionar chave" > "criar nova chave".
  1. 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.
  1. 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.
  1. Vá para o seu Google Analytics.
  1. Clique em "administrador" (roda dentada no canto inferior esquerdo).
  1. Em "propriedade", clique em "gerenciamento de acesso à propriedade".
  1. Clique no botão azul "+" e em "adicionar usuários".
  1. Cole o e-mail da conta de serviço e selecione a função "leitor" (viewer).
  1. 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.