Dans ce post je vais vous proposer une autre solution pour exclure les spams dans Google Analytics. Une solution qu'on pourrait nommer " NUNI " pour " Navigateur Utilisateur Non Identifié ", sur laquelle est basée la solution.
La solution " NUNI " semble être efficace et plutôt simple à mettre en oeuvre et cerise sur la barbe d'un hipster, elle ne requière aucun effort d'entretien.
" NUNI ", une solution simple et efficace pour exclure les spams dans Google Analytics.
Pour optimiser votre protection contre les spams, il y a deux prérequis :
- Activez la fonctionnalité " Filtrage des robots " de votre vue Google Analytics. L'option se trouve dans l'admin > vue > paramètres de la vue > Filtrage des robots, en base de page. Autorisez Google Analytics à prendre en charge une partie du boulot.
- Toujours au niveau de votre vue Google Analytics, créez un filtre pour reporter uniquement les données originaires de votre site.
Ce filtre est très utile pour contrer les éventuelles spammers qui requêteraient votre code de suivi Google Analytics à distance ou bien les sites qui utiliseraient involontairement votre GATC (Google Analytics Tracking Code).
Pour tester ce phénomène, c'est très simple :
- Copiez le code ci-dessous, puis remplacer le code de suivi UA-xxxxxxx-x avec le votre,
- Chargez l'URL modifiée dans votre navigateur préféré
- Observer le hit dans les rapports " temps réel " (correspondant au code de suivi). Pour isoler ce hit, regarder le rapport temps réel > " contenu ", il devrait apparaître " hello-from-webAnalyste ".
https://www.google-analytics.com/collect?v=1&t=pageview&cid=abcdefghijklm123456789&dp=hello-from-webAnalyste&tid=UA-71150724-1
Pour la suite, on va prendre un peu de recul est parler de la nouvelle métrique de Google Analytics " taille du navigateur ". Figurez-vous que cette métrique peut être très utile pour distinguer un faux site référent (the spam) d'un vrai site référent (the best friend).
Pour évaluer le volume de spam dans Google Analytics :
- Rendez-vous dans votre rapport Google Analytics > Acquisition > Sites référents
- Appliquer une dimension secondaire " taille du navigateur "
- utiliser le filtre avancé du rapport pour filtrer la " taille du navigateur " égal " (not set) ".
- Voilà vos " faux sites référents "
Euréka ! Vous pensez certainement à cette vraie fausse solution anti spam :
Utiliser un filtre de vue qui exclurait les données des " taille navigateur " = " (not set) ".
Cela aurait pu être LA solution, mais non ça ne fonctionnera pas, car il semble impossible de faire référence à une valeur " (not set) " dans les filtres de vue.
Ce n'est pas grave, quand on ne peut entrer par la porte, on entre par la fenêtre !
Utilisez Google Tag Manager pour éviter les spams dans Google Analytics.
On va utiliser Google Tag Manager pour contourner les limites de Google Analytics - filtrer les " taille de navigateur " (not set) ou plutôt " undefined ".
En partant du postula qu'un site référent (the best friend) correspond à un utilisateur réel qui navigue sur votre site avec un navigateur réel qui a une certaine dimension. Alors, en identifiant les navigateurs dont la taille est indéfinie, on aura affaire à une session d'un non-utilisateur ou NUNI (the spam) .
1 - Variable GTM " is browser size undefined."Créez une variable " Javascript Personnalisé " pour vérifier si la largeur du navigateur actif est définie.
Type de variable : Custom JavaScript (JavaScript personnalisé)
Code de à insérer dans la variable :
function(){ var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; return (w) ? false : true; }
Pour expliquer un peu le script, on créer une variable " w " dans laquelle on stocke la largeur (width) du navigateur en cours. Les double pipe (||), signifie OU, pour conditionner l'usage de différentes méthodes pour récupérer la valeur selon le type et la version du navigateur.
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
Puis on retourne le résultat d'un test booléen (true/false), selon si la taille du navigateur est définit ou pas. En résumé si " w " n'est pas définie (undefined), alors la variable GTM " is browser size undefined " est TRUE et inversement. Ce qui permet de créer un déclencheur GTM.
return (w) ? false : true;
2 - Déclencheur " exception browser with undefined ".
Créez un déclencheur " all event " qui servira d'exception pour bloquer le déclenchant des balises quand la taille du navigateur actif sera indéfinie.
Type de déclencheur : event
Type de déclenchement : .* (+ optin REGEX) - cette expression régulière permet de faire correspondre ce déclencheur avec tous les events standards (ex. gtm.js, gtm.forSubmit...) ou personnalisés (ex. addTocart).
Ajouter un filtre : {{is browser size undefined}} - égale - " true ". - ce filtre permet de vérifier la dimension du navigateur actif avec chaque événement.
Pour finir, il ne reste plus qu'à activer votre déclencheur " exception " dans votre balise " page vue " pour bloquer la mesure des pages vues en cas de spam " NUNI " (Navigateur Utilisateur Non Identifié).
Pour un finish parfait, que faut-il faire quand on modifie quelque chose qui peut affecter les mesures dans Google Analytics ?
[collapse title= "reponse "]Créer une annotation dans votre vue Google Analytics pour marquer la mise en place du filtre anti spam. Cette annotation permettra d'apporter un élément de réponse en cas de baisse d'audience.
Intégrer la solution NUNI sans Google Tag Manager.
Pour cela, il suffit de reprendre le JavaScript qui vérifie la taille du navigateur actif. Si la taille est définie on déclenche le hit page vue.
On récupère la valeur width du navigateur en cours
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
On vérifie que w exite (w = normalement la taille de la largeur du navigateur) - Si oui alors on affiche ce qui est conditionné, le tag du hit GA " page vue ", sinon, rien...
if(w) ga('send', 'pageview') ;
Ce qui donne :
<script> (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'); varw = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; // on récupère la valeur width du navigateur en cours ga('create', 'UA-xxxxxxxx-x', 'auto'); // utilisez votre UA. if(w) ga('send', 'pageview') ; // conditionne le déclenchement du hit page vue </script>