Statistiques de site web

Statistiques de site web

web

Mesure d'audience web pour mieux comprendre ses visiteurs.

analytics La mesure d'audience de consultation web est évidente pour des raisons de retour sur les publications, mais également pour des raisons techniques ou des raisons de sécurité. Deux solutions sont possibles :

  • appel d'un tracker Js Cette solution consiste à ajouter un bout de code vers un service d'enregistrement de trace et d'analyse. (Ex : Google Analytics, Matomo). Ce code est souvent à base de javascript, mais peut également être simplement à base de l'appel d'une image. Appelé alors pixel tracking. Exemple de code avec l'appel de Google Analytics :
    
    <!-- Google Analytics -->
    <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','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview');


- **analyse des logs web** (Ex : [Awstats](https://awstats.sourceforge.io/), [Webalyzer](http://www.webalizer.org/), etc.)

Les logs sont produits par les serveurs web (apache, nginx, etc.) dans un format relativement standardisé de fait. Ces logs mentionnent par défaut : l'IP du visiteur, la date et heure, la requête HTTP incluant l'URL demandée, le code HTTP généré, la taille de la réponse, le [Referer](https://en.wikipedia.org/wiki/HTTP_referer) et le [User-Agent](https://fr.wikipedia.org/wiki/User_agent). Exemple de log généré par ce site web :

2a01::dead:beef - - [25/May/2021:08:38:06 +0200] "GET /fr HTTP/2.0" 200 4837 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0"



Chaque type d'analyse présente un intérêt et se recoupe fortement puisque les données analysées sont sensiblement de la même origine.
![tracker_vs_log](tracker_vs_log.png "tracker_vs_log")
On va le voir, l'analyse directe des logs, bien qu'un peu plus technique à mettre en place, présente de nombreux avantages, en particulier d'être plus exhaustif sur la quantité d'information. Cependant, la qualité des informations est plus pauvre, et c'est bien ce pourquoi cette solution est moins intrusive.

## Principaux avantages de l'analyse des logs

- **pas sousmis aux ad blocker**. Pour moi, l'avantage n'°1 au vu des statistiques d'installation d'ads blockers (Adblock Plus se targue d'avoir 500 millions de téléchargement, [Analyse 2019]https://www.digitalinformationworld.com/2019/04/global-ad-blocking-behaviors-infographic.html)). En effet, ces extension bloquent les appels aux traquers connus (type Google analytics, ). D'après les différentes analyse, on comprend qu'on se prive de plus de 40% du trafic réel (hors robots) quand on se cantone aux analyses par tracker.
- **respectueux vie privée** (pas de cookie de tracking). L'analyse s'effectue sur les seules traces conservées par le serveur web. Aucun élément complémentaire n'est ajouté dans la navigation.
- **stats sur les éléments hors HTML** Un tracker HTML/JS ne peut être invoqué que depuis une page HTML (ou autres exceptions). Les trackers ne permettent donc pas l'analyse de consultation de PDF, d'images, etc.
- **réseau fermé** A moins d'utiliser un outil de tracking js libre installé localement (type Matomo), le suivi des utilisateurs sur un Intranet coupé d'internet n'est possible qu'en analysant ses propres logs.
- **statistiques des erreurs HTTP**. Seul l'analyse des logs permet de suivre tous les codes d'erreur HTTP. Il est certe possible d'invoquer le tracker JS avec des paramètres indiquant que l'on se trouve en présence d'une erreur 404, seul l'analyse de log permet d'analyser les codes de type 50x (erreurs serveur) ou 30x (redirections) par exemple.
- **visiteurs sans javascript**. Le web des robots représente environ 30% du traffic HTTP [pour certains](https://www.adpushup.com/blog/identify-bot-traffic/). Ce trafic regroupe les consultation des bots d'indexation de moteurs de recherche (ex : googlebot), de cybersécurité (ex : shodan), de cybermalveillants (spam, click, scraper, etc.), etc. Les robots n'appellent pas les traqueurs, mais laissent une trace dans les logs.
- **compatibilité**. Les logs sont dans un format commun et permettent une exploitation dans des outils très variés. Même si certains sont spécialisés (awstats), il est néanmoins possible de les exploiter dans des outils plus généralistes (Splunk, Elastic Search, etc.).
- **léger**. L'absence d'appel extérieur permet d'alléger le poids général de la page.

## Principaux Inconvénients de l'analyse des logs

- **pas de stats sur le navigateur**. Les statistiques sont limitées aux éléments présents dans les logs web. On ne peut donc aller plus loin que le [User-Agent](https://fr.wikipedia.org/wiki/User_agent) que renvoie le navigateur. Exit donc les informations sur la résolution d'écran, les plugins, ou les capacités un peu avancées des navigateurs.
- **pas de suivi avancé du visiteur** (respecte la vie privée), de stats de "conversion". L'analyse de log ne permet de suivre un utilisateur qu'au travers de son adresse IP. C'est insuffisant pour réaliser un vrai suivi de visiteur en cas d'IP partagée ou de changement d'IP (ex : navigation mobile).
- **plus compliqué à installer**. Un tracker, c'est souvent un bout de code HTML/JS à ajouter dans une extension de son CMS ou dans son code. L'analyser de log, c'est une application complète à installer, et une opération potentiellement non négligeable de traitement de logs.
- **pas de suivi de campagne**. Le suivi de l'origine du navigateur est uniquement basée sur le champs HTTP_Referer qui n'est pas fiable. En effet, cette valeur est modifiable par le navigateur, et souvent vide pour des raisons de confidentialité. Il est donc très difficile de réaliser des suivis de campagne de communication, facilement réalisés et plus ou moins normalisés grâce aux traqueurs (utm_source, utm_campaign, etc.)

## Solution hybride

Par ailleurs, il existe des solutions hybrides permettant de concilier le meilleur des 2 mondes.
- Matomo, utilisant principalement un tracker, permet d'avaler des logs en complément
https://matomo.org/docs/log-analytics-tool-how-to/

- Awstats permet d'appeler un tracker dans une page HTML et d'ajouter des éléments de mesure dans les logs
https://awstats.sourceforge.io/docs/awstats_config.html#MiscTrackerUrl

Article précédent Article suivant