Messages: 13

Enregistré le: 16 Nov 2005

Message le Mer Nov 16, 2005 15:59

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: Tout sélectionner
<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>
Modifié en dernier par adblock le Jeu Juil 05, 2007 16:36, modifié 10 fois.
Haut
149 Réponses
Messages: 1531

Enregistré le: 12 Juil 2003

Message le Mer Nov 16, 2005 18:03

Je ne comprends pas trop l'utilité du script, quelqu'un peut m'éclairer ?
Haut
Messages: 394

Enregistré le: 22 Nov 2004

Message le Mer Nov 16, 2005 18:14

Dans le pire des cas: refuser l'accès aux visiteurs qui ont adblock activé :roll:
Haut
Messages: 15815

Enregistré le: 23 Déc 2003

Message le Mer Nov 16, 2005 18:16

pour résumer, un script à la c*n :-)
enfin, un script pour perdre des visiteurs
Haut
Messages: 394

Enregistré le: 22 Nov 2004

Message le Mer Nov 16, 2005 18:17

e-kiwi a écrit:pour résumer, un script à la c*n :-)
enfin, un script pour perdre des visiteurs


On est bien d'accord :)
Haut
Messages: 1796

Enregistré le: 8 Nov 2004

Message le Mer Nov 16, 2005 18:21

Ce script mérite tout de meme sa place ici je pense...
Haut
Messages: 15815

Enregistré le: 23 Déc 2003

Message le Mer Nov 16, 2005 18:22

autant que toi :)

(c'est de l'humour !!)
Haut
Messages: 3722

Enregistré le: 4 Oct 2002

Message le Mer Nov 16, 2005 18:31

Pour rediriger les visiteurs vers une version sans pub et alléger le serveur :roll:
:arrow:
Modifié en dernier par Suede le Mer Nov 16, 2005 18:31, modifié 1 fois.
Haut
Messages: 2470

Enregistré le: 30 Aoû 2002

Message le Mer Nov 16, 2005 18:31

Tant qu'a jouer, autant faire
Code: Tout sélectionner
function adblocktest() {
        item=document.getElementById('adblocktest');
        if (item.style.display == 'none') item.style.display = 'block';
        if (item.style.visibility == 'hidden') item.style.visibility = 'visible';
}
Haut
Messages: 2899

Enregistré le: 16 Jan 2004

Message le Mer Nov 16, 2005 19:05

jeroen a écrit:Tant qu'a jouer, autant faire
Code: Tout sélectionner
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
Haut
Messages: 793

Enregistré le: 4 Déc 2003

Message le Mer Nov 16, 2005 19:07

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 ;-)
Haut
Messages: 3286

Enregistré le: 3 Mai 2004

Message le Mer Nov 16, 2005 19:23

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. :roll:

Jean-Luc
Haut
Messages: 394

Enregistré le: 22 Nov 2004

Message le Mer Nov 16, 2005 19:33

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...
Haut
Messages: 13

Enregistré le: 16 Nov 2005

Message le Mer Nov 16, 2005 20:16

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: Tout sélectionner
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.

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.
Haut
Messages: 394

Enregistré le: 22 Nov 2004

Message le Mer Nov 16, 2005 20:23

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) :wink:
Haut
Messages: 793

Enregistré le: 4 Déc 2003

Message le Mer Nov 16, 2005 20:28

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)

Généralement, il y a moyen de cliquer quelque part pour passer la pub. Un effort à peine plus élevé que de tourner une page...

P.S. : l'équivalent électronique des prospectus dans la boite aux lettres, c'est le spam ;-)
Haut
Messages: 394

Enregistré le: 22 Nov 2004

Message le Mer Nov 16, 2005 20:52

Comprenons-nous bien: je ne suis pas un extrémiste anti-pub !

En revanche je ne comprends pas et je n'admets pas que l'on veuille m'imposer à n'importe quel prix tel ou tel message, et ce script est bien là pour ça, non ?
Que croyez vous qu'il va avoir comme effet ? Vais-je avoir envie de cliquer sur des publicités qui me sont imposées malgré le fait que j'ai dit "non merci" poliment avec adblock ?
2 solutions: je désactive le javascript pour visiter quand même le site, ou bien (et c'est plus probable) je quitte le site dépité (un visiteur de perdu définitivement, et peut-être d'autres qui ne viendront pas puisque je ne pourrais pas en parler ou le faire connaitre)

A mon avis avant de mettre en place un tel script sur son site il faut se demander si le jeu en vaut vraiment la chandelle...
Haut
Messages: 13

Enregistré le: 16 Nov 2005

Message le Mer Nov 16, 2005 21:27

Les pubs clignotantes ok, ça dérange pour lire l'article. Pour ça il y a flashblock.
Mais les adsense je ne vois pas en quoi ça dérange.

Si tu n'aime pas les pubs ne va pas visiter des sites sur lesquels il y a des pubs, et dis toi que de toute façon si tout le monde était comme toi ces sites n'existeraient probablement pas ou plus.
Haut
Messages: 1698

Enregistré le: 10 Aoû 2003

Message le Mer Nov 16, 2005 22:22

Merci pour ce script :wink:
Haut
Messages: 3915

Enregistré le: 18 Sep 2004

Message le Mer Nov 16, 2005 22:55

Je pense aussi qu'un tel script est inutile, pour les raisons évoqués précédemment et car :
- si le script "antiadblock" devient un peu populaire, il y aura un script "antiantiadblock" qui sortira
- le pourcentage d'utilisateurs qui utilisent adblock est trop faible (par exemple, moi jusqu'à il y a peu de temps j'utilisais le filtre antipub de maxthon) pour s'embêter avec
Haut
Messages: 13

Enregistré le: 16 Nov 2005

Message le Jeu Nov 17, 2005 0:25

si le script "antiadblock" devient un peu populaire, il y aura un script "antiantiadblock" qui sortira

Dans ce cas le script sera mis à jour

le pourcentage d'utilisateurs qui utilisent adblock est trop faible (par exemple, moi jusqu'à il y a peu de temps j'utilisais le filtre antipub de maxthon) pour s'embêter avec

Tous les antipub doivent utiliser plus ou moins le même genre de techniques, ça ne doit pas être impossible de faire un antiantipub généraliste.
Haut
Messages: 13

Enregistré le: 16 Nov 2005

Message le Jeu Nov 17, 2005 1:27

Mise à jour: maintenant ça marche aussi avec maxthon. Sa technique est de carrément supprimer l'objet. Par contre il le fait environ 4 secondes après le chargement complet de la page, donc la détection se fait au bout de 5 secondes pour maxthon.
Haut
Messages: 415

Enregistré le: 6 Jan 2004

Message le Jeu Nov 17, 2005 8:46

Moi je propose ce script pour contrer cet "anti-anti-pub".
Bon ça ne marche pas hélas sur tous les sites mais un bon nombre à priori

Code: Tout sélectionner
if ($pub[qui_pollue]) {

        if ($mention_legales[obligatoire]){
             if ($no_registre_commerce[bien_present]) {
                  echo "bah zut on peu rien dire..."; }
                  else {
                      $riglolo="Webmaster qui fait de la pub sans être déclaré";
                      $action="Le dénoncer à l'URSSAFF";
                 }
          }
          else {
              $riglolo="Webmaster qui fait de la pub sans être déclaré";
              $action="Le dénoncer à l'URSSAFF";
          }
}
echo "Mais euh c'est pour du rire :-)))))";




:lol:
Modifié en dernier par [--Eric--] le Jeu Nov 17, 2005 9:48, modifié 1 fois.
Haut
Messages: 880

Enregistré le: 1 Aoû 2004

Message le Jeu Nov 17, 2005 9:21

adblock a écrit:Si tu n'aime pas les pubs ne va pas visiter des sites sur lesquels il y a des pubs, et dis toi que de toute façon si tout le monde était comme toi ces sites n'existeraient probablement pas ou plus.

+1.
Si tu visite un site, c'est que t'en accepte à la fois le contenu, mais également la façon dont il est présenté. Moi un site qui mets 5 popup, une grosse bannière qui bouge à droite, une autre qui passe par dessus le site toutes les 10 secondes, je le ferme.
Adblock je l'ai installé, mais les blocages que j'ai mis en place sont vraiment rares et ne sont que pour 2 voir 3 sites au grand maximum.
Haut
Messages: 2899

Enregistré le: 16 Jan 2004

Message le Jeu Nov 17, 2005 19:30

D'un autre coté, on peut visiter un site en mode texte uniquement pour ne pas avoir d'image, donc pourquoi ne pas visiter un site sans avoir la pub.
Haut
Messages: 662

Enregistré le: 8 Sep 2005

Message le Jeu Nov 24, 2005 0:44

Vince100 a écrit:Comprenons-nous bien: je ne suis pas un extrémiste anti-pub !

En revanche je ne comprends pas et je n'admets pas que l'on veuille m'imposer à n'importe quel prix tel ou tel message, et ce script est bien là pour ça, non ?
Que croyez vous qu'il va avoir comme effet ? Vais-je avoir envie de cliquer sur des publicités qui me sont imposées malgré le fait que j'ai dit "non merci" poliment avec adblock ?
2 solutions: je désactive le javascript pour visiter quand même le site, ou bien (et c'est plus probable) je quitte le site dépité (un visiteur de perdu définitivement, et peut-être d'autres qui ne viendront pas puisque je ne pourrais pas en parler ou le faire connaitre)

A mon avis avant de mettre en place un tel script sur son site il faut se demander si le jeu en vaut vraiment la chandelle...


et oui le jeu en vaut vraiment la chandelle ;)
Haut
Messages: 6410

Enregistré le: 5 Juil 2004

Message le Jeu Nov 24, 2005 0:54

Afficher de la pub à quelqu'un qui la bloque c'est le meilleur moyen de le faire fuir...

Sur 10 000 visiteurs je suis sur qu'il n'y en a pas plus de deux qui utilisent adblock...
Haut
Messages: 9

Enregistré le: 2 Mar 2005

Message le Ven Nov 25, 2005 2:57

Il y a une grande différence entre les pub des magazines et celles sur un site.
Le magazine tu l'as payé, sur le site web tu ne paies pas. C'est le webmestre qui paie le service qu'il est en train d'offrir.

Donc je suis contraire au pubs chiantes qui se surposent au text en lecture, mais les pubs discrètes il n'y a aucune raison de les supprimer. On a toujours la liberté de n'y pas clicquer dessus.

Si pour cela je perds quelques visiteurs, c'est pas mal. Ce sont des visiteurs qui occupent des resources sans m'apporter rien. Le but de mes sites n'est pas d'instruire l'humanité, mais de m'apporter un quelque revenu.
Haut
Messages: 394

Enregistré le: 22 Nov 2004

Message le Ven Nov 25, 2005 8:29

henri54 a écrit:Le but de mes sites n'est pas d'instruire l'humanité, mais de m'apporter un quelque revenu.


Et bien comme ça c'est clair: le site est seulement un prétexte pour afficher des pubs :?
Haut
Messages: 3457

Enregistré le: 21 Mar 2005

Message le Ven Nov 25, 2005 8:56

Ohax a écrit:Afficher de la pub à quelqu'un qui la bloque c'est le meilleur moyen de le faire fuir...


Bon voyage!

Je met pas de pub, mais comme le pense la majorité, celui qui veut pas de pub il se casse et soit il se trouve un site sans pub soit il se le monte soit il arrête internet.
Je trouve donc que cet outil est très bien.
Haut