Compter les clics sans lire le texte du lien
Un compteur répond à « combien sont venus ». La question la plus utile est généralement « combien ont fait quelque chose » — cliqué sur le lien de contact, ouvert le téléchargement, quitté le site vers un profil social. Ce service dispose d’événements pour cela depuis leur création : placez data-s4u-event="contact" sur un élément, et les clics dessus sont comptés sous ce nom.
Presque personne ne s’en servait, parce que presque personne ne le savait. Il y a donc désormais une case à cocher : compter automatiquement les clics sur les liens, sans aucun attribut. L’intéressant n’est pas l’interrupteur. C’est le nom que reçoit la chose comptée.
Pas le texte du lien
Le nom évident pour un clic, ce sont les mots sur lesquels le visiteur a cliqué. C’est aussi le mauvais.
Le texte d’un lien est du contenu libre. Un lien peut dire « Commande 4711 » ou « Message d’Anne », porter un numéro de rue, une référence de réservation, une adresse électronique. Tout cela atterrirait dans une colonne de base de données nommée name et y resterait. La politique de confidentialité de ce service dit que les statistiques ne contiennent aucune donnée personnelle, et cela doit rester vrai sans dépendre de ce qu’un propriétaire de site écrit à l’intérieur d’une balise de lien.
Il y a un deuxième problème, plus petit mais réel : vingt liens disant « ici » sur une page, c’est un nom qui ne dit rien, et le même lien en onze traductions ferait onze noms sur les cinquante auxquels un compteur a droit.
Le nom vient donc du chemin de destination. Le propriétaire du site l’a choisi, il est stable, et c’est déjà la clé qu’utilisent les statistiques de pages.
Trois normalisations, chacune pour une raison
- Préfixe de langue retiré.
/de/bloget/pl/blogsont la même page. Sans cela, le seul sélecteur de langue d’un site multilingue consommerait onze des cinquante noms. - Les suites de cinq chiffres ou plus deviennent
n. Deux pages de statistiques avec des numéros de compteur différents ne sont pas deux pages ; c’est deux fois la même. - Les liens qui quittent le site deviennent
ex-plus l’hôte. Le chemin d’une page étrangère ne dit rien au propriétaire. La destination du clic, si.
Les ancres, mailto:, tel: et javascript: sont ignorés — ce ne sont pas des destinations dont quelqu’un ait besoin d’un décompte. Les éléments qui portent déjà leur propre nom d’événement sont ignorés aussi, sinon le même clic serait compté deux fois.
Ce que cela coûte
Le script du navigateur a grossi de 1 022 octets compressés, une fois par première visite. Rien d’autre : l’indicateur voyage dans une requête que le script émet déjà à chaque chargement de page — une requête qui, jusqu’ici, répondait toujours la même constante — il n’y a donc pas de second aller-retour. Côté serveur, la liste des compteurs ayant l’option activée vit dans un petit fichier plutôt que dans une requête, car cette requête est un parcours complet de 166 433 lignes et coûte 143,9 millisecondes mesurées.
Par défaut c’est désactivé, et cela le reste. À ce volume, l’activer partout ajouterait environ neuf mille écritures par jour dans la table la plus sollicitée qui existe ici. C’est une chose que l’on active, pas une chose qui vous arrive.