Tutoriel : masquer son code Analytics
Quoi de plus pénible que de voir ses stats exploser en plein vol sans augmentation du trafic ? La raison peut être très simple : un gars a pompé le contenu de votre site (contenu et code), y compris le code de vos statistiques. Perso ça m'énerve gravement.
Protéger son code en quelques lignes
Si vous utilisez Google Analytics (ou un autre outil d'analyse tel que Piwik), vous avez l'habitude d'utiliser ces quelques lignes :
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXX-XX', 'auto'); ga('send', 'pageview');
Ce code étant repérable facilement, on va effectuer deux actions pour le masquer des regards indiscrets et le rendre inutilisable sur un autre site que le sien.
La première étape consiste à contrôler que le domaine qui affiche ce code est autorisé à le faire. On remplace le code par le suivant :
var domaine = location.hostname; if (domaine == 'www.votre-domaine.com') { (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXX-XX', 'auto'); ga('send', 'pageview'); }
Pour chaque site, pensez à mettre à jour les lignes suivantes :
if (domaine == 'www.votre-domaine.com') { ga('create', 'UA-XXXXXX-XX', 'auto');
Toutefois, ce n'est pas suffisant. Il faut également crypter cette portion de code pour qu'elle ne soit pas modifiable. Rendez-vous sur le site http://www.javascriptobfuscator.com/Javascript-Obfuscator.aspx
Copiez le code sans les balises javascript dans la colonne de gauche et cliquez sur le bouton Obfuscate. Créez un fichier stats.js et copiez le code crypté de la colonne de droite à l'intérieur.
Ensuite, il vous suffit d'appeler votre code comme ceci :
<script type="text/javascript" src="stats.js"></script>
Voilà, plus personne ne viendra pourrir vos statistiques. ;)
14 réflexions sur ce billet
Le 10/04/2015 à 08h22
Fonctionne aussi pour adsense :p
Oui mais là tu t'en fiche un peu qu'un mec te le copie. A moins qu'il ne le mette sur un site de pr0n pour bannir ton compte. :S
C'est dans ce genre de cas que tu te dis : "mais bon sang, pourquoi je n'y avais pas pensé ?".
Moi qui gérait ça au niveau du .htaccess et des filtres GA, au moins cette façon de faire est radicale !
Merci Hervé. ;-)
Le 10/04/2015 à 10h58
@Loïc : oui également. ;)
@LIJE : pour éviter de se faire pourrir les statistiques depuis un autre site.
Merci pour la technique.
Julien Coquet a publié récemment une autre technique, moins radicale (car les stats sont toujours polluées) mais plus marrantes.
Il utilise un gestionnaire de tag pour mettre en place ces tags de suivi, et il avait juste mis en place un autre tag pour ouvrir une popup sur les pages qui ont volé du contenu.
Ça pourrait etre sympa de mélanger les 2 techniques.
Si c'est le bon host, on met le tag, sinon on ouvre une popup qui indique que le contenu est volé :)
Alors justement en utilisant un gestionnaire de tag du type Google Tag Manager, on passe à une solution qui a de l'avenir, où on n'a plus besoin des dev pour poser des balises. :p
Et le code de suivi analytics ne s'affiche plus dans le code source donc ça résous le problème du squatte facile. Après n'étant pas le grand spécialiste, je ne sais pas si on peut le trouver dans le datalayer, mais je ne pense pas.
Le 10/04/2015 à 21h54
@Madeline : idée intéressante que cette pop-up. J'adore ^^
@Marc : une agence web qui propose un conseil pour se passer d'un dev, ce n'est pas courant. :-)
Le 07/08/2015 à 20h35
Je vais utiliser ça sans plus tarder ! Merci :)
Le 19/08/2015 à 18h05
J'ai moi été victime d'une utilisation frauduleuse de mon code analytics, ce qui m'a valu l'apparition de page à caractère pornographique dans mes stats... Imaginez ma surprise, je crois avoir lu que cela s'appelle Ghost Referrer Spam.
Le 24/08/2015 à 16h40
J'ai fait à plusieurs reprise le tour du web pour trouver une réponse à cette question. Et oui, je pensais tout d'abord à un problème de spam. d'ailleurs les infos qui circulent à ce sujet ont renforcé ma théorie, il m'était donc venu à l'idée de créer des filtres. Mais malheureusement, mes données étaient encore infectées.
Et là, je pense que je suis tombé sur une solution radicale, je vais l'appliquer illico ! Merci, c'est sans doute à cause de ce UI- trop visible qu'ils arrivent à pénétrer les données.
Merci !
Le 07/11/2015 à 10h16
Salut
J'ai essayé ce script pendant plusieurs mois, je ne suis plus spammé par le referal spam. Le seul problème, je viens de mettre mon site en SSL. Sur Internet Explorer, Microsoft signale comme contenu bloqué et même pire mets à côté de l'URL, un logo en bleu.
J'ai fai le test de supprimer le script et la plus d'alarme du côté d'Internet explorer. J'ai essayé de copier le code encodé dans une balise.
Le 09/11/2015 à 09h35
Dryland
Il faut chercher ce qui cloche dans le code et l'adapter en rapport avec le SSL. Peut-être sur cette ligne de code :
if (domaine == 'www.votre-domaine.com') {
Je n'ai pas de site en SSL, donc impossible de t'aider davantage.
Le 09/11/2015 à 15h46
Bonsoir Hervé
Le problème ne vient pas de ton script obscure, le problème vient de active X sur Internet Explorer qui bloque systématiquement les comptes UA xxxxx obscure ou non obscure.
J'ai fait les tests suivants :
1/ Aucun code UA active X ne détecte rien
2/ Code obscure active X détecte et bloque
3/ Code non obscure original donner par Google, active X détecte et bloque.
Cela est valable pour les sites SSL ou non SSL , si l'utilisateur utilise active X alors le script Google sera bloqué. Si l'utilisateur n'a pas activer active X alors aucune alerte aucun blocage. Je ne sais pas combien d'utilisateurs active active X
mais ce n'est pas sympa de la part de Microsoft.
Sinon avant d'utiliser ton script j’étais énormément spammé par le spam referral. J'avais essayer des tonnes de variables conseiller sur le web et sur le filtre de Google. J'en avais toujours qui arrivait a passer à travers comme event-tracking. Dès que j'ai installé ton script depuis ce jour je n'ai aucun pollueur sur mes stats de Google Analytics.
Je te remercie d'avoir mis a la disposition des webmasters un script 100% efficace car le résultat est la.
Bonne soirée à tous.
Le 08/07/2016 à 15h59
Salut Hervé, merci pour la technique, plutôt utile et relativement simple à mettre en place. On l'a récemment mis en place sur Joomla mais avec un plugin qui permet de faire la compression de code dont les script, Analytics est directement inclus dedans et comme ça, aucune trace.
La création de site Internet sur mesure est le coeur de métier de l'agence web Infini'click.
D'autres prestations sont également proposées, découvrez-les !
- Tutoriel : installer un serveur Debian (wheezy)
- Tutoriel : Installer un certificat SSL
- Piwik : monitorez tous vos sites discrètement
- Tutoriel Paypal : Intégration et configuration du paiement en ligne
- Tutoriel PayPlug : intégration au panier d'achat
- Référencement des images : l'état de l'art
- Des onglets en CSS avec JQuery
- Gildas le 04/03/2022 à 18:00
Nop j'ai que le require('fpdf.php) ; Mais pas... - Hervé le 04/03/2022 à 17:58
Gildas Tu n'appelles pas de fichier externe via un... - Gildas le 04/03/2022 à 17:50
merci de ton retour rapide, effectivement dans ma... - Hervé le 04/03/2022 à 17:45
Bonjour Gildas Effectivement, 8 ans ça fait un bail.... - Gildas le 04/03/2022 à 17:37
Bonjour Hervé, Bon j'arrive 8 ans après la... - Olivier le 16/01/2022 à 23:09
C'est clair que les actions réalisées ne correspondent...