Profundidade de rolagem
O Zenovay registra até onde cada visitante rola em cada pageview. Três superfícies do dashboard transformam esse sinal em algo acionável:
- Aba Páginas — Funil de profundidade: para cada página, um pequeno gráfico de 5 barras em «escada descendente» cujas alturas representam a % de visitantes que atingiram 25 / 50 / 75 / 90 / 100% da página.
- Visualização Heatmaps — Modo Scroll com sobreposição em gradiente sobre o screenshot.
- Detalhe de sessão — Profundidade máxima exibida ao lado da duração e páginas vistas.
O que é registrado
Em cada pageview o tracker mede (scrollTop + viewportHeight) / documentHeight × 100 continuamente. O valor mais profundo da sessão é gravado na linha do visitante (visitors.scroll_depth_percentage, inteiro 0-100). A altura total da página é recalculada em cada scroll event, então conteúdo dinâmico (rolagem infinita, acordeões, lazy loading) é tratado naturalmente.
Separadamente, o tracker emite eventos de marco de disparo único nos cinco limiares do plano:
| Marco | Disparo | Armazenamento |
|---|---|---|
| 25% | Primeira vez que scroll_percent >= 25 | event_type='scroll_milestone', event_data.depth=25 |
| 50% | Primeira vez que scroll_percent >= 50 | … depth=50 |
| 75% | Primeira vez que scroll_percent >= 75 | … depth=75 |
| 90% | Primeira vez que scroll_percent >= 90 | … depth=90 |
| 100% | Primeira vez que scroll_percent >= 100 | … depth=100 |
Uma vez disparado um marco em uma sessão, ele não dispara de novo — subir e descer não duplica. Em mudanças de rota SPA (pushState / replaceState / popstate) o conjunto de marcos é resetado.
A profundidade de rolagem faz parte da feature heatmaps, disponível a partir do plano Pro. Sites do plano gratuito não registram scroll events.
Funil na aba Páginas
Abra um dashboard de domínio → aba Páginas. Abaixo dos cards Páginas / Localização / Sistema, o widget em largura total Funil de profundidade de rolagem mostra suas 10 principais páginas. Cada linha é uma página com um mini gráfico de 5 barras no centro. As barras compartilham uma linha de base e usam uma única cor de destaque — as alturas codificam o alcance de cada marco:
- 25% — altura ∝ % de pageviews que atingiram pelo menos um quarto
- 50% — metade
- 75% — três quartos
- 90% — quase o fim
- 100% — o final absoluto (veja Tolerância prática de 100% abaixo)
Como a profundidade de rolagem é monotônica (a % que atingiu 50% é sempre ≤ a % que atingiu 25%), as barras descem naturalmente da esquerda para a direita. A forma em si — uma escada descendente — é o sinal visual: escadas longas indicam leitura profunda, curtas indicam abandono perto do topo.
Os percentuais são calculados sobre visitors.scroll_depth_percentage para aquela página no período selecionado. Os % exatos por marco estão sempre visíveis sob as barras — sem necessidade de passar o mouse. Páginas com menos de 10 pageviews (ou sem engajamento de rolagem relevante) são marcadas como low signal e atenuadas para não dominar a visão.
Desambiguação de subdomínios
Se o seu código de rastreamento é usado em vários subdomínios (por exemplo, zenovay.com e docs.zenovay.com apontam para o mesmo tracker), cada combinação subdomínio × caminho ganha sua própria linha. O hostname aparece como prefixo atenuado antes do caminho em negrito — assim você distingue zenovay.com/en/ de docs.zenovay.com/en/ num relance.
A visualização padrão mostra as 5 páginas principais; um botão «Show all» revela o restante em uma área de rolagem de altura fixa, mantendo a altura do card alinhada com seus vizinhos.
Tolerância prática de 100%
O tracker calcula a porcentagem de rolagem como (scrollTop + viewportHeight) / documentHeight × 100. No fundo visual, a renderização subpixel e o redimensionamento da barra de endereço móvel fazem com que a matemática frequentemente termine em 99,7-99,9% em vez de exatamente 100. Por isso, o tracker encaixa em 100 quando o fundo do viewport está a menos de 2 px do fim do documento, e os dashboards do Zenovay contam scroll_depth_percentage ≥ 95 como «atingiu 100%». Dados históricos capturados antes deste ajuste se beneficiam retroativamente da mesma tolerância — a coluna «100% atingido» mostra engajamento real em vez de zeros estruturais.
Como ler
| Padrão | Causa provável | Ação |
|---|---|---|
| 80% / 45% / 18% / 6% / 0% | Funil saudável; conteúdo longo lido parcialmente | Otimize o conteúdo entre 25-50% — é o que mais gente vê |
| 95% / 90% / 80% / 70% / 50% | Página curta ou leitura alta | Verifique se o CTA no rodapé cai no viewport |
| 30% / 5% / 1% / 0% / 0% | Bounces acima da dobra | Investigue copy above-the-fold, tempo de carga ou layout-shift |
Queda de 19% (75%) para 6% (90%) em página de vendas é o sinal de diagnóstico mais comum — algo no final está perdendo leitores antes do CTA.
Sobreposição de heatmap de scroll
Na visualização Heatmaps o controle segmentado do header alterna entre Clique e Scroll. O modo scroll pinta um gradiente sobre o screenshot. A cor em cada altura codifica o percentual de visitantes que alcançaram aquele ponto.
Como o topo é alcançado por todos, o topo do screenshot é sempre o mais quente. O gradiente esfria conforme o percentual cai. Uma transição abrupta é um "ponto de abandono" e geralmente corresponde a um elemento de design específico.
A heatmap de scroll requer o screenshot da página. Os screenshots são capturados automaticamente no primeiro pageview com heatmap ativa; aguarde alguns minutos após ativar.
Profundidade máxima no detalhe da sessão
Ao abrir uma sessão pelo globo ou pela lista de visitantes, o painel lateral mostra Profundidade máxima: X% ao lado de Páginas vistas e Duração.
12% em uma página longa indica um bounce provável. 100% em uma página longa indica alto engajamento independentemente do tempo — leram tudo.
Privacidade e consentimento
O rastreamento de profundidade vive inteiramente no estado em memória do tracker por carregamento de página. Não há gravação em cookies nem em localStorage, então o recurso não é afetado por banners de consentimento. Em sites que enviam Sec-GPC (Global Privacy Control), o caminho de ingestão de marcos é pulado no servidor — apenas o máximo por visitante é mantido, exatamente os mesmos dados que o Zenovay grava para tráfego sem GPC.