PROJET AUTOBLOG


NeoSting.net

source: NeoSting.net

⇐ retour index

Comment détecter les AdBlock ou Ghostery pour informer vos visiteurs #astuce

mercredi 23 janvier 2013 à 00:42

NeoSting.net - Comment détecter les AdBlock ou Ghostery pour informer vos visiteurs

Voici une méthode très simple à mettre en place (en JavaScript), qui permet de détecter la majeure partie des logiciels de type adblock, ces fameux bloqueurs de publicités. Le but de ce petit code est d'afficher un message dans les cas ou un adblocker, comme AdBlock Plus ou Ghostery, est présent (ou pas), dans le navigateur de l'internaute.

Cette méthode fonctionne bien avec Adblock Plus, et à peu près bien aussi avec Ghostery, et ne fait pas appel à un fichier externe (une requête en moins). Toutefois, pour pouvoir utiliser ce script, il faut suivre cette condition : mettre le message d'information après la publicité. Mon niveau en programmation étant au raz des pâquerettes, j'essaye d'aider et de partager comme je peux.

Motivation !

Que l'on soit un webmestre ayant choisi cette source de motivation et de soutien, ou au contraire, que l'on soit celui qui veut tout péter les Interwebz et propager ces solutions anti-publicités, ce script fonctionne logiquement de la même manière ; il faut juste changer l'argument du message, selon son propre choix.

La base ?

Les bloqueurs de publicités désincrustent les bannières publicitaires et tendent généralement à réduire la taille de leurs blocs HTML à 0. Le principe de ce code est donc simple : on récupère (ici) la largeur d'un élément DIV ayant sa propre ID en Javascript, et suivant la dimension obtenue, on affiche un message, sinon un autre.

Bien sûr, il suffit d'avoir une extension comme NoScript, ou que le Javascript soit désactivé pour que cette méthode tombe à l'eau. Le principe reste ici de ne pas avoir non plus une usine à gaz pour ça.

Bon, donne ce code ! (en HTML5)

<div id="motivation">
... le code de l'espace publicitaire
</div>
<script>
var sizemotivation = document.getElementById("motivation").offsetWidth;
if (sizemotivation > 0)
{
document.write('<p id="stopoff">N\'Utilise pas d\'adblocker</p>');
}
else
{
document.write('<p id="stopon">Utilise un Adblocker</p>');
}
</script>

Pour finir, sachez que ce bout de code est proposé dans une licence spéciale : la licence "Liberté, Tolérance et Respect". Il appartient donc à l'utilisateur de ce code, modifié ou non, de suivre ces valeurs. Normalement, l'internaute intègre déjà, de base, cette licence (hum...).

Par contre, si vous voulez troller comme un barbu expérimenté capable d'inventer un nouvel Internet dans lequel vous voulez que chaque site de la toile devienne payant (comme le minitel 2.1), ça se passe dans les commentaires ci-dessous ;)