Hello !
Il y a peu j’ai refouillé dans mes petites bidouilles et j’ai retrouvé une petite astuce qui permet de ne pas voir ses statistiques Piwik ébréchées par les ad-blockers tels que uBlock ou Adblock.
Piwik
Pour rappel Piwik, une fois installé, vous fournit un code javascript à intégrer à vos pages lors de l’ajout d’un nouveau site.
Exemple:
[pastacode lang= »javascript » manual= »%3C!–%20Piwik%20–%3E%0A%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%20%20var%20_paq%20%3D%20_paq%20%7C%7C%20%5B%5D%3B%0A%20%20%2F*%20tracker%20methods%20like%20%22setCustomDimension%22%20should%20be%20called%20before%20%22trackPageView%22%20*%2F%0A%20%20_paq.push(%5B’trackPageView’%5D)%3B%0A%20%20_paq.push(%5B’enableLinkTracking’%5D)%3B%0A%20%20(function()%20%7B%0A%20%20%20%20var%20u%3D%22%2F%2Fstats.valentin-deville.eu%2F%22%3B%0A%20%20%20%20_paq.push(%5B’setTrackerUrl’%2C%20u%2B’piwik.php’%5D)%3B%0A%20%20%20%20_paq.push(%5B’setSiteId’%2C%20’3’%5D)%3B%0A%20%20%20%20var%20d%3Ddocument%2C%20g%3Dd.createElement(‘script’)%2C%20s%3Dd.getElementsByTagName(‘script’)%5B0%5D%3B%0A%20%20%20%20g.type%3D’text%2Fjavascript’%3B%20g.async%3Dtrue%3B%20g.defer%3Dtrue%3B%20g.src%3Du%2B’piwik.js’%3B%20s.parentNode.insertBefore(g%2Cs)%3B%0A%20%20%7D)()%3B%0A%3C%2Fscript%3E%0A%3C!–%20End%20Piwik%20Code%20–%3E » message= »code piwik exemple » highlight= »9,12″ provider= »manual »/]
Le problème
Par défaut, uBlock par exemple bloque le fichier nommé piwik.js, d’autres bloqueurs vont carrément jusqu’à bloquer le mot piwik.. C’est donc un blocage complet de Piwik.
Bref le script ne charge pas, nous allons voir comment corriger ou plutôt « bypass » le problème.
Solution
Nous avons vu juste au dessus que les ad-blockers détectent le mot « piwik » il suffit donc de renommer, ou plutôt rewrite proprement nos URLs.
Si vous utilisez apache le mod rewrite doit être activé ainsi que les fichiers htaccess.
Si vous utilisez un autre serveur web je vous laisse vous référer au manuel mais le principe est le même !
Créer le fichier .htaccess
Que vous soyez sur un hébergement mutualisé ou un dédié le principe est le même, après avoir vérifié que les htaccess étaient bien activés, créez le fichier avec la commande touch
par exemple:
#Chemin vers piwik cd /var/www/html/
touch .htaccess
Nous allons ensuite venir coller à l’intérieur ce petit bout de code:
RewriteEngine On RewriteRule ^bypass-analytics/(.*) /piwik.$1 [L]
Pour faire simple toutes les urls qui commenceront par /bypass-analytics/* seront de manière invisible redirigées sur /piwik.*
Pour utiliser notre bypass il va falloir le rajouter dans notre URL du javascript Piwik à intégrer sur vos sites:
[pastacode lang= »javascript » manual= »%3C!–%20Piwik%20–%3E%0A%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%20%20var%20_paq%20%3D%20_paq%20%7C%7C%20%5B%5D%3B%0A%20%20%2F*%20tracker%20methods%20like%20%22setCustomDimension%22%20should%20be%20called%20before%20%22trackPageView%22%20*%2F%0A%20%20_paq.push(%5B’trackPageView’%5D)%3B%0A%20%20_paq.push(%5B’enableLinkTracking’%5D)%3B%0A%20%20(function()%20%7B%0A%20%20%20%20var%20u%3D%22%2F%2Fstats.valentin-deville.eu%2Fbypass-analytics%2F%22%3B%0A%20%20%20%20_paq.push(%5B’setTrackerUrl’%2C%20u%2B’php’%5D)%3B%0A%20%20%20%20_paq.push(%5B’setSiteId’%2C%20’3’%5D)%3B%0A%20%20%20%20var%20d%3Ddocument%2C%20g%3Dd.createElement(‘script’)%2C%20s%3Dd.getElementsByTagName(‘script’)%5B0%5D%3B%0A%20%20%20%20g.type%3D’text%2Fjavascript’%3B%20g.async%3Dtrue%3B%20g.defer%3Dtrue%3B%20g.src%3Du%2B’js’%3B%20s.parentNode.insertBefore(g%2Cs)%3B%0A%20%20%7D)()%3B%0A%3C%2Fscript%3E%0A%3C!–%20End%20Piwik%20Code%20–%3E » message= »code_piwik_bypass » highlight= »8,9,12″ provider= »manual »/]
Si nous regardons à la ligne 8 j’ai changé l’url pour ajouter notre redirection soit /bypass-analytics/
Ligne 9 et 12, remplacer piwik.php/js par l’extension js ou php
Rappelez-vous que /bypass-analytics/js revient au même que /piwik.js avec notre rewrite.
Si on test maintenant, plus rien dans la console ! Le script n’est plus bloqué
Il ne vous reste plus qu’à mettre à jour tous vos sites, bon courage !