William OS

Privacidade e medição

Eu trabalho com mensuração. Seria estranho esconder a minha.

Esta página lista o que este site mede, o que ele envia para fora e o que ele grava no seu navegador. Cada item vem com o arquivo e o trecho exato de código, para você poder conferir em vez de acreditar.

Uso o trecho e não o número da linha de propósito: linha muda quando o código muda, e uma referência errada seria pior do que nenhuma. O trecho você acha com Ctrl+F.

O que o site mede

A página inicial carrega o Google Tag Manager pelo contêiner GTM-P9L4LHVF, declarado no <head> de index.html. Toda a medição própria do sistema passa por uma única função, function trackEvent(eventName), em assets/js/william-os.js, que empurra um objeto para o dataLayer.

São onze eventos. Só onze.

Eventos enviados ao dataLayer
Evento Quando dispara Procure por
abriu_apresentacao Ao abrir a janela Apresentação trackEvent("abriu_apresentacao")
abriu_curriculo Ao abrir a janela Currículo trackEvent("abriu_curriculo")
abriu_portfolio Ao abrir a janela Portfólio trackEvent("abriu_portfolio")
abriu_terminal Ao abrir a janela Terminal trackEvent("abriu_terminal")
abriu_dia_do_gato Ao abrir o Dia Internacional do Gato pela busca da barra de tarefas trackEvent("abriu_dia_do_gato")
abriu_willnamp Ao abrir o tocador WillNamp trackEvent("abriu_willnamp")
abriu_lixeira Ao abrir a janela da Lixeira trackEvent("abriu_lixeira")
abriu_privacidade Ao abrir esta janela trackEvent("abriu_privacidade")
abriu_analytics Ao abrir o Analytics trackEvent("abriu_analytics")
abriu_case_001 Ao abrir o dossiê CASE_001 trackEvent("abriu_case_001")
abriu_arcade Ao abrir o Arcade trackEvent("abriu_arcade")

Todos em assets/js/william-os.js. Os onze disparam uma vez por abertura — reabrir uma janela minimizada não redispara. Sim, ler esta página é medido: seria incoerente esconder justamente esse.

O Analytics faz o caminho inverso: em vez de enviar, ele . Ao abrir, ele busca data/analytics.json neste mesmo domínio — nenhum terceiro, nenhuma chave, nenhuma chamada ao Google a partir do seu navegador. Esse arquivo é publicado uma vez por dia por uma rotina que consulta o Google Analytics pela Data API fora daqui, e contém só agregado: totais por dia, por dispositivo, por origem e por página, com a query string das URLs removida antes da soma. Não há nada individual nele, e você pode abrir o arquivo direto e conferir.

O que o site não mede

Esta parte é tão importante quanto a de cima, e quase nenhum site publica.

Os onze eventos vão para o dataLayer sem nenhum parâmetro além do nome. Não há identificador de visitante próprio, não há dado pessoal e não há conteúdo do que você leu.

Não existe medição de qual slide você alcançou, quanto do Currículo você rolou, se você baixou o PDF, quanto tempo a janela ficou aberta ou se você concluiu a abertura do sistema.

O Tag Manager está instalado apenas na página inicial. Quem chega direto em terminal.html, apps/curriculo/ ou nesta página não é medido de forma nenhuma.

Newsletter: o único dado que você me envia

O ícone Newsletter abre um formulário com um campo de e-mail. Se você preencher e enviar, esse e-mail sai do seu navegador.

O destino é um Google Apps Script meu, que grava em uma planilha do Google Sheets. O corpo do envio tem exatamente dois campos: o e-mail digitado e uma origem fixa, william-os. A chamada vai com credentials: 'omit' e referrerPolicy: 'no-referrer', então não acompanha cookie nem a página de origem.

O endereço completo do endpoint está visível no JavaScript servido em apps/newsletter/assets/, publicamente. O nome do arquivo carrega um código que muda a cada versão, para o seu navegador nunca ficar preso a uma cópia antiga. Não é segredo e não tenho como fingir que é.

WillNamp: sem terceiro nenhum

O aplicativo WillNamp é um tocador com a cara do Winamp. Os arquivos de áudio são servidos pelo próprio site, de assets/audio/. Não há player embutido de Spotify, YouTube, SoundCloud ou de quem quer que seja.

Na prática isso significa que abrir o WillNamp não carrega script de nenhum outro domínio e não deixa ninguém de fora saber que você abriu, além do que o próprio servidor deste site já registra ao entregar qualquer arquivo.

Eu cheguei aqui depois de testar três serviços e descartar os três: o Spotify entregava trinta segundos para quem não está logado e não deixava controlar volume; o YouTube recusou as faixas com erro 150, porque a gravadora não permite reprodução fora de lá; o SoundCloud funcionava, mas injeta anúncio por cima do próprio player. Nenhum deles permitia esconder o player de terceiro, e com razão — quem embute um player aceita as regras de quem o fez.

Eu não guardo o que você ouviu, não gravo histórico de reprodução e não mando essa informação para lugar nenhum.

O contador do Dia Internacional do Gato

Dentro do Dia Internacional do Gato existe um contador de visitas em odômetro verde, no estilo de 1999. Ele é real: o número que aparece ali é a contagem de verdade, não um enfeite sorteado.

Isso significa uma requisição saindo do seu navegador — a segunda coisa que sai daqui, depois da Newsletter. Ela acontece só quando você abre esse aplicativo, nunca no carregamento do site, e vai para um Google Apps Script meu, o mesmo tipo de endpoint que a Newsletter usa.

A requisição não leva nada sobre você. É um GET sem corpo, sem identificador, sem cookie e sem página de origem — credentials: 'omit' e referrerPolicy: 'no-referrer'. O que o script guarda é um número inteiro, e nada além dele. Não existe registro de quem, de quando ou de onde.

O que eu não posso esconder: como em qualquer requisição para qualquer servidor, o Google enxerga o seu IP no instante em que ela chega. Eu não vejo isso e não guardo isso, mas ela passa por lá.

A contagem sobe uma vez por sessão do navegador. Abrir e fechar a janela do gato várias vezes não conta de novo — é para isso que existe a chave william-os.catday-contado.v1 na tabela abaixo. Fechar a aba apaga essa marca, e uma visita nova conta outra vez.

Se a requisição falhar, o odômetro mostra traços e assume que quebrou. Ele nunca inventa um número.

O endereço do endpoint está visível em apps/gato/index.html, servido publicamente, como o da Newsletter. E, como qualquer contador público da internet, ele pode ser inflado por quem tiver vontade de ficar chamando o endereço. Trate o número como enfeite honesto, não como métrica.

O que fica gravado no seu navegador

O sistema guarda estado para parecer um computador de verdade: janela onde você deixou, ícone onde você arrastou. Nada disso sai do seu navegador nem é enviado para mim.

Chaves gravadas pelo William OS
Chave Guarda Dura
william-os.window-state.v1 Posição e tamanho de cada janela Permanente
william-os.desktop-icon-layout.v1 Onde cada ícone foi solto na área de trabalho Permanente
william-os.desktop-pet-position.v1 Onde a Panqueca ficou Permanente
william-os.panqueca-memory.v1 O que a Panqueca lembra de você: o nome, se você disser um, quantas visitas você fez, a data da última, quantas vezes interagiu e o quanto ela confia e gosta de você Permanente
william-os.boot-completed.v1 Que você já assistiu à abertura uma vez Permanente
william-os.recycle-bin.v1 Atalhos que você jogou na Lixeira, e a Panqueca quando você tenta jogar ela também Só esta sessão
william-os.newsletter-completed.v1 Que a Newsletter já foi enviada nesta sessão Só esta sessão
william-os.catday-contado.v1 Que esta sessão já foi somada ao contador do Dia Internacional do Gato Só esta sessão

As cinco primeiras usam localStorage e sobrevivem a fechar o navegador. As três últimas usam sessionStorage e somem quando você fecha a aba.

Uma delas pode conter dado pessoal, e eu prefiro dizer isso com todas as letras. A Panqueca conversa, e se você escrever "meu nome é Fulano" na caixa dela, esse primeiro nome fica gravado em william-os.panqueca-memory.v1 para ela te reconhecer numa próxima visita. É o único campo do site que guarda algo que veio de você. Ele nunca sai do seu navegador: não vai para servidor nenhum, não entra em evento de analytics e eu não tenho como ler. Se você não contar seu nome, o campo fica vazio. As demais chaves continuam sendo coordenadas, identificadores e sinalizadores.

Existem ainda chaves que só nascem se você abrir um dos painéis internos de calibração que eu uso para acertar tempo e layout: william-os.boot-timings.v1, layout-panel-slide-02, layout-panel-slide-03 e layout-panel-slide-05. Elas guardam números de animação e posição, não guardam nada sobre você, e um visitante normal nunca as cria. Listo mesmo assim, porque a tabela acima seria incompleta sem elas.

Para apagar todas: abra o console do navegador nesta origem e rode localStorage.clear() e sessionStorage.clear(). Você volta a ser um visitante novo, inclusive na abertura do sistema.

Só a memória da Panqueca: localStorage.removeItem('william-os.panqueca-memory.v1'). Ela esquece seu nome e você vira um estranho de novo.

Sem console também dá: Reiniciar, no menu Iniciar, apaga o layout dos ícones e a Lixeira. As demais chaves permanecem, inclusive o que a Panqueca lembra.

O que eu não consigo afirmar daqui

A configuração interna do contêiner do Google Tag Manager não faz parte deste repositório. Ela vive na conta do GTM, e eu posso mudá-la sem alterar uma linha de código deste site.

Por isso esta página não afirma quais tags, fornecedores, cookies ou destinos estão ativos na versão publicada. O que está aqui é o que o código versionado faz — nada além disso.

Se você quiser conferir o que realmente sai, o caminho é o mesmo que eu usaria: abrir o DevTools na aba Network e olhar as requisições. Eu recomendo.

Controle do visitante

Você pode bloquear scripts e armazenamento de terceiros pelas configurações do navegador ou por extensão de privacidade. O William OS continua funcionando sem eles: a medição não é requisito para nada na interface.

O sistema ainda não tem um painel próprio de preferências de medição. Enquanto não tiver, esta página é o que eu tenho para oferecer no lugar.

Contato

Dúvidas sobre privacidade ou medição, ou correções nesta página:

fotografiaferreira@gmail.com

Atualizado em 7 de agosto de 2026.