Analytics
Quem chega ao seu site, e um alerta quando param de chegar. Isso pertence a um produto de monitoramento, e não a um produto ao lado dele, porque “no ar, saudável e ninguém chegando” é uma indisponibilidade real que toda verificação que fazemos pela rede relata como normal.
A tag
Adicione um site no painel e coloque a tag dele em todas as páginas, antes do fechamento do body:
<script defer src="https://vitrinaengine.com/insight.js" data-site="..."></script>É só isso. Os números aparecem em um minuto após a primeira visita.
Sem banner, e por que dá para confiar nisso
Nada é armazenado no dispositivo do visitante nem lido dele. Sem cookies, sem armazenamento local, sem impressão digital. As regras de consentimento tratam justamente de armazenar algo no equipamento de alguém ou de ler algo dele, e aqui não acontece nem uma coisa nem outra — portanto não há nada para pedir permissão.
Um visitante é reconhecido durante o dia por um hash curto do endereço dele, do seu site e de um segredo que geramos diariamente e destruímos após dois dias. Enquanto esse segredo existe, alguém com acesso ao banco de dados poderia recalcular o hash de um endereço que já tivesse; depois que ele some, ninguém pode — nem nós. Essa é a diferença entre anônimo e meramente pseudônimo, e é nisso que consiste todo o projeto.
O que isso custa a você
Uma contagem de visitantes não pode ser desduplicada entre dias. Uma semana é a soma de sete dias de visitantes únicos, então quem visitou na segunda e na quinta é contado duas vezes. Isso é dito ao lado do número no painel, e não escondido em uma nota de rodapé, porque é uma consequência direta de destruir o segredo e não um erro de arredondamento.
O que é coletado
O caminho da página, o host de origem, um navegador, sistema operacional e tipo de dispositivo aproximados, e um país vindo da borda da rede. A lista é fechada — não há tags livres, porque é assim que uma tabela de analytics acaba com uma coluna de endereços de e-mail que ninguém consegue defender.
A query string é descartada antes do armazenamento, com exceção de utm_* e ref, que são extraídos pelo nome porque são os únicos que alguém pretendia publicar. É na query string que moram, em um site real, um token de redefinição de senha e um parâmetro ?email=.
Eventos personalizados
Conte algo específico — uma criação de conta, uma compra — com uma chamada:
window.vitrina('signup');Um nome e nada mais. Deliberadamente não existe argumento de payload: um payload é como uma ferramenta de analytics acaba guardando um endereço de e-mail que ninguém quis enviar. Os eventos são contados separadamente das visualizações de página, de modo que medir conversões não infla o seu próprio número de tráfego.
O alerta de tráfego
Ative-o para um site e avisamos você quando as chegadas caírem o suficiente abaixo do normal para significar que algo está errado — um deploy quebrado, uma mudança de DNS, uma página de pagamento que parou de carregar.
Normal é a mediana da mesma hora no mesmo dia da semana ao longo de quatro semanas, porque o tráfego é periódico em duas dimensões ao mesmo tempo e uma média simples chamaria você todo sábado à noite. Há também um piso, para que um site tranquilo não alerte sobre uma porcentagem de quase nada, e um alerta aberto por site, para que um site apagado durante a noite não chame ninguém noventa e seis vezes.
Compartilhar um painel
O painel de um site pode ser publicado em um link, para um cliente ou como uma página pública de “métricas abertas”. O link é um token derivado, e não o identificador do site — esse identificador está no código-fonte de toda página que ele mede, então usá-lo significaria que qualquer um que visse o fonte poderia ler o seu tráfego.
O compartilhamento é verificado de novo a cada leitura, então desativá-lo já vale na requisição seguinte.
Se um bloqueador de conteúdo impedir
Sirva o script e o endpoint a partir do seu próprio domínio. O script descobre para onde enviar a partir de onde foi carregado, então um proxy reverso simples não precisa de configuração. O script é servido sem minificação e nada está disfarçado.