- Este blog recomenda que visitantes instalem um bloqueador de anúncios confiável, como o uBlock Origin, quando nenhum bloqueador de anúncios é detectado
- Essa mensagem de recomendação foi projetada para não atrapalhar a experiência do usuário e, depois de fechada uma vez, não aparece novamente
- A implementação usa o script
nativeads.js e uma <div> cheia de nomes de classes relacionados a anúncios, de modo que se o bloqueador de anúncios bloquear o elemento ou a requisição de rede, a mensagem deixe de ser exibida
- A mensagem é lembrada por cookie após ser fechada uma vez, aparece pequena em um canto da tela via CSS, não cobre o conteúdo e não é exibida em navegadores com JavaScript desativado
- Não há como detectar bloqueio via DNS, então o autor afirma ter implementado isso como uma janela de aviso simples e não intrusiva, fácil de fechar
A necessidade de uma mensagem recomendando bloqueador de anúncios
- Os anúncios na internet desperdiçam o tempo dos usuários, e a indústria da publicidade exerce um impacto negativo sobre o ambiente da internet como um todo
- Como a receita dos sites fica muito baixa, muitos sites acabam se tornando páginas de baixa qualidade cheias de anúncios
- Se você quiser ajudar criadores, apoio direto (mesmo 1 dólar já ajuda) é muito mais eficaz do que assistir a anúncios
Objetivo do design da mensagem recomendando bloqueador de anúncios
- Como a maioria dos usuários encara anúncios como parte da experiência da internet, o autor exibe uma mensagem diretamente no site
- A mensagem "No adblocker detected. Consider using an extension like uBlock Origin to save time and bandwidth. Click here to close." é mostrada em tamanho reduzido no canto inferior direito da página
- Ela não cobre o conteúdo, e depois de fechada não é mais exibida
- Se a janela for pequena, a mensagem não é exibida
- O motivo de mencionar apenas uma extensão específica (uBlock Origin) é que muitos usuários acabam conhecendo bloqueadores de anúncios por meio de anúncios, além dos riscos e do caráter enganoso de bloqueadores comerciais
- Bloqueadores de anúncios promovidos por anúncios acabam monetizando os próprios usuários
Implementação e detalhes técnicos
- No HTML, existe uma área
div para a mensagem do bloqueador de anúncios, com vários nomes de classes relacionados a anúncios
- A adição da mensagem é responsabilidade de um arquivo JavaScript chamado
/nativeads.js
- Ele garante, com base em cookies, que a mensagem apareça apenas uma vez
- Ao clicar em "Click here to close.", a
div é ocultada e o cookie é atualizado
- O CSS define a posição visual e o estilo da mensagem
- Ela fica fixa no canto inferior direito apenas quando há espaço suficiente na tela
- Se o bloqueador de anúncios bloquear (removendo o elemento ou a requisição) essa
div ou o arquivo nativeads.js, a própria mensagem deixa de ser renderizada
- Os vários nomes de classes relacionados a anúncios induzem a maioria dos bloqueadores a remover a
div
- Em especial, extensões focadas em bloqueio de rede (como adblock lite etc.) também fazem a mensagem desaparecer se bloquearem a requisição de rede do script
- Há uma limitação: não é possível detectar bloqueio de anúncios baseado em DNS
- Em navegadores sem suporte a JavaScript, não há necessidade de bloqueador de anúncios, então a mensagem também não é exibida
- Mesmo sem CSS aplicado, a mensagem continua funcionando em termos funcionais (apenas aparece sem estilo)
3 comentários
Recomendo o navegador Brave
Comentários no Hacker News
ublockorigin.comlinkado no aviso não pertence ao verdadeiro desenvolvedor do uBlock Origin, Raymond Hill. À primeira vista, a intenção parece boa e a UI também é razoável, mas não parece estar sob controle do Hill e pode virar um ponto de risco para ameaças como malware. Os canais oficiais do Hill são https://github.com/gorhill/uBlock. Como referências úteis, há o README.md e a Wikidisplay:noneedisplay:block, eu deixaria o espaço reservado com o mesmo tamanho e exibiria a mensagem correta, ou deixaria inicialmente só um espaço vazio para evitar mensagens erradas em caso de falhadocument.write()e executavam imediatamente, o que deixava tudo lento. Fico curioso se isso ainda acontece hojeNo meu blog também, há algum tempo, aparecia uma mensagem recomendando instalar um bloqueador de anúncios quando era detectado que não havia um, então fico feliz em saber que não era só eu.