| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
adblock Nouveau WRInaute
Inscrit le: 16 Nov 2005 Messages: 13
|
Posté le : Mer Nov 16, 2005 15:59 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
Edit 02/07/07: Nouvelle version du script, plus rapide, et compatible avec les dernières versions des différents bloqueurs de pub.
Edit 05/07/07: Le script semble devenir populaire, quelques listes de bloquage d’adblock ont dû white lister les images dont l’adresse contient googlesyndication. J'ai donc modifier l'adresse de l'image témoin: Mettez /ads/ comme adresse.
Script de détection de bloqueurs de publicités.
Comment ça marche ?
On place une image témoin dans la page dont l'URL est susceptible de se faire bloquer. Ensuite on utilise un script pour effectuer divers tests sur l'image. On test si elle a été supprimée de la page, ou caché, ou non chargée, remplacée, etc...
Si le script détecte qu'un bloqueur de publicité est activé, il appel la méthode adblockblock.block(). Par défaut cette méthode fait un alert('Adblock activé'); , mais vous pouvez biensûr modifier son comportement.
À quoi sa sert ?
Vous pouvez l'utiliser pour:
- Éduquer vos visiteurs: Expliquez leurs que votre site ne serait pas là où il en est sans la publicité, peut être même qu'il n'existerait pas.
- Afficher une autre publicité non bloquée, faire de l'auto promotion, etc...
- Bloquer les leechers. Après tout, les utilisateurs qui n'affichent pas la publicité sont des leechers, vous payez l'hébergement de votre site pour eux, vous passez du temps sur votre site et eux ils prennent sans donner. Vous pouvez aussi mettre toutes vos images, css et js dans un répertoire /ads/, les leechers ne les téléchargeront pas et vous économiserez de la bande passante.
Compatibilité:
Ce script fonctionne avec les techniques de bloquage suivantes:
- Adblock de Firefox
- Le tueur de pub de Maxthon
- Adblock de Konqueror
- Les styles CSS personnels
- Les serveurs DNS ou fichiers hosts qui truquent la résolution des noms
- Les proxies qui renvoient un autre fichier à la place des pubs
Le code à copier quelque part dans vos pages:
N'oubliez pas de mettre à jour le code de l'image témoin si vous aviez installé l'ancienne version du script, les arguments onload et onerror sont importants.
| Code: |
<img src="/ads/" width="0" height="0" border="0" alt="adblocktest" id="adblocktest" onload="this.imgloaded=true;" onerror="this.imgloaded=true;" />
<script type="text/javascript">
adblockblock = function() {
if (window.addEventListener) {
window.addEventListener('load', this.bind(this.initialize), false);
} else if (window.attachEvent) {
window.attachEvent('onload', this.bind(this.initialize));
}
};
adblockblock.prototype = {
initialize: function() {
this.interval = setInterval(this.bind(this.test), 1000);
this.test();
},
test: function() {
var element=document.getElementById('adblocktest');
/* On test si l'element a été supprimé par le bloqueur
* Maxthon?, Konqueror
*/
if(!element)
{
this.logger('Element image non trouvé');
return this.block();
}
/* On test si l'image n'a tout pas été chargée dutout
* Adblock, /etc/hosts, proxies, etc
* Gecko: element.complete==true, même si image non trouvée / mauvaise image et onerror||onload appellée
* IE: element.complete==false quand image non trouvée.
*/
if (element.complete && !element.imgloaded)
{
this.logger('Image non chargée');
return this.block();
}
/* On test si l'element a été caché par le bloqueur
* (display:none, ou visibility:hidden, ou position:absolute et top/left hors de la page)
* Old adblock
*/
var display = this.getStyle(element, 'display');
var visibility = this.getStyle(element, 'visibility');
var position = this.getStyle(element, 'position');
if (display != 'inline' || (visibility != 'visible' && visibility != 'inherit') || position != 'static')
{
this.logger('Image cachée: display='+display+' visibility='+visibility+' position='+position);
return this.block();
}
/* On test si l'image a été remplacée
* Pour une image non chargée, naturalWidth/Height doit être indéfini ou 0
*/
if ((element.naturalWidth && element.naturalWidth > 0) || (element.naturalHeight && element.naturalHeight > 0)) {
this.logger('Image remplacée');
return this.block();
}
/* Pour Konqueror
*/
if (element.width && element.width == 64) {
this.logger('Image remplacée (Konqueror)');
return this.block();
}
},
getStyle: function(element, key) {
if (document.defaultView && document.defaultView.getComputedStyle) {
return document.defaultView.getComputedStyle(element, '').getPropertyValue(key);
} else {
return element.currentStyle[key];
}
},
block: function(blockMethod) {
// Ne pas supprimer cette ligne
if (this.interval) clearInterval(this.interval);
// Mettez ce que vous voulez ici
alert('Adblock activé ! ');
},
bind: function(func) {
var obj = this;
return function() {
return func.apply(obj, []);
};
},
logger: function(str) {
if (typeof console == 'undefined') return;
if (typeof console.log == 'undefined') return;
console.log(str);
}
};
/*Décommenter pour débugger (ou utiliser firebug)
if (typeof console == 'undefined') {
console={};
console.log = function(str) {
var el = document.createElement('div');
el.appendChild(document.createTextNode(str));
document.body.appendChild(el);
};
}
*/
new adblockblock();
</script>
|
Dernière édition par adblock le Jeu Juil 05, 2007 16:36; édité 10 fois |
|
| |
|
 |
lothar WRInaute accro

Inscrit le: 12 Juil 2003 Messages: 1446
|
Posté le : Mer Nov 16, 2005 18:03 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
| Je ne comprends pas trop l'utilité du script, quelqu'un peut m'éclairer ? |
|
| |
|
 |
Vince100 WRInaute impliqué

Inscrit le: 22 Nov 2004 Messages: 372
|
Posté le : Mer Nov 16, 2005 18:14 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
Dans le pire des cas: refuser l'accès aux visiteurs qui ont adblock activé  |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12053 Localisation: Toulouse
|
Posté le : Mer Nov 16, 2005 18:16 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
pour résumer, un script à la c*n
enfin, un script pour perdre des visiteurs |
|
| |
|
 |
Vince100 WRInaute impliqué

Inscrit le: 22 Nov 2004 Messages: 372
|
Posté le : Mer Nov 16, 2005 18:17 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
| e-kiwi a écrit: |
pour résumer, un script à la c*n
enfin, un script pour perdre des visiteurs |
On est bien d'accord  |
|
| |
|
 |
zimounet WRInaute accro

Inscrit le: 08 Nov 2004 Messages: 1799 Localisation: Physiquement ou mentalement?
|
Posté le : Mer Nov 16, 2005 18:21 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
| Ce script mérite tout de meme sa place ici je pense... |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12053 Localisation: Toulouse
|
Posté le : Mer Nov 16, 2005 18:22 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
autant que toi
(c'est de l'humour !!) |
|
| |
|
 |
Suede WRInaute accro

Inscrit le: 04 Oct 2002 Messages: 3630 Localisation: Suède
|
Posté le : Mer Nov 16, 2005 18:31 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
Pour rediriger les visiteurs vers une version sans pub et alléger le serveur

Dernière édition par Suede le Mer Nov 16, 2005 18:31; édité 1 fois |
|
| |
|
 |
jeroen WRInaute accro

Inscrit le: 30 Aoû 2002 Messages: 2257
|
Posté le : Mer Nov 16, 2005 18:31 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
Tant qu'a jouer, autant faire
| Code: |
function adblocktest() {
item=document.getElementById('adblocktest');
if (item.style.display == 'none') item.style.display = 'block';
if (item.style.visibility == 'hidden') item.style.visibility = 'visible';
} |
|
|
| |
|
 |
Grantome WRInaute accro

Inscrit le: 16 Jan 2004 Messages: 2900
|
Posté le : Mer Nov 16, 2005 19:05 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
| jeroen a écrit: |
Tant qu'a jouer, autant faire
| Code: |
function adblocktest() {
item=document.getElementById('adblocktest');
if (item.style.display == 'none') item.style.display = 'block';
if (item.style.visibility == 'hidden') item.style.visibility = 'visible';
} |
|
+1 |
|
| |
|
 |
yanhl WRInaute passionné

Inscrit le: 04 Déc 2003 Messages: 792
|
Posté le : Mer Nov 16, 2005 19:07 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
intéressant ce script, on pourrait s'en servir pour voir quel pourcentage de visiteurs bloquent la pub.
Et si elle ne s'affiche pas, la remplacer par une auto-pub (pour une autre rubrique par exemple), ou une pub d'une autre régie.
C'est quand même fou ce que certains peuvent critiquer par réflexe...
P.S. pour les deux derniers : adblocktest n'est qu'une image témoin, vous ne forcerez pas l'affichage de la pub comme ça  |
|
| |
|
 |
jeanluc WRInaute accro

Inscrit le: 03 Mai 2004 Messages: 2232 Localisation: Bruxelles
|
Posté le : Mer Nov 16, 2005 19:23 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
| Vince100 a écrit: |
| e-kiwi a écrit: |
pour résumer, un script à la c*n
enfin, un script pour perdre des visiteurs |
On est bien d'accord  |
Ah bon
Je ne dis pas que ce script est la solution idéale, mais le soft à la c*n, pour moi, c'est Adblock, un gadget destiné à ceux qui apprécient vos sites financés par la pub, mais qui ne veulent pas que vous tiriez un revenu de cette pub.
Jean-Luc |
|
| |
|
 |
Vince100 WRInaute impliqué

Inscrit le: 22 Nov 2004 Messages: 372
|
Posté le : Mer Nov 16, 2005 19:33 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
jeanluc, ne relance pas la polémique sur adblock...
Adblock est encore d'une utilisation marginale, et 95 % de ses utilisateurs ne cliquent pas sur les pubs en général, donc la perte engendrée du fait de son utilisation est minime.
Ne pas vouloir afficher des pubs sur son navigateur est tout aussi légitime que de ne pas souhaiter de prospectus dans sa boîte aux lettres, et un script qui essaie de contourner cette volonté (qui n'est pas celle de la majorité des internautes je le repète) est à mon avis une escalade malsaine... |
|
| |
|
 |
adblock Nouveau WRInaute
Inscrit le: 16 Nov 2005 Messages: 13
|
Posté le : Mer Nov 16, 2005 20:16 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
| e-kiwi a écrit: |
pour résumer, un script à la c*n
enfin, un script pour perdre des visiteurs |
Pour ceux d'entre vous qui ont un site à but unique de gagner de l'argent, un visiteur qui ne vois pas la pub est un visiteur qui ne sert à rien de toute façon.
| jeroen a écrit: |
Tant qu'a jouer, autant faire
| Code: |
function adblocktest() {
item=document.getElementById('adblocktest');
if (item.style.display == 'none') item.style.display = 'block';
if (item.style.visibility == 'hidden') item.style.visibility = 'visible';
} |
|
Non justement. adblocktest est l'image témoin. Les scripts genre celui de adsense ne sont tout simplement pas chargés. Par contre si c'est seulement l'iframe qui est bloquée il y a peut être moyen.
| Citation: |
| Ne pas vouloir afficher des pubs sur son navigateur est tout aussi légitime que de ne pas souhaiter de prospectus dans sa boîte aux lettres, et un script qui essaie de contourner cette volonté (qui n'est pas celle de la majorité des internautes je le repète) est à mon avis une escalade malsaine... |
Il y a une différence entre ta boite aux lettres, qui est ta propriété, et une page de pub dans un magazine par exemple. |
|
| |
|
 |
Vince100 WRInaute impliqué

Inscrit le: 22 Nov 2004 Messages: 372
|
Posté le : Mer Nov 16, 2005 20:23 Sujet du message: Détecter adblock: le script anti-adblock (nouvelle version) |
|
|
| adblock a écrit: |
| Il y a une différence entre ta boite aux lettres, qui est ta propriété, et une page de pub dans un magazine par exemple. |
Dans un magazine je peux tourner la page si ça ne me plait pas, et la pub ne vient pas se placer au dessus de l'article que je lis en clignotant (cf les flash en quasi plein écran)  |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|