Medindo Core Web Vitals no GA4 e BigQuery com a Biblioteca Web-Vitals.js

⚡ Resposta Direta (AEO / Zero-Click Answer):

A mensuração de Core Web Vitals no GA4 e BigQuery utilizando a biblioteca web-vitals.js é a implementação de Real User Monitoring (RUM) de alta fidelidade que substitui testes laboratoriais sintéticos (Lighthouse) por métricas empíricas capturadas diretamente nos navegadores dos usuários reais. Através da biblioteca JavaScript oficial do Google (web-vitals.js) disparada no GTM, eventos customizados transmitem as métricas fundamentais — LCP (Largest Contentful Paint), INP (Interaction to Next Paint) e CLS (Cumulative Layout Shift) — com seus respectivos elementos causadores e tempos em milissegundos para o BigQuery, permitindo correlacionar lentidão a perdas financeiras na taxa de conversão.

  • Monitoramento de RUM (Real User Monitoring) de 100% do tráfego sob condições reais de rede.
  • Captura das 3 métricas vitais: LCP (< 2.5s), INP (< 200ms) e CLS (< 0.1).
  • Identificação do seletor exato do elemento causador da degradação de performance.
  • Cálculo de regressão no BigQuery: o impacto financeiro de cada 100ms a mais de atraso no faturamento.

⚠️ O Custo Real da Inação Operacional:

Confiar exclusivamente na nota do Lighthouse em conexões locais rápidas mascara o sofrimento dos usuários móveis em redes 4G instáveis. Sem telemetria RUM, o time de engenharia desconhece que um elemento de banner está disparando CLS no checkout, derrubando a conversão silenciosamente.

Navegação Estratégica do Artigo

1. O Fim dos Testes Sintéticos: A Necessidade do RUM

A maioria das equipes de tecnologia e marketing ainda comete o erro clássico de avaliar a velocidade do site rodando auditorias isoladas no PageSpeed Insights ou Lighthouse em computadores de escritório com conexões de fibra ótica de 500 Mbps.

Esses testes sintéticos de laboratório são úteis para depuração imediata, mas não refletem a dura realidade dos consumidores: clientes comprando através de smartphones intermediários, navegando em redes 4G instáveis no transporte público ou com dezenas de abas abertas competindo pela memória RAM do dispositivo.

O Google utiliza os dados de usuários reais coletados no Chrome User Experience Report (CrUX) para compor seus fatores de ranqueamento de SEO e custos de leilão no Google Ads. Implementar o Real User Monitoring (RUM) via web-vitals.js e GA4 permite que sua equipe veja exatamente os mesmos números antes de sofrer penalizações na busca orgânica.

2. As Três Métricas Canônicas: LCP, INP e CLS

As três métricas fundamentais que definem a experiência técnica da página são:

  • Largest Contentful Paint (LCP): Mede a velocidade de carregamento percebida pelo usuário. Registra o tempo decorrido até que o maior elemento visual visível na tela (geralmente a imagem hero do produto ou título H1 principal) seja totalmente renderizado. Meta: <= 2,5 segundos.
  • Interaction to Next Paint (INP): Mede a responsividade da interface. Avalia a latência de resposta a cliques, toques e teclas ao longo de toda a sessão do usuário. Meta: <= 200 milissegundos.
  • Cumulative Layout Shift (CLS): Mede a estabilidade visual da página. Quantifica a pontuação acumulada de saltos inesperados de layout causados por imagens sem dimensões declaradas ou anúncios dinâmicos que empurram o conteúdo enquanto a página carrega. Meta: <= 0,1.

3. A Biblioteca Oficial web-vitals.js do Google

Desenvolvida pela equipe do Chrome do Google, a biblioteca de código aberto web-vitals.js padroniza o uso das APIs modernas de PerformanceObserver do navegador.

Ela abstrai todas as peculiaridades e diferenças de suporte entre versões do Chrome, Edge, Opera e navegadores baseados em Chromium, retornando objetos simples contendo o valor numérico exato da métrica, o delta de atualização, a classificação de qualidade e o seletor CSS do elemento que disparou a medição.

4. Infográfico Vetorial: Pipeline da Captura no Navegador ao BigQuery

TELEMETRIA RUM: DA MEDIÇÃO NO CHROME À ANÁLISE NO BIGQUERY

1. NAVEGADOR web-vitals.js LCP, INP, CLS PerformanceObserver 2. DATA LAYER event: "core_web_vitals" metric_name: "LCP" metric_value: 1840 3. GOOGLE ANALYTICS 4 Tag GA4 Evento Dimensões Customizadas Exportação BigQuery 4. BIGQUERY Percentil 75 Zero Amostra

5. Implementação Técnica no Google Tag Manager

Crie uma Tag do tipo HTML Personalizado no GTM acionada em Consent Initialization ou All Pages que carrega o script oficial a partir de uma CDN confiável ou de seu próprio servidor:

<script type="module">
  import { onCLS, onINP, onLCP } from 'https://unpkg.com/web-vitals@4?module';

  function sendToGTM(metric) {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: 'core_web_vitals',
      cwv_name: metric.name,
      cwv_value: Math.round(metric.name === 'CLS' ? metric.value * 1000 : metric.value),
      cwv_rating: metric.rating,
      cwv_id: metric.id,
      cwv_element: metric.entries.length ? metric.entries[0].element ? metric.entries[0].element.tagName : 'unknown' : 'none'
    });
  }

  onCLS(sendToGTM);
  onINP(sendToGTM);
  onLCP(sendToGTM);
</script>

6. Consultas SQL no BigQuery: Distribuição do Percentil 75 (p75)

Para calcular o Percentil 75 oficial utilizado pelo Google em suas auditorias:

-- Cálculo do Percentil 75 (p75) de LCP no BigQuery
SELECT
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS lcp_p75_ms,
  COUNT(1) AS total_amostras
FROM (
  SELECT
    (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'cwv_value') AS metric_value
  FROM `projeto.analytics_123456789.events_*`
  WHERE
    event_name = 'core_web_vitals'
    AND (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'cwv_name') = 'LCP'
    AND _TABLE_SUFFIX BETWEEN '20261001' AND '20261014'
);

7. A Matemática da Conversão: Correlacionando Latência e Receita

O maior trunfo de enviar os Core Web Vitals para o BigQuery é poder cruzar o tempo de carregamento da sessão diretamente com a ocorrência do evento de purchase:

Em análises empíricas, sessões onde o LCP fica abaixo de 1,8s apresentam taxa de conversão média de 3,4%. Quando o LCP salta para mais de 4,0s, a taxa de conversão despenca para 1,1%. Esse número fornece à equipe de engenharia o argumento financeiro irrefutável para priorizar sprints de performance e otimização de imagens.

8. Checklist de Governança de Core Web Vitals

Itens de Auditoria Contínua:

  • [ ] Biblioteca web-vitals.js atualizada para a versão mais recente com suporte ao INP.
  • [ ] Valores de CLS multiplicados por 1.000 para trafegar como inteiros no GA4.
  • [ ] Dashboard no Looker Studio com visualização de distribuição p75 por dispositivo (Mobile vs Desktop).
  • [ ] Meta executiva de manter mais de 80% das visitas na zona 'Boa' em todas as páginas do funil.

Perguntas Frequentes sobre medir core web vitals ga4 bigquery

Por que o meu site tem nota 95 no Lighthouse mas o Google Search Console aponta Core Web Vitals ruins?

O Lighthouse roda em condições simuladas de laboratório em uma única máquina. O Google avalia seu ranqueamento com base no CrUX (Chrome User Experience Report), que mede a experiência real de milhares de usuários reais em celulares de entrada e redes móveis lentas. O RUM via web-vitals.js mede exatamente o mesmo dataset do CrUX.

O que substituiu o FID (First Input Delay) nos Core Web Vitals?

O Google substituiu oficialmente o FID pelo INP (Interaction to Next Paint). Enquanto o FID media apenas o atraso do primeiro clique, o INP avalia a latência de TODAS as interações do usuário durante a visita, selecionando a pior resposta como nota da sessão.

Carregar a biblioteca web-vitals.js não vai deixar meu site mais lento?

Não. A biblioteca web-vitals.js compactada tem menos de 2 KB e utiliza as APIs nativas do navegador (PerformanceObserver) de forma totalmente assíncrona, consumindo quase zero tempo de CPU.

Como o Google define se uma página é 'Boa', 'Precisa Melhorar' ou 'Ruim'?

A avaliação é baseada no Percentil 75 (p75): pelo menos 75% das visitas devem atingir a faixa 'Boa' (LCP <= 2.5s, INP <= 200ms e CLS <= 0.1) para que a página seja aprovada nos algoritmos de ranqueamento do Google.

Wagner Hörlle

Sobre Wagner Hörlle

Consultor sênior de CRO, Engenharia MarTech e Digital Analytics com mais de uma década de vivência em e-commerces de alto volume e operações D2C no Brasil. Especialista em testes A/B com rigor estatístico, arquitetura de checkout, otimização de conversão e estratégias de retenção orientadas à margem de contribuição (CM3). Atendimento 100% direto, sem intermediários.

Agendar Diagnóstico WhatsApp Direto
Diagnóstico Direto Fale com o Wagner
WhatsApp ↗