Piwik : monitorez tous vos sites discrètement

Piwik : monitorez tous vos sites discrètement

Au gré de mes lectures sur le web, je constate que de nombreux webmasters s’interrogent quant à une alternative sérieuse et discrète à Google Analytics. L’impression d’être espionné en permanence oblige à aborder d’autres pistes pour cacher ses sites ou son réseau de sites.

Masquer son réseau de sites avec Piwik

L’article de Laurent à propos des différentes solutions de suivi des statistiques, Top 10 des alternatives à Analytics, laisse d’ailleurs des questions en suspens dans les commentaires à propos de Piwik. Car l’un des problèmes rencontrés avec Google Analytics peut être identique avec Piwik si l’on ne paramètre pas l’outil un minimum. Comment monitorer tous ses sites dans une seule admin en restant discret ?

J’en discutais avec Laurent sur Skype, il a choisi d’installer Piwik sur chacun de ses sites. Changer d’admin pour chaque site devient vite une plaie. je vous rassure de suite, il existe une solution et celle-ci se trouve dans la FAQ de Piwik.

Nous allons voir ensemble comment paramétrer Piwik pour qu’il devienne l’outil génial dont vous rêvez. :)

Créer un super utilisateur Piwik

Nous partons du principe que vous avez installé Piwik sur l’un de vos sites. Par exemple : http://www.votre-site.com/piwik/

Étape 1 : créer le compte du super utilisateur

  • Allez sur votre outil Piwik et cliquez sur Paramètres puis sur l’onglet Utilisateurs.
  • Cliquez sur Ajouter un utilisateur et remplissez les champs
    • Nom d’utilisateur
    • Mot de passe
    • Courriel
    • Alias où vous indiquerez Multi

Cela donne le résultat suivant où vous obtenez une clé appelée token_auth qui va être essentielle pour la suite.

Création d’un utilisateur Piwik

Étape 2 : télécharger le fichier piwik.php

Vous allez avoir besoin d’un fichier spécial à poser sur le FTP de chacun des sites que vous monitorez. Chez Piwik, ils sont sympas puisqu’ils le proposent au téléchargement dans leur FAQ.

Une fois téléchargé, vous devez modifier ce fichier. Rien de bien compliqué puisqu’il y a deux paramètres à changer :

  • $PIWIK_URL = indiquez l’URL où Piwik est installé (par ex http://www.votre-site.com/piwik/)
  • $TOKEN_AUTH = indiquez la clé token_auth que Piwik vous indique pour le compte que vous venez de créer

Enregistrez le fichier et déposez le via FTP sur chaque site dont vous souhaitez suivre les statistiques. Pour ma part, je le mets à la racine du site.

Étape 3 : donner les droits au super utilisateur

Votre compte super utilisateur est créé et les sites à monitorer sont présents dans l’admin de Piwik. Il faut à présent donner les droits au super utilisateur. Pour ce faire, il suffit de sélectionner Appliquer à tous les sites dans le sélecteur Sites au dessus du tableau du haut. Enfin, vous cliquez sur le bouton rouge de la colonne Administration pour lui donner les droits nécessaires.

Vous devez avoir le résultat ci-dessous à l’écran :

Droits utilisateur dans Piwik

NB : cette étape devra être répétée pour chaque nouveau site que vous ajouterez dans Piwik.

Étape 4 : mise en place du code de suivi

Lorsque vous ajoutez un site dans l’admin de Piwik, il vous est proposé un code pour taguer votre site. Celui-ci doit être modifié pour fonctionner avec les paramètres que nous avons renseigné au cours de ce tutoriel.

Vous devez remplacer le code d’origine :

<!-- Piwik --><script type="text/javascript">var pkBaseURL = (("https:" == document.location.protocol) ?"https://www.votre-site.com/piwik/" : "http://www.votre-site.com/piwik/");document.write(unescape("%3Cscript src=' + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));</script><script type="text/javascript">try {    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);    piwikTracker.trackPageView();    piwikTracker.enableLinkTracking();}catch( err ) {}</script><noscript><p><img src="http://www.votre-site.com/piwik.php?idsite=1"style="border:0" alt="" /></p></noscript><!-- End Piwik Tracking Code -->

Par celui-ci :

<!-- Piwik --><script type="text/javascript">var pkBaseURL = (("https:" == document.location.protocol) ? "https://www.site-a-suivre.com/" : "http://www.site-a-suivre.com/");document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.php' type='text/javascript'%3E%3C/script%3E"));</script><script type="text/javascript">try {    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);    piwikTracker.trackPageView();    piwikTracker.enableLinkTracking();}catch( err ) {}</script><noscript><p><img src="http://www.site-a-suivre.com/piwik.php?idsite=1"style="border:0" alt="" /></p></noscript><!-- End Piwik Tracking Code -->

NB : à chaque installation du tag, pensez à verifier que vous avez bien indiqué l’identifiant du nouveau site (dans notre exemple, l’ID est 1) :

  • var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
  • src="http://https://www.site-a-suivre.com/piwik.php?idsite=1"

Voilà, votre outil Piwik est ainsi mieux protégé des regards indiscrets et vous pouvez suivre tous vos sites dans une seule interface d’administration.

Fastoche non ? :-)

EDIT : MAJ du 09/09/2013

Piwik a modifié le code de tracking qui est désormais en asynchrone. Vous devez utiliser le code modifié suivant :

<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.site-a-suivre.com/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "1"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0];
    g.type="text/javascript"; g.defer=true; g.async=true;
    g.src=u+"piwik.php"; s.parentNode.insertBefore(g,s);
})();
</script>

Pour chaque installation du tag, vous devez modifier l'URL du site et son idendifiant :

var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.site-a-suivre.com/";_paq.push(["setSiteId", "1"]);

EDIT : MAJ du 01/03/2014

Pour éliminer l'empreinte Piwik de votre réseau, vous pouvez également créer un fichier javascript où vous placerez votre code. Ensuite, offusquez le code avec cet outil pour être encore plus discret. Lors de l'offuscation, il faut uniquement crypter le code qui se trouve entre les balises script. ;)

Pensez à ajouter le code suivant sur vos pages pour appeler le script :

<script type="text/javascript" src="http://www.site-a-suivre.com/votre-fichier.js"></script>

EDIT : MAJ du 08/09/2014

Afin d'avoir un cookie conforme aux recommandations de la CNIL, il est nécessaire d'apporter une modification au code de tracking comme suit :

<script type="text/javascript">
var _paq = _paq || [];
_paq.push([function() {
    var self = this;
    function getOriginalVisitorCookieTimeout() {
        var now = new Date(),
        nowTs = Math.round(now.getTime() / 1000),
        visitorInfo = self.getVisitorInfo();
        var createTs = parseInt(visitorInfo[2]);
        var cookieTimeout = 33696000; // 13 mois en secondes
        var originalTimeout = createTs + cookieTimeout - nowTs;
        return originalTimeout;
    }
    this.setVisitorCookieTimeout( getOriginalVisitorCookieTimeout() );
}]);
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.site-a-suivre.com/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "1"]);
    var d=document, g=d.createElement("script"),
    s=d.getElementsByTagName("script")[0];
    g.type="text/javascript";
    g.defer=true; g.async=true;
    g.src=u+"piwik.php";
    s.parentNode.insertBefore(g,s);
})();
</script>
Catégorie Tutoriels - Écrit par le 28/12/2012 - Article lu 12 781 fois - 25 commentaires

25 réflexions sur ce billet

Effectivement voici un bon complément d'information à l'article de Loran.

Avec ce tutorial très complet et les astuces données dans le billet d'origine, on arrive à présenter un profil très discret. Encore faut-il que cela soit légitime, mais c'est un autre débat :-)

Écrit par cdillat du site http://cdillat.fr/
Le 28/12/2012 à 18h08

Si tout est installé sur le même serveur il faudrait voir si un rewrite pourrait pas remplacer avantageusement le proxy piwik (pas de requête http pour faire site => serveur piwik).

A noter aussi que le proxy ne fonctionnera pas sur les hébergements free et tous ceux qui interdisent le téléchargement de fichier via php.

Sinon c'est du tout bon, bien joué Hervé ;)

Écrit par Baptiste du site http://calendrier2013.net/
Le 28/12/2012 à 18h15

Au niveau des performances de Piwik, je suis curieux de savoir comment ça tourne, genre sur un site à 10k pages vues par jour, qu'est ce que ça demande comme ressources, est-ce ça répond vite, etc.

J'ai lu quelques retours sur Piwik, et la lenteur du tool était signalée (sur un mutualité j'ai l'impression...), ainsi que des lacunes dans les fonctionnalités (ou bug !).

Écrit par Hervé
Le 28/12/2012 à 18h18

@cdillat : j'avoue que je ne me suis pas penché sur ta solution. Je me suis arrêté à la doc Piwik.

@Baptiste : j'ai installé Piwik sur un dédié. Je ne constate ni lenteur, ni bug.

C'est assez pratique, j'utilise ça depuis 4 mois sur un réseau et ça se passe pas trop mal. Par contre il faut un serveur costaud derrière, sur un mutu ovh, ça ne tourne pas chez moi.

Beunwa avait donné un plugin wp à ceux qui avaient assisté au VLC2012 pour les flemmards comme moi ^^

Merci Hervé pour ce tutoriel sur Piwik. C'est vrai que cela reste LA meilleure alternative open-source à GA et surtout celle qu'on peut maîtriser. GA est un excellent outil, malheureusement Big G is watching you...

Bref, très bon tuto ! En complément à GA, j'utilise Gauges pour le pur real-time. C'est un service proposé par Githug et qui s'avère vraiment performant.

Bonnes fêtes à tous !

Merci pour le tuto.

Perso je ne suis pas un fan de Piwik tout comme je ne suis pas un fan de toutes les soluces hostées pour de simples raisons de sécurité déjà mais aussi parce que j'ai eu auparavant de mauvaises surprises avec Piwik (enfin plutôt avec le serveur sur lequel était Piwik - tombé - pas vu - perte des données)

Écrit par Littlebuzz du site http://www.kdoblog.com/
Le 28/12/2012 à 21h55

Depuis quelques semaines que je teste, je suis vraiment conquis par cette solution. Idéale pour les projets de seconde zone ou réseau. Je préfère d'ailleurs l'interface à celle de Google.

Une seule critique, il semble difficile de pouvoir garder des archives sur plusieurs années sous peine d'avoir une bdd qui explose.

Écrit par loran750 du site http://www.coeurduweb.com
Le 29/12/2012 à 00h09

Rahhhhhh !

C'est exactement ce qu'il me fallait. Comme l'indique mon article, j'étais en train de chercher une solution pour ne pas montrer à Google tout mon réseau.

Et pour tout ce qui est statistiques et analyses du comportement de l'internaute, j'étais encore à considérer/déconsidérer/considérer/déconsidérer GA.

Comment je fais ,

- WHOIS différent, cela peut être facheux si on ne gère pas bien

- IP différentes ? Non, à moins d'être sur un dédié, de ne pas avoir pris suffisamment d'IP failover, et donc d'être grillé parce qu'on trouver 10, 20, 30 domaines sur une IP, on peut rester sur des mutualisés, au contraire, noyés dans la masse, les sites sont anonymes

- outil de monitoring/statistique différent de GA [ce qui est le sujet de l'article] : oui, quelle bonne idée que d'éviter de donner toute ton architecture à Google

- navigateur différent de Chrome ? Là c'est dur...

Hop là, on dirait que Piwik à le vent en poupe dans la communauté de SEO, ça fait plaisir à voir.

L'équipe de dev est au rendez-vous et la solution est vraiment bien finit, c'est cool de voir une petit outil comme ça prendre pleinement sa place dans le monde de l'analytics.

Merci Hervé pour cet article et pour pouvoir ce cacher de Big Bro Google ;)

Écrit par arnaud du site http://www.web-geek.fr
Le 31/12/2012 à 09h10

Hello,

J'ai déjà utilisé Piwik, et il a peu de chose à envier à Google. De plus, c'est du open source, ce qui est plutôt un bon point pour un tels outils.

Après je ne l'ai pas utilisé pour un site e-commerce, donc si quelqu'un à un retour su cet aspect je suis preneur.

J'utilise Xiti sur plusieurs de mes sites mais je vais sûrement me laisser tenter par Piwik. Varier un peu les softs analytics est aussi un moyen de passer un peu plus sous les radars lorsqu'on administre plusieurs sites. Thx pour le tuto

Écrit par Matt
Le 05/01/2013 à 19h13

J'utilise Piwik depuis un moment avec précisément cette technique sur un réseau de splogs US pour tracker les éventuelles nouvelles sources de monétisation à mettre en place.

Comme remonté par plusieurs personnes au-dessus j'en suis extrêmement satisfait, l'outil en lui-même est au top. Par contre j'aurai tendance à me méfier beaucoup pour des réseaux fortement interlinkés : utiliser Piwik reste en soit un beau footprint !

Du coup comme Vince j'essaie de varier les services analytics, utiliser toujours le même sur un réseau type linkwheel (même évolué hein) pour moi c'est du suicide. Sauf GA... à part que non.

Merci pour l'article et la discussion.

Écrit par Alexandre
Le 09/01/2013 à 16h00

Merci pour cet article, très utile !

En revanche j'ai appliqué le tuto et le tracking ne fonctionnait plus.. j'ai mis du temps à trouver le soucis, en fait le code proposé ici n'est pas tout à fait le bon.

J'ai vu ca à la lecture de la doc piwik. A la 3eme ligne ce n'est pas "piwik.js" mais bien "piwik.php" (ce qui semble logique d'ailleurs) qu'il faut mettre, ce qui donne :

document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.php' type='text/javascript'%3E%3C/script%3E"));

Merci en tout cas !

Écrit par Hervé
Le 09/01/2013 à 16h06

Alexandre

Merci d'avoir signalé la boulette. C'est corrigé. :)

Écrit par Robin
Le 23/01/2013 à 22h53

Merci pour cet article, très utile mais malheureusement je suis dessus depuis hier sans succès :(. J'ai pourtant respecté à la lettre ton tutoriel en vérifiant que "allow_url_fopen = On" était bien paramétré dans le php.ini et que mon serveur était bien sur du php5+. Malgré ça quand tout est en place :

-> Script JS modifié : Url remplacé par le site à tracker, piwik.js remplacé par piwik.php, noscript supprimé
-> Piwik.php modifié avec $TOKEN_AUTH et $PIWIK_URL paramétré comme il faut. Piwik.php placé à la racine du site à tracker

Ça ne fonctionne pas. Le fichier piwik.php ne semble pouvoir se charger, la console me renvoi :

Fatal error: Only variables can be passed by reference in /***/***/www/piwik.php on line 112


A la ligne 112 de piwik.php on a :

'header' => "Accept-Language: " . @str_replace("n","t","r", "", $_SERVER['HTTP_ACCEPT_LANGUAGE']) . "rn" ,

Quelqu'un aurait une petite idée sur l'origine du problème ?! Merci d'avance.

Écrit par Brandon
Le 27/07/2013 à 19h12

Au top merci Hervé !

Je ne savais pas que cela était possible. J'ai plusieurs sites sur mon piwik & pas top d'avoir l'url de l'admin sur chaque site ^^

Je fait un retour semaine pro pour dire si j'ai eu un soucis vis a vis de Robin ;)

Écrit par noska
Le 29/07/2013 à 16h39

Arrivez-vous à bien tracker vos visiteurs avec Wordpress en mettant le piwik.php à la racine ?

Écrit par Ri naa
Le 07/12/2013 à 17h35

Ouf, enfin un tutoriel clair et facile à suivre. Merci Hervé :)

Je vais désormais essayer tout ce qui a été dit sur PIWIK pour mes sites surtout pour celui qui se spécialise sur le ratp. Je vous en dirai plus une fois que j'en aurai essayé !

Écrit par bus
Le 18/12/2013 à 12h00

Je suis fan de Piwik surtout que c'est du open source, ce qui est plutôt un bon point pour un outil du genre. Juste une remarque, le proxy ne fonctionnera pas sur les hébergements free.

Bonne chose d'expliquer aux autre comment l'installer :D

Écrit par SERPLinker
Le 05/11/2014 à 14h10

J'utilise Analytics et Piwik, mais je passe beaucoup plus de temps sur Piwik qui est un formidable outil , gratuit et plus "intime" qu'Analytics. Je limite de plus en plus ma dépendance à Google, adieu Shopping et Addwords. Pour affiner sa fréquentation avec Piwik, on joue dans le qualitatif comme dit plus haut.

Écrit par Thomas
Le 22/01/2015 à 23h48

Bonjour,

Super ce tutoriel ! Je l'ai mis en place sur 4 sites wordpress.

Est-ce que ce piwik ralenti les performances des sites et est-ce que ce système limite le ralentissement ?

Bonne journée !

Écrit par Hervé
Le 23/01/2015 à 00h34

Thomas

Je n'ai constaté aucun ralentissement causé par Piwik. Installé sur près de 80 sites. :)

Écrit par tianapiqa
Le 09/03/2015 à 15h55

Bonjour

On a été aussi séduit par Piwik. On l'a installé puis on a inséré le code de suivi suivant :

var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//piwik.xxxxxxx.mg/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 2]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();

Mais rien n'est affiché comme statistiques jusqu'à présent. Pourriez-vous nous dépanner ?

Tiana

Écrit par Hervé
Le 09/03/2015 à 17h43

Tiana

Après l'ajout du domaine dans l'interface Piwik, avez-vous répété l'étape en sélectionnant Appliquer à tous les sites ?

Écrire un commentaire

Pseudo

E-mail (non publié)

Votre commentaire

Recevoir une notification par e-mail lorsqu'une réponse est postée

Veuillez recopier le code de sécurité : yv4yc7hs27

Haut de page