Ir para o conteúdo

Orçamento e desempenho

Os tamanhos dos três bundles do Data Lead, quando cada um carrega e por que o chat não pesa no carregamento da sua página.

Atualizado em

O Data Lead é dividido em três arquivos, com orçamento de tamanho verificado a cada integração de código. Se um deles passar do limite, a build falha — o orçamento não é uma meta, é um teto.

Arquivo O que é Teto (gzip) Quando carrega
ds.js O carregador. A única tag que você cola no site. 2 KB Imediatamente, de forma assíncrona
behavior.js O coletor: navegação, rolagem, saída, gatilhos de abordagem e o ping de instalação 6 KB Em ociosidade, depois do carregamento da página
widget.js O chat em si 40 KB Em ociosidade ou no primeiro gesto do visitante

O orçamento de longo prazo do coletor é maior (12 KB); os 6 KB atuais são o teto real medido hoje.

A ordem de carregamento

  1. O snippet cria o global DataStone e pede ds.js com async. Nada bloqueia a renderização.
  2. Quando a página termina de carregar, o carregador agenda o resto para o navegador ficar ocioso (requestIdleCallback, com prazo máximo de 4 segundos; onde não existe, um temporizador de 1,5 segundo).
  3. O chat também sobe no primeiro gesto do visitante — rolagem, movimento do mouse, toque ou tecla —, o que vier antes. Assim ele já está pronto quando a pessoa decide falar.
  4. O coletor não espera gesto nenhum: ele é a medição da página, e sobe junto da ociosidade.

Consequência prática: quem fecha a aba antes de o navegador ficar ocioso baixa só os 2 KB do carregador. Numa página tranquila, o chat e o coletor descem logo depois do load — mas sempre fora do caminho crítico da sua página.

O desafio anti-bot é carregado sob demanda

O script do desafio invisível (Cloudflare Turnstile) não é baixado no carregamento da página. Ele só é pedido quando o visitante vai enviar a primeira mensagem — e mesmo assim com prazo de 2,5 segundos: estourou, o envio segue sem token.

Isso vale duas coisas ao mesmo tempo: nenhum peso para quem só visitou a página, e nenhum pedido à Cloudflare contando quem passou por ali.

O que o coletor faz na rede

O coletor não manda uma requisição por evento. Ele acumula em memória e envia:

  • a cada 20 eventos ou a cada 5 segundos, o que vier antes;
  • com sendBeacon quando a página está sendo fechada — o único envio que sobrevive ao fechamento da aba;
  • também quando a aba fica escondida (no iOS o evento de fechamento nem sempre dispara).

A fila tem teto de 200 eventos: uma aba aberta o dia inteiro sem conseguir falar com o servidor não cresce sem parar.

Um lote enviado no fechamento da aba (sendBeacon) que não sai volta para a fila. No envio normal o lote é dado por entregue assim que parte: eventos perdidos por rede fora do ar não são reenviados — é o preço de não segurar a fila do visitante.

Impacto no Core Web Vitals

O Data Lead é medido continuamente contra orçamentos de desempenho numa página de teste, com metas de pontuação de performance ≥ 0,95 e tempo total de bloqueio ≤ 50 ms. As decisões de projeto que sustentam isso são as três acima: carregador mínimo, carregamento em ociosidade e nada de fonte ou imagem baixada por padrão.

Para medir no seu site:

  1. Rode o Lighthouse duas vezes, com e sem o snippet, na mesma página e nas mesmas condições de rede.
  2. Compare LCP e TBT. O chat não deve mover o LCP: ele não renderiza nada acima da dobra antes da interação.
  3. Se você usar avatar do agente, ele é a única imagem que o chat baixa — e só depois de o chat montar.

Recomendações

  • Não coloque o snippet no <head> com defer manual nem embrulhado em um gerenciador de tags que espere consentimento para tudo. O carregador em si é o que respeita o modo de consentimento; adiá-lo apenas atrasa o chat.
  • Não injete o snippet a cada rota de uma aplicação de página única. O carregador já acompanha a navegação sozinho.
  • Não hospede cópia própria dos arquivos. Eles são versionados na CDN da Data Stone e atualizados sem que você precise mexer no site.
  • Um snippet por página. Duas cópias não instalam dois chats (os scripts são marcados no DOM), mas costumam vir acompanhadas de outras duplicidades — duas contas, duas chaves.

Veja também

Precisa de ajuda?

Fale com o suporte da Data Stone pelo canal combinado com a sua conta. Anexe o relatório do Lighthouse com e sem o snippet se o assunto for desempenho.