Skip to main content
Piwik bypass cover

Bypass Adblock uBlock Piwik

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 !

Valentin Deville

Twitter: @v_deville Instagram: @valentin.deville Linkedin: @vdeville Société: Deville Computing

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *