Como posso saber se um cliente web está bloqueando anúncios?
Pergunta
Qual é a melhor maneira de registrar estatísticas sobre o número de visitantes que visitam meu site e que configuraram seus navegadores para bloquear anúncios?
Solução
Como programas como o AdBlock nunca solicitam o anúncio, você teria que consultar os logs do servidor para ver se o mesmo usuário acessou uma página da web, mas não acessou um anúncio.Isso pressupõe que o anúncio esteja no mesmo servidor.
Se seus anúncios estiverem em um servidor separado, sugiro que seja impossível fazê-lo.
A melhor maneira de impedir que os usuários bloqueiem anúncios é ter anúncios de texto embutidos que são gerados pelo servidor e distribuídos dentro do seu html.
Outras dicas
Adicione o ID do usuário à solicitação do anúncio:
<img src="./ads/viagra.jpg?{user.id}"/>
dessa forma, você pode verificar quais anúncios são vistos por quais usuários.
Você precisa pensar nas diferentes maneiras pelas quais os anúncios são bloqueados.A primeira coisa a verificar é se eles estão executando noscript, então você pode adicionar um script que verifique isso.
A próxima coisa é ver se eles estão bloqueando o flash, um pequeno filme deve fazer isso.
Se você olhar o site adblock, há alguma indicação de como ele bloqueia:
Como funciona a ocultação de elementos?
Se você olhar mais abaixo nessa página, verá que a análise convencional do Chrome não funcionará, então você precisa tentar analisar o DOM alterado.
Fórum AdBlock diz isso é usado para detectar AdBlock.Depois de alguns ajustes, você poderá usar isso para coletar algumas estatísticas.
setTimeout("detect_abp()", 10000);
var isFF = (navigator.userAgent.indexOf("Firefox") > -1) ? true : false,
hasABP = false;
function detect_abp() {
if(isFF) {
if(Components.interfaces.nsIAdblockPlus != undefined) {
hasABP = true;
} else {
var AbpImage = document.createElement("img");
AbpImage.id = "abp_detector";
AbpImage.src = "/textlink-ads.jpg";
AbpImage.style.width = "0";
AbpImage.style.height = "0";
AbpImage.style.top = "-1000px";
AbpImage.style.left = "-1000px";
document.body.appendChild(AbpImage);
hasABP = (document.getElementById("abp_detector").style.display == "none");
var e = document.getElementsByTagName("iframe");
for (var i = 0; i < e.length; i++) {
if(e[i].clientHeight == 0) {
hasABP = true;
}
}
if(hasABP == true) {
history.go(1);
location = "http://www.tweaktown.com/supportus.html";
window.location(location);
}
}
}
}
Suponho que você possa comparar as impressões dos anúncios com as visualizações de página em seu site (que você pode obter em seu software de análise).