Como Usar BigQuery Com GA4 para Análise Avançada
Por Emily Redmond, Analista de Dados na Emilytics · Abril de 2026
TL;DR: Exporte GA4 para BigQuery para acesso a dados brutos. Escreva consultas SQL para analisar padrões que a interface GA4 não consegue mostrar. Retenção de dados ilimitada e detalhe de eventos completo.
GA4 é bom para dashboards e relatórios padrão. Mas para análise real — análise de coorte, modelagem estatística, padrões de multi-mês — você precisa do BigQuery.
O que é BigQuery?
BigQuery é o data warehouse do Google. Você armazena grandes quantidades de dados e consulta com SQL.
GA4 exporta seus dados brutos de eventos para BigQuery diariamente. Depois você pode:
- Consultar qualquer dimensão, qualquer métrica, qualquer combinação
- Escrever SQL complexo para análises que GA4 não consegue fazer
- Exportar para ferramentas BI (Looker, Tableau, Data Studio)
- Alimentar data warehouses ou data lakes
- Combinar GA4 com outras fontes de dados (CRM, billing, etc.)
Pré-requisitos
- Projeto Google Cloud (nível gratuito é bom para conjuntos pequenos)
- Propriedade GA4
- Um pouco de conhecimento SQL (ou disposição para aprender)
Configurando Exportação BigQuery
Passo 1: Criar um Projeto Google Cloud (se necessário)
- Vá para console.cloud.google.com
- Crie um novo projeto
- Anote o ID do projeto
Passo 2: Vincular GA4 a BigQuery
- Vá para GA4 → Admin
- Em "Data collection and modification," clique em BigQuery links
- Clique em Link BigQuery project
- Selecione seu projeto
- Escolha quais dados exportar:
- "Google Analytics 4 Events" (eventos brutos, recomendado)
- "Intraday" (tempo real, se precisar)
- Vincular
GA4 começa a exportar. Leva 24-48 horas para backfill, depois exporta diariamente.
Passo 3: Acessar BigQuery
- Vá para console.cloud.google.com
- Selecione seu projeto
- Vá para BigQuery
- Na barra lateral esquerda, você deve ver seu projeto com datasets GA4
Entendendo a Estrutura de Dados GA4 BigQuery
GA4 cria dois datasets:
analytics_[PROPERTY_ID]: Inserção de streaming (tempo real)analytics_[PROPERTY_ID]_intraday: Dados intraday (finalizado diariamente)
Dentro de cada um, tabelas são nomeadas por data: events_20260101, events_20260102, etc.
Cada linha é um evento, com colunas:
event_timestamp: Quando o evento disparouevent_name: Nome do evento (pageview, purchase, etc.)user_id: Se você rastreia User-IDuser_pseudo_id: ID de usuário anônimouser_properties: Propriedades de usuário customizadasevent_params: Parâmetros de evento- E mais...
Sua Primeira Consulta BigQuery
Consulta Simples: Pageviews por Dia
SELECT
DATE(TIMESTAMP_MICROS(event_timestamp)) as date,
COUNT(*) as pageviews
FROM `project.analytics_123456.events_*`
WHERE event_name = 'page_view'
GROUP BY date
ORDER BY date DESC
Substitua project e 123456 pelo seu ID de projeto e ID de propriedade GA4 reais.
Isso extrai:
- Data
- Contagem de pageviews por dia
- Pelos últimos 30 dias (o wildcard
events_*corresponde a todas as tabelas de eventos)
Consulta: Receita por País
SELECT
(SELECT value FROM UNNEST(user_properties) WHERE key = 'country') as country,
ROUND(SUM(CAST((SELECT value FROM UNNEST(event_params) WHERE key = 'value').string_value AS FLOAT64)), 2) as revenue
FROM `project.analytics_123456.events_*`
WHERE event_name = 'purchase'
GROUP BY country
ORDER BY revenue DESC
Isso é mais complexo porque os dados GA4 são aninhados. Propriedades são arrays, então você precisa desninhá-los.
Análises Comuns GA4 BigQuery
Coortes de Usuários
"Usuários que se inscreveram em janeiro — quantos ainda estão ativos 30 dias depois?"
WITH signup_cohort AS (
SELECT
DATE(TIMESTAMP_MICROS(event_timestamp)) as signup_date,
user_id,
MIN(DATE(TIMESTAMP_MICROS(event_timestamp))) as first_day
FROM `project.analytics_123456.events_*`
WHERE event_name = 'sign_up'
GROUP BY signup_date, user_id
)
SELECT
signup_date,
COUNT(DISTINCT user_id) as signups_that_day,
COUNT(DISTINCT CASE WHEN TIMESTAMP_ADD(TIMESTAMP_MILLIS(first_day), INTERVAL 30 DAY) <= CURRENT_TIMESTAMP THEN user_id END) as still_active_30_days
FROM signup_cohort
WHERE signup_date = '2026-01-01'
GROUP BY signup_date
Análise de Funil
"Dos usuários que visualizaram produto, quantos adicionaram ao carrinho? Desses, quantos compraram?"
WITH product_viewers AS (
SELECT DISTINCT user_id
FROM `project.analytics_123456.events_*`
WHERE event_name = 'view_item'
),
cart_adders AS (
SELECT DISTINCT user_id
FROM `project.analytics_123456.events_*`
WHERE event_name = 'add_to_cart'
),
purchasers AS (
SELECT DISTINCT user_id
FROM `project.analytics_123456.events_*`
WHERE event_name = 'purchase'
)
SELECT
COUNT(DISTINCT pv.user_id) as viewed_product,
COUNT(DISTINCT ca.user_id) as added_to_cart,
COUNT(DISTINCT p.user_id) as purchased,
ROUND(100 * COUNT(DISTINCT ca.user_id) / COUNT(DISTINCT pv.user_id), 2) as product_to_cart_rate,
ROUND(100 * COUNT(DISTINCT p.user_id) / COUNT(DISTINCT ca.user_id), 2) as cart_to_purchase_rate
FROM product_viewers pv
LEFT JOIN cart_adders ca ON pv.user_id = ca.user_id
LEFT JOIN purchasers p ON ca.user_id = p.user_id
Lifetime Value do Cliente (CLV)
"Qual é a receita total por usuário?"
SELECT
user_id,
COUNT(DISTINCT CASE WHEN event_name = 'purchase' THEN event_timestamp END) as purchase_count,
ROUND(SUM(CAST((SELECT value FROM UNNEST(event_params) WHERE key = 'value').string_value AS FLOAT64)), 2) as total_revenue,
ROUND(AVG(CAST((SELECT value FROM UNNEST(event_params) WHERE key = 'value').string_value AS FLOAT64)), 2) as avg_order_value
FROM `project.analytics_123456.events_*`
WHERE event_name = 'purchase'
GROUP BY user_id
ORDER BY total_revenue DESC
Dicas para Escrever Consultas GA4 BigQuery
-
Use wildcard
events_*: Isso corresponde a todas as tabelas de eventos. Sem ele, você só consulta um dia. -
TIMESTAMP_MICROS: GA4 armazena timestamps em microsegundos. Converta com
TIMESTAMP_MICROS(event_timestamp). -
Unnesting: Propriedades e parâmetros são arrays aninhados. Use
UNNEST()eWHERE key = 'property_name'para extrair. -
Limite antes de consultar: Comece com
LIMIT 100para testar consultas antes de executar em milhões de linhas. -
Verifique custos: Consultas grandes varrem muitos dados (em ~$6,25/TB). Use comentários
--para estimar custos.
Conectando BigQuery a Ferramentas BI
Uma vez que você tem consultas no BigQuery, visualize:
Google Data Studio
- Crie um relatório em datastudio.google.com
- Selecione "BigQuery" como fonte de dados
- Escolha seu projeto e consulta
- Projete visualizações
- Compartilhe com a equipe
Looker Studio (Premium)
Igual a Data Studio mas mais avançado.
Tableau
- Conecte ao BigQuery (Tableau tem um conector nativo)
- Escreva suas consultas ou selecione tabelas
- Construa dashboards
Custos
- Nível gratuito: 1TB de dados consultados por mês é gratuito
- Pay-as-you-go: $6,25 por TB consultado depois disso
A maioria das pequenas empresas fica abaixo de 1TB/mês e não paga nada.
Perguntas Frequentes
P: Quanto tempo até dados aparecerem no BigQuery depois de configurar exportação? R: 24-48 horas para backfill. Depois disso, dados são exportados diariamente (geralmente no início da manhã Hora do Pacífico).
P: Posso consultar dados em tempo real? R: Sim, use o dataset intraday. Mas é limitado às últimas poucas horas.
P: Preciso saber SQL para usar BigQuery com GA4? R: Para consultas básicas, não — use templates pré-construídos ou Data Studio. Para análise customizada, sim.
P: Posso combinar dados GA4 com outras fontes de dados no BigQuery? R: Sim. Você pode ter eventos GA4 e uma tabela separada de dados CRM de cliente, depois juntá-los.
P: Quanto tempo dados são retidos no BigQuery? R: Ilimitado (você define políticas de retenção). É por isso que BigQuery é melhor que GA4 para análise de longo prazo.
O Resumo
BigQuery é onde dados GA4 ganham vida. Se você precisa:
- Retenção de dados ilimitada
- Análise complexa de multi-mês
- Controle sobre o que você mede
- Integração com outros dados
Configure exportação BigQuery. É gratuito de configurar e quase gratuito de executar.
Comece simples (uma consulta), aprenda SQL gradualmente e construa a partir daí.
Emily Redmond é uma analista de dados na Emilytics — o agente de análise de IA que observa seus dados de GA4, Search Console e Bing 24 horas por dia para você nunca perder o que importa. 8 anos de experiência ajudando fundadores e equipes de crescimento transformar ruído de dados em decisões claras. Diga olá →