Ghostery : Si c’est gratuit, c’est vous le produit ?

« Si c’est gratuit, c’est vous le produit ! » c’est le titre d’une émission très intéressante de « là-bas si j’y suis » (ré-écouter) qui nous rappel à quel point nos données personnels sont une source de revenu phénoménale pour quelques grosses entreprises de marketing… Ma position personnelle est claire (d’autant plus avec le plugin wordpress d’incitation à l’anti-pub) : je refuse, tant que faire se peut, qu’on collecte des informations sur ma personne à l’insu de mon plein gré. (dédicace Richard V.)

J’avais rédigé un article pour venter les mérites de Ghostery qui, venant s’ajouter à un anti-pub classique, me satisfaisait amplement. Il bloquait réseau sociaux, statistique (type Analytics)… c’était parfait ! Mais au détour d’un surf sur la toile du web (comme disent les jeunes) je suis tombé sur un article de surfezcouvert.net qui dit ceci :

« Ghostery” […] serait détenu par Evidon une entreprise qui… vend nos données personnelles aux publicitaires. »

By moneyblognewz
By moneyblognewz

je contacte l’auteur aussitôt pour essayer de connaître la source de cette information, mais je n’obtiens pas de réponse. J’ai donc fouiné… et voici quelques sources plus ou moins intéressantes sur le sujet:

Donc oui Ghostery appartient à la société Evidon dont l’activité est de faire du  « Online marketing intelligence, web analytics privacy »… un dessin ?

Le développement de Ghostery et sa base d’utilisateurs dévoués nous permettent de révéler la technologie marketing invisible sur le Web de façon plus exhaustive et unique que jamais auparavant, » a déclaré Scott Meyer, PDG d’Evidon. « Un panel de recherche quantitative courant peur comprendre 50 000 utilisateurs. Cependant, notre panel GhostRank compte plus de 7,8 millions d’utilisateurs qui nous permettent d’indexer l’activité de plus de 26 millions de domaines chaque jour, dans le monde entier. Les données anonymes issues de notre panel révèlent un éclairage précieux qui permet aux publicitaires et aux éditeurs d’affiner leur prise de décisions de partenariats dans l’écosystème numérique. » [Sources bfmtv.com]

Toutefois il semblerait* que seul la fonction GhostRank (qui n’est pas -encore- activé par défaut) envoie des données chez Exidon.

* « il semblerait » car je n’ai pas fait la démarché de décompresser et d’analyser le code de Ghostery. Ceci dit si quelqu’un le fait qu’il n’hésite pas à en faire part !

Ghostery serait donc acceptable. Mais plus pour moi, car en plus de ne pas être libre, un doute plane… sans compter qu’on ne sait pas ce qu’ils feront dans la prochaine mise à jour. Il faut trouver une autre solution.

Plan B : Protection par DNS

Il y a un paradoxe à protéger sa vie privée en fessant mentir le DNS non ? En tout cas pour un groupe de machine ça reste une solution remarquable. C’est suite à un commentaire que j’ai découvert adsuck. Adsuck est un petit service DNS qui bloque les méchants…)

Sourceforge avec Adsuck
Sourceforge avec Adsuck

Mais Adsuck, en plus d’être pénible à installer et à faire fonctionner sous linux, ne s’avère pas optimisé donc fait grandement ralentir mon surf. A ajouter à cela le fait que le projet ne semble pas très actif.

Mais en fouillant pour comprendre le fonctionnement d’Adsuck j’ai découvert un « service » qui fournis des fichiers hosts de nom de domaine méchant. Il y a plein de service existant de ce type, celui qu’utilise Adsuck s’appelle winhelp2002.mvps.org, il semble actif, je teste !

Plan C : winhelp2002.mvps.org

On télécharge le fichier hosts fourni et le met à la place du notre. Cette manipulation peut être facilement automatisée tous les jours (cron.daily) avec un petit script :

#!/bin/bash
# Source : http://www.putorius.net/2012/01/block-unwanted-advertisements-on.html
cd /tmp
wget http://winhelp2002.mvps.org/hosts.txt
rm /etc/hosts
mv hosts.txt /etc/hosts

Ce qui me plaisait dans Adsuck c’était l’aspect intégration avec le service DNS et donc la possibilité de le mutualiser… Du coup j’ai scripté pour transformer le fichier hosts de winhelp2002.mvps.org en zone DNS bind9 :

#!/bin/bash

set -eu

HOSTSURL="http://winhelp2002.mvps.org/hosts.txt"
NAMEDCONFADS="/etc/bind/named.conf.ads"
BLOCKEDZONE="/etc/bind/blockeddomain.hosts"
FICTMP=`tempfile`
ERRORLOG=`tempfile`
# Email pour les erreurs (0 pour désactiver
EMAIL=0
# Log d'erreur
exec 2> ${ERRORLOG}

ionice -c3 -p$$ &>/dev/null
renice -n 19 -p $$ &>/dev/null

function cleanup {
    if [ "`stat --format %s ${ERRORLOG}`" -ne "0" ] && [ "$EMAIL" != "0" ] ; then
        cat ${ERRORLOG} | mail -s "$0 - Log error" ${EMAIL}
    else 
        cat ${ERRORLOG} 
    fi
    rm ${ERRORLOG}
}
trap cleanup EXIT

# téléchargement du fichier hosts
wget "${HOSTSURL}" -O ${FICTMP} &>/dev/null

# Suppression des commentaires
grep -v '^#' ${FICTMP} | 
	# Suppression des 6 premières lignes inutiles
	tail -n +6 | 
	# On retir les sauts de ligne mac
	sed 's/\x0D$//' | 
	# La syntaxe bind
	awk  -v blockzone=${BLOCKEDZONE} ' { printf "zone \"%s\"  {type master; file \"%s\";};\n" ,$2,blockzone }' > ${NAMEDCONFADS}

/usr/sbin/named-checkconf ${NAMEDCONFADS}
/usr/sbin/service bind9 reload 

rm ${FICTMP}

Il ne reste plus qu’à inclure le fichier /etc/bind/named.conf.ads dans le named.conf :

>    include "/etc/bind/named.conf.ads";

Après quelques jours d’utilisation ça ne s’avère pas très probant, car ça bloque finalement moins que les machin’block en extension navigateur (Trueblock, Adblock Edge, *block)

Plan D : retour au plan A

Finalement, je suis resté avec mon machin’block et j’ai suivi le conseil de John77800 en ajoutant les listes Antisocial.txt (ajout direct) & Fanboy’s Social (ajout direct)

– Qui dit mieux ?

– Mieux

Créer/publier un plugin wordpress simple : « Adblock invite »

Suite à mon article « Incitateur anti-pub« , des demandes ont émergé concernant un plugin WordPress. Très enthousiaste, je l’ai réalisé. Il s’appelle adblock-invite et il est sous licence Beerware. C’est le premier plugin wordpress que je réalise, il est relativement simple et me semble un bon moyen concret de commencer avec WordPress (plus sympa que le « hello world »).

Note : pour ceux qui souhaitent un anti-pub standalone réferez-vous à cet article.

Le but du plugin est simple ; il s’agit d’un Widget avec un champs « titre » (pour le titre du bloc) et un champs « message ». Ce widget ne s’affichera que lorsque le visiteur n’aura pas d’anti-pub.

Créer, tester votre code

Dans le répertoire wp-content/plugins/ nous allons créer arborescence suivante :

$ cd wp-content/plugins/
$ mkdir adblock-invite
$ tree
.
+--- screenshot-1.png
+--- screenshot-2.png
+--- testads
|   +--- banners.js
+--- widget.php
+--- style.css
+--- readme.txt

Détail de l’arborescence :

  • screenshot-*.(png|jpg|jpeg|gif) : Les captures d’écrans du résultat final
  • testads/banners.js : Présent pour simuler une publicité
  • widget.php : Le code PHP d »exécution du script (Détaillé ci-après)
  • style.css : une mini feuille de style simplement destiné à mettre un « display: none » à l’initialisation du widget
  • readme.txt : Très important, pour construire le vôtre, référez vous au readme.txt standard & au readme validator de wordpress

Le fichier widget.php est le cœur du plugin, voici son contenu (A l’heure ou j’écris il est en  0.1)

<?php
/*
Plugin Name: Adblock invite (Yes Adblock)
Plugin URI: http://adblock-invite.zici.fr
Description: Detects if the visitor have AdBlock (or another) plugin/extension installed and if not, gives URL to download it.
Author: David Mercereau
Author URI: http://david.mercereau.info
Version: 0.1
License: Beerware
License URI: http://en.wikipedia.org/wiki/Beerware
*/

// Ajout de code dans le pied de page du thème :

function adblockInviteScriptFooter(){ 
	?>
	<script language="JavaScript" type="text/javascript" src="<?php echo plugins_url('testads/banners.js', __FILE__); ?>"></script>
	<script language="JavaScript" type="text/javascript">
		function widgetAdlblockInviteID(tag) {
                        var regexpParam=/adblock_invite_widget-*/;
                        var tagParam=tag;
                        tagParam = (tagParam === undefined) ? '*' : tagParam;
                        var elementsTable = new Array();
                        for(var i=0 ; i<document.getElementsByTagName(tagParam).length ; i++) {
                                if(document.getElementsByTagName(tagParam)[i].id && document.getElementsByTagName(tagParam)[i].id.match(regexpParam)) {
                                        document.getElementsByTagName(tagParam)[i].style.display='block';
                                }
                        }
		}
		var divAds = document.getElementById("adstest");
		if(divAds) {
			widgetAdlblockInviteID('div');
			widgetAdlblockInviteID('aside');
		}
	</script>
	<?php
} 
add_action('wp_footer', 'adblockInviteScriptFooter'); 

// Ajout d'une feuille de style dans le head (la feuille contenu dans wp-content/plugins/adblock-invite/style.css :

add_action('wp_print_styles', 'addstyle');
function addstyle() {
        wp_enqueue_style('adblock-invite-styles', plugins_url('style.css', __FILE__));
}

// Le code du widget (front et back) :

add_action( 'widgets_init', create_function('', 'return register_widget("adblockInviteWidget");') );
class adblockInviteWidget extends WP_Widget {

	function adblockInviteWidget() {
		$widget_ops = array( 
							'classname' => 'adblock_invite_widget_class', 
							'description' => 'Detects if the visitor have AdBlock (or another) plugin/extension installed and if not, gives URL to download it.' 
							); 
		$this->WP_Widget('adblock_invite_widget', 'Adblock invite', $widget_ops);
	}

	// Formulaire d'administration

	function form($instance) {
		$instance = wp_parse_args( (array) $instance, array( 'title' => 'You do not block ads?', 'message' => '<p>It seems that you don\'t have AdBlock (or another) installed in your browser. I encourage you to install it for free</p> <p><a href="http://adblockplus.org" target="_blank">Download AdBlock</a></p>' ) );
		$title = $instance['title'];
		$message = $instance['message'];
		?>
			<p>
				<label for="<?php echo $this->get_field_id('title'); ?>">Title: </label>
				<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo attribute_escape($title); ?>" />
			</p>
			<p>
				<label for="<?php echo $this->get_field_id('message'); ?>">Message: </label>
				<textarea class="widefat" id="<?php echo $this->get_field_id('message'); ?>" name="<?php echo $this->get_field_name('message'); ?>" cols="30" rows="4"><?php echo attribute_escape($message); ?></textarea>
			</p>
		<?php
	}

	// Enregistrement du contenu

	function update($new_instance, $old_instance) {
		$instance = $old_instance;
		$instance['title'] = $new_instance['title'];
		$instance['message'] = $new_instance['message'];
		return $instance;
	}

	// Affichage du widget en front

	function widget($args, $instance) {
		extract($args);

		echo $before_widget;

		$title = apply_filters( 'widget_title', $instance['title'] );
		$message = empty( $instance['message'] ) ? '&nbsp;' : $instance['message'];

		if ( !empty( $title ) ) { echo $before_title . $title . $after_title; };

		echo $message;

		echo $after_widget;
	}
}

Vous pouvez tester votre plugin en l’activant dans le panel d’administration (Extensions / Extensions installées)

Publier sur WordPress.orgadblock-invite-search

Le saint graal pour un plugin WordPress étant d’être dans l’annuaire afin que l’utilisateur final n’est qu’à faire une recherche via son blog pour pouvoir installer d’un seul clic le dit plugin.

Pour ce faire il faut d’abord créer un compte sur wordpress.org puis proposer votre plugin. Une étape de modération est nécessaire.

Vous allez ensuite recevoir un email avec l’URL de votre plugin dont vous serez administrateur. (pour moi c’est http://wordpress.org/extend/plugins/adblock-invite/) Il vous faut ensuite faire le premier commit afin de rendre la page public. Voici la démarche :

$ # Création d'un répertoire de travail
$ cd ~/Projets
$ mkdir adblock-invite
$ cd adblock-invite/
$ # Récupération de arborescence svn
$ svn co http://plugins.svn.wordpress.org/adblock-invite/ .
$ # Copie et ajout du code
$ cp /var/www/wp-content/plugins/adblock-invite/* trunk/
$ svn add trunk/*
$ # Copie des screenshots pour le site de wordpress
$ cp trunk/screenshot-* assets/
$ svn add assets/*
$ # Commit et envoi 
$ svn ci -m 'Adding first version of my plugin'

Pour en savoir plus sur svn rapporté à WordPress vous pouvez vous rendre sur wordpress.org/extend/plugins/about/svn.
Et voilà c’est terminé vous devriez avoir votre page administrable sur wordpress.org & votre plugin doit être disponible dans l’annuaire.

Les ressources

Les liens qui’ m’ont bien aidé dans ma démarche :

N’hésitez pas à me faire part de point à améliorer dans ce plugin ou dans ce tuto (je l’ai fait à posteriori il est donc possible qu’il manque des étapes)

Incitateur anti-pub… Pourquoi faire ?

J’ai décidé sur mon blog d’inciter les gens à installer un anti-pub je vais vous expliquer pourquoi.

Les pieds dans le plats

Imaginons que votre prestataire de mail n’active pas l’anti-spam par défaut.  Pas sympa pour Madame Michu qui ne sait pas forcément installer un  anti-spam, tant pis elle subira… (ironie) Et les pauvres gens qui veulent vivre du spam, quelqu’un y pense ? Mais un anti-spam n’empêchera pas Monsieur Michu, s’il le souhaite, d’aller voir les promotions sur le viagra dans son dossier spam  !

Mettre un anti-spam pour ses emails c’est comme mettre un stop-pub sur sa boîte aux lettres (papier) et, par prolongement, installer un  anti-pub sur son navigateur.

Dans mon idéal les anti-pub seraient installés par défaut sur tous les navigateurs… Mais comme les principaux navigateurs sont InternetExplorer, Firefox et Chrome je doute que cela arrive un jour :

  • Mozilla Firefox est largement financé par Google. Google étant le principal annonceur sur Internet avec la régie Adsense
  • Google Chrome.. hum même problème…
  • Microsoft Internet Explorer : pas vraiment d’arguments solides mais  pas convaincu non plus… (oui c’est un procès d’intention)

Le financement du web

Pour les sites à petit revenu, blog, ect.. Aujourd’hui le coût d’un hébergement web est relativement négligeable  par rapport à beaucoup d’autres dépenses du quotidien. Pour 1€, 2€/mois et  vous avez une plateforme personnelle sans publicité. Sans compter les  hébergeurs associatifs gratuits, le RHIEN, l’auto-hébergement

Pour les sites à fort trafic des modèles économiques sont à trouver mais ils en existent déjà, en voici déjà une liste non exhaustive qui fonctionnent sans pub :

Si tout le monde bloque la pub Internet ne sera plus gratuit

Publicité != Gratuité

La publicité à un coût,  un coût non négligeable. Nous payons ce coût quand nous achetons des  produits d’entreprise qui font de la publicité. Donc de mon point de vue : « argument rejeté »

La neutralité du net

La neutralité du réseau n’a rien à voir là dedans, tant que c’est désactivable et que c’est sur le FreeBox.

Par rapport à Free, Benjamin Bayart semble être du même avis et vous l’expliquera bien mieux que mois sur le blog de FDN

Quand  à l’argument qui consiste à dire qu’avec la publicité les sites sont indépendants financièrement et donc libres. A ceux-là je répondrai en leur  demandant de regarder une très bonne émission d’arrêtsurimages traitant du sujet. Pour faire court, si vous voulez parler d’une marque/entreprise et qu’elle vous finance à travers la publicité, allez vous le faire ? La réponse est évidemment « non » c’est votre source de revenu… Est-ce que c’est ça la liberté ?

Pour toutes ces raisons : multiplions/facilitons les installations d’anti-pub sur nos ordinateurs !

Installer l’incitateur de pub WordPress

J’ai développer un plugin wordpress : adblock invit

Installer l’incitateur de pub sur mon site

Je partage avec vous le bout de script (certainement à améliorer, je ne suis pas développeur) pour que vous puissiez faire la même chose si le cœur vous en dit.

Créer un répertoire ‘testads’ accessible en http qui contiendra le fichier banners.js :

document.write("<div id='adstest'></div>");

Puis copiez ce bout de code juste avant la fin de votre </body> sur toutes les pages :

<script language="JavaScript" type="text/javascript" src="http://www.mercereau.info/testads/banners.js"></script>
<script language="JavaScript" type="text/javascript">
/*
* Script sous licence Beerware (http://fr.wikipedia.org/wiki/Beerware)
*/
var divAds = document.getElementById("adstest");
if(divAds) {
    document.write("<p>Vous n'avez pas d'anti-pub ?</p>");
}
</script>

3, 2, 1… Inciter !!!!

Edit : Renommage du fichier ads.js en banners.js pour coller avec la liste Fanboy’s d’adblock (merci @mart-e)

Edit2: Ajout de la licence au script (très important !) :-p

Cet article, à l’époque fessait suite à la polémique de Free avec son anti-pub installé par défaut sur la Freebox  et aux nombreuses discussions qui en ont découlé (ça aura surtout eu ce mérite.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies (au chocolat) Plus d’informations

Les cookies sont utilisés à des fin de statistique de visite du blog sur une plateforme indépendante que j'héberge moi même. Les statistiques sot faites avec un logiciel libre. Aucune information n'est redistribué à google ou autre. Je suis seul autorisé à lire ces informations

Fermer