Real-User Monitoring, pourquoi en avez-vous besoin pour doper vos ventes ?

Un peu de RUM pour faire flamber vos ventes. On sait depuis longtemps que la performance d’un site a un impact direct sur son audience, sur la fidélisation, mais aussi, dans le cas d’un site de commerce, sur le taux de transformation.

Et bien sûr, la seule performance qui compte à cet égard est la performance vécue par l’internaute. Entre le temps mis par un serveur pour produire la partie principale d’une page web et le temps que met la page à s’afficher sous les yeux d’un internaute, il y a un écart qui peut être très important.
On est souvent sous la seconde côté serveur, et parfois à plus de 10 secondes vu de l’internaute.

Entre les deux, il y a de nombreuses petites latences qui s’additionnent : latence du réseau, qui est multipliée par le nombre d’aller-retours requis et amplifiée dans le cas d’accès internationaux, latence dûe aux différents traitements effectués par un navigateur (Firefox, Chrome), lenteurs induites par les autres applications exécutées en parallèle...
Ces causes possibles de dégradation de l’expérience utilisateur sont connues depuis longtemps, et les bonnes pratiques d’optimisation correspondantes sont assez bien répandues chez les bons professionnels.
La démarche d’optimisation d’un site web était, jusqu’ici selon deux axes indépendants. D’un côté des optimisations serveur, qui relèvent des progiciels, des intégrateurs, des architectes système. De l’autre l’optimisation “front-end”, qui relève de techniques différentes, certaines propres à la phase de montage (CSS, JS, HTML). C’est dans ce registre que Yahoo a mis à disposition YSlow, qui est un recueil d'outils de mesure et de bonnes pratiques, connu de tous les développeurs web, et qui a fait beaucoup pour l’amélioration de la performance front-end.
Une fois les bonnes pratiques relatives aux performances appliquées, le suivi du niveau de qualité de services est en général effectué par des outils de monitoring externes tels que Woozweb.com ou 2befficient. Ces outils peuvent requêter la partie principale de la page, mais peuvent aussi simuler un navigateur complet afin de s’approcher du vécu d’un véritable internaute.
Cependant, même dans un mode de simulation complète, le monitoring n’apporte pas encore le niveau d’information requis. En effet, il est effectué en général (a) de serveur à serveur, (b) sur une bande passante élevée, (c) avec une configuration (processeur, mémoire, navigateur, …) toujours identique. C'est à dire qu'il simule un internaute unique, plutôt bien équipé, et ne dit rien sur la grande diversité des internautes réels.
En parallèle, bien sûr, on sait aussi recueillir une information précise quant à l’équipement de ses internautes. Mais il n’y a pas d’analyse de la corrélation entre ce niveau d’équipement et l’expérience utilisateur. De même qu’il n’y a pas de corrélation mesurée entre la qualité de l’expérience utilisateur et l’information perçue par le client, ni entre la qualité et le nombre de pages vues, le taux de conversion ou bien le panier moyen.
C’est de ce besoin que nait le concept de Real User Monitoring. Comme son nom l’indique, il s’agit de faire du monitoring, non pas en simulant des utilisateurs, ni même en procédant par échantillonnage, mais en relevant des mesures issues des vraies sessions, vécues par les vrais internautes, par chaque internaute.
On peut mesurer beaucoup de choses relevant du comportement de l’utilisateur, mais pour aujourd’hui, restons sur la question des performances vécues et des impacts de ces performances.

L’intérêt d’une mesure en situation réelle est multiple :

  • La mesure est plus fiable, plus représentative. Elle intègre les contraintes et limites du monde réel : bande passante dégradée, équipement terminal plus limité, vieux navigateurs, utilisation des mobiles et tablettes, mais aussi impact des tags de partenaires ou de régies publicitaires ralentissant le chargement.
  • Chaque mesure unitaire est associée à un internaute, qui peut être un client. Il est possible alors d’associer le relevé de la mesure au profil connu du visiteur, et de l’utiliser ultérieurement à des fins de segmentation, ou simplement d'analyses et de corrélation.
De même, la mesure de qualité de services peut être corrélée aux autres mesures de la session.

Dans une présentation faite au “SF Performance Meetup” en début d’année 2013, Walmart raconte son approche du RUM, ses objectifs, les analyses qui en découlent, et les plans d’actions associés.
En résumé, Walmart, le plus grand acteur mondial de la grande distribution, fait d'abord le constat que ses sites e-commerce ne sont pas les plus rapides du marché.
Dans un second temps, un outil de RUM permet d’affiner la mesure, et en particulier d’aller au delà de la simple moyenne, pour distinguer des populations en termes de quintiles. On constate que, pour un temps médian de 4 secondes, on a une part de 5% des internautes qui expérimentent un temps de plus de 20 secondes. Le temps moyen est satisfaisant, mais le temps des 5% les moins bien lotis est inacceptable.

Une autre analyse rendue possible par le RUM est la corrélation entre le temps nécessaire à l’affichage complet et le taux de transformation.

L’impact direct et mesurable de la performance sur les ventes est un électrochoc. Le RUM permet de calculer très facilement le manque à gagner d’une moindre performance, et donc le ROI d’une action d’amélioration.    
Dans le cas de Walmart, le taux de conversion était à peu près divisé par deux pour chaque 2 secondes supplémentaires de temps d’affichage. Pour un taux de conversion de C lorsque la page est affichée en moins de 2 secondes, on a un taux de C/2 si le temps est compris entre 2 et 4 secondes, de C/4 entre 4 et 6 secondes. Il tend ensuite à se stabiliser autour de C/8 pour des temps d’affichages plus lents. 

Bien sûr, cette corrélation peut aussi traduire des facteurs non-techniques, par exemple le fait que les internautes mieux équipés sont plus riches, et plus prompts à passer commande.   Mais à l'inverse, les impacts négatifs de performances médiocres vont au delà du taux de transformation, et pénalisent aussi le taux de fidélisation, les nouvelles visites. Même si l'internaute a fini sa commande, il garde à l'esprit que ça a pris trop longtemps, que ce n'était pas une expérience agréable. 
C'est donc pratiquement une nécessité aujourd'hui, une composante d'un site à l'état de l'art : il faut déployer des outils de mesure de type RUM.

Principe technologique

Un outil RUM comporte deux composants. Le premier est un petit fichier javascript, intégré aux pages du site, qui est chargé de relever les mesures. Les navigateurs modernes, à l'exception notable de celui d’Apple, présentent une API permettant à un programme d'obtenir la chronologie de chargement et d'exécution, et en particulier la fin de l'affichage. Une fois la mesure obtenue, pour une page donnée, il reste à l'adresser à un serveur pour stockage et analyses. C'est le rôle du second composant, exécuté côté serveur. 

Côté poste client

Étant donné que le composant javascript doit être interprété par tous les “clients”, pour des raisons statistiques, intéressons-nous à sa compatibilité avec les navigateurs. Le W3C, consortium chargé de fournir des standards pour le web, met à disposition une spécification qui devrait être respectée par Firefox, Safari, Chrome (une nouvelle version est également à l’étude.)… L’état actuel de son implémentation est décrit dans le tableau ci-dessous.
http://caniuse.com/nav-timing

Si Firefox, Internet Explorer, Android et Chrome sont compatibles depuis quelques versions, Safari n’est pas encore représenté, mais des alternatives Javascript compensent.
Les mesures fournies par cette API “NavigationTiming” sont plus précises que celles calculées par un code javascript “maison” (Date.now()), et induisent moins de latence dans le chargement de la page (comme tout procédé scientifique, l’observateur induit un biais plus ou moins important dans la mesure).

A ce jour, il existe trois outils permettant de récolter les mesures : boomerang.js, Pagespeed, et Jiffy.

Boomerang.js est un script open source de mesure réalisé par Yahoo, qui utilise l’API standard vue précédemment et qui pallie aux manquements des navigateurs non compatibles. Il doit être intégré aux pages par les développeurs. Il n'est pas associé à un outil serveur de collecte et de stockage, mais il est possible de l'utiliser avec l'outil open source d'analyse d'audience Piwik par exemple. De même il est possible, avec un petit développement, de remonter les mesures vers la base clients et prospects, pour alimenter le profil des internautes. 

Pagespeed est un outil de mesure proposé par Google, qui s'intègre à Google Analytics.
Jiffy est une initiative open source datant de 2008 qui n’a pas été poursuivi.

Ces outils sont performants et gratuits, et leur intégration est relativement simple. Des analyses poussées, ou bien l'intégration à la base clients peut être plus complexe, mais ne serait-ce que pour disposer de la répartition en quintiles des temps perçus, le déploiement de RUM est une nécessité, tout particulièrement sur les sites de e-commerce. Quel est le responsable de site qui ne rêverait pas d'avoir sa propre mesure de la corrélation entre le temps de réponse et le taux de transformation ? Le déploiement d'une solution de RUM permettra à coup sûr de mieux définir les priorités, de mieux connaître cette masse noire des temps de réponse dont on ne se préoccupe guère mais qui pèse lourd : tout ce qui se passe après le serveur, et qui souvent mériterait plus d'attention, plus de travail. Les outils RUM permettront à la fois de bien mesurer ce qui reste à faire et de calculer un ROI pour ces actions.

Côté serveur

Stockage

Chaque mesure enregistrée est donc transmise au serveur, à chaque page qu'un internaute charge. Si l'envoi de ces mesures ne représentent qu'une centaine d'octets, le nombre de visiteurs simultanés peut entrainer un nombre important de requêtes arrivant au serveur de stockage, on peut le quantifier par symétrie au nombre de pages vues par seconde. L'application serveur doit être en mesure d'enregistrer les données dans une base, à une fréquence potentiellement élevée. Un service SaaS ou un serveur hébergé isolé de l’application web principale est donc nécessaire.

D’autre part, le volume de données (nombre de lignes) à stocker peut s’avérer extrêmement important, et complexifier la mise en oeuvre de requêtes. Une solution big data distribuée comme Hadoop est une bonne réponse à cette problématique.

Analyse

Les mesures suivantes sont particulièrement intéressantes :

  • La bande passante du poste client,
  • Le délai entre le clic d’un internaute sur un lien et la réception du premier octet par le poste client,
  • La durée d’interprétation de la page,
  • La durée perçue par l’internaute du chargement complet de la page à partir d’un clic sur un lien.
Comme nous l'évoquions, l'intérêt d'une RUM réside dans l'analyse de ces métriques et la corrélations entre ces mesures et des données transactionnelles comme le taux de transformation d’un site e-commerce, en vue d’engager des optimisations de page (images, feuilles de style, application, cache…)

Logiciels d’analyse

Google Analytics

Si l’intégration de “Pagespeed” au tableau de bord Google Analytics est aisé, les analyses possibles sont limitées.

On retrouve les indicateurs RUM suivants :
  • Temps de chargement moyen de la page : “temps moyen (en secondes) nécessaire pour que la page d'un échantillon se charge, du déclenchement de la page vue (clic sur le lien de la page, par exemple) à son chargement complet dans le navigateur”.
  • Temps de téléchargement moyen de la page : temps moyen mis par le navigateur à télécharger la page.
Ainsi que d’autres indicateurs qui ne permettent pas de juger directement de l’expérience utilisateur, mais de comprendre l’origine d’une latence :
  • Temps de réponse moyen du serveur : temps que le serveur met à répondre à la requête http.
  • Durée de connexion moyenne au serveur : temps passé à établir la connexion TCP avec le serveur
  • Durée de consultation moyenne du domaine : temps passé à résoudre le nom de domaine du site.
  • Durée moyenne de l’évènement de document interactif : temps d’interprétation du document html (DOM) par le navigateur.
L’indicateur “Exemple de chargement de page” indique le nombre de chargements de page analysés pour établir les mesures de “temps de chargement moyen”.
Il est faible au regard du nombre total de pages vues : en effet, Google limite* la collecte d’échantillons à 1 % du trafic (ou 10 000 pages vues par jour) ! Difficile d’établir une corrélation significative avec une autre variable.
*”Analytics restricts Site Speed collection hits for a single property to the greater of 1% of visitors or 10K hits per day in order to ensure an equitable distribution of system resources for this feature.”

Piwik

Piwik est une solution de suivi d’audience Open Source ayant comme objectif de devenir une alternative de choix à Google Analytics. Les données récoltées sont hébergées par vos soins, et donc “plus confidentielles” que des solutions SaaS. Si des métriques RUM personnalisées peuvent être intégrées dans les données statistiques, les tableaux de bords sont à construire par des petits développements.
New Relic
Il s’agit d’un service de monitoring SaaS complet qui analyse les performances applicatives (fonctions lentes, consommation de ressources..), les performances des bases de données (requêtes longues, les plus fréquentes…), mais aussi 4 indicateurs RUM similaires à ceux de Google Analytics, sans échantillonnage .
Néanmoins, aucune corrélation avec d’autres données n’est possible, et cette solution est essentiellement utilisée par des développeurs.
http://newrelic.com

Autres solutions

Real User Monitoring

http://www.real-user-monitoring.com/compare/

Soasta

http://www.soasta.com/testing-solutions/real-user-monitoring/

Conclusion

Au même titre que les données récoltées lors d’enquêtes de satisfaction auprès de clients, les mesures qui sont issues d’un dispositif de Real User Monitoring viennent compléter la connaissance qu’un éditeur de site peut avoir de son audience. C’est particulièrement vrai dans le cas de sites marchands où l’expérience vécue par le client joue un rôle essentiel dans le comportement d’achat et l’image de marque.