Plateformes
Drupal
Mesurez l’audience d’un site Drupal avec Runlight, et voyez quand les agents IA le lisent.
Le module Runlight fait tourner Runlight dans un site Drupal 10.3 ou 11, avec le tableau de bord sur /runlight et les chiffres dans sa propre base de données. Il peut aussi envoyer vers un Runlight que vous faites tourner ailleurs, que ce soit le serveur autonome ou une application dans laquelle Runlight est monté, pour qu’un seul tableau de bord couvre de nombreux sites.
Ce qu’il fait
- Il ajoute le script de Runlight à chaque page en dehors du thème d’administration. Sur une page à laquelle Drupal répond par une 404, le script enregistre aussi un événement nommé 404 avec le chemin de la page manquante, donc les propriétés de 404 dans le bloc Événements listent les adresses cassées que les gens ont atteintes, et combien de fois.
- Il laisse de côté les visites des personnes qui peuvent administrer Runlight, sauf si vous désactivez cette option.
- Il signale les agents IA comme ChatGPT et Claude quand ils récupèrent vos pages, y compris les pages auxquelles répond le cache de pages de Drupal. Le signalement part après l’envoi de la réponse, donc la page n’est jamais ralentie.
- Il ajoute sous Rapports un élément Runlight qui affiche le tableau de bord de ce site dans l’administration.
L’installer
Installez le module avec composer require drupal/runlight et activez-le avec drush pm:install runlight, ou dans Étendre. Ses réglages, dans Configuration, Système, Runlight, s’ouvrent sur un écran de configuration, et rien n’est compté tant que vous n’avez pas choisi où tourne Runlight. Cliquez sur Run Runlight in this Drupal site et il commence à compter le site.
Rapports, Runlight affiche les chiffres, et son bouton Open in Runlight ouvre le tableau de bord complet sur /runlight sur votre site. Vous pouvez y ajouter des objectifs, des entonnoirs, des liens courts et des rapports par e-mail. Toute personne qui a la permission Administer Runlight est propriétaire de ce Runlight. Toute personne qui a la permission View Runlight voit le même tableau de bord sans rien pouvoir modifier, et on demande à tous les autres de se connecter à Drupal. Les modifications ne sont acceptées que depuis les pages de votre propre site, donc un autre site ne peut pas en faire avec la session d’un propriétaire.
Faire tourner Runlight dans Drupal demande PHP 8.2 ou plus récent avec les extensions pdo, mbstring et openssl. L’écran de configuration indique quand il manque quelque chose.
Où sont gardés les chiffres
Quand la base de données de Drupal est Postgres, MySQL 8.0.20 ou plus récent, ou MariaDB 11.4 ou plus récent, Runlight y garde ses chiffres, donc vos sauvegardes de base de données les incluent. Ses tables portent le préfixe de tables de Drupal, comme rl_events, ou d_rl_events avec un préfixe d_, et Runlight les marque comme appartenant à ce site. Si des tables portant ces noms existent déjà et n’appartiennent pas au Runlight de ce site, comme celles d’un Runlight autonome dans la même base, il n’y touche pas et utilise un fichier SQLite. Il se connecte avec sa propre connexion, ouverte par le pilote de base de données de Drupal avec les mêmes réglages que Drupal, donc les options TLS sous pdo et les éventuelles init_commands s’y appliquent aussi.
Sinon, les chiffres vont dans un fichier SQLite dans un dossier runlight sous les fichiers privés de Drupal, ce qui demande pdo_sqlite côté PHP et un dossier de fichiers privés, défini avec $settings['file_private_path'] dans settings.php. Runlight ne garde jamais rien dans les fichiers publics. Le choix se fait la première fois que Runlight tourne et ne change jamais, donc les chiffres ne se retrouvent jamais répartis à deux endroits.
Désinstaller le module retire les tables de Runlight, chacune par son nom et seulement celles de ce site, ou son dossier, ainsi que ce qu’il gardait dans l’état et dans le cache de Drupal.
Lieux et entretien
Le pays des visiteurs vient d’un en-tête quand un CDN comme Cloudflare en envoie un. Sinon, activez Show which countries visitors come from dans les réglages du module, et le cron de Drupal télécharge une fois par mois la base de pays gratuite de DB-IP dans le dossier de Runlight des fichiers privés, ou à défaut dans le dossier temporaire de Drupal. Le cron de Drupal lance aussi la vérification planifiée de Runlight, qui crée le sel de chaque jour, envoie les rapports par e-mail et supprime les visites au-delà de la durée de conservation choisie, donc gardez le cron en marche, comme la plupart des sites Drupal le font déjà. Quand la vérification n’a pas tourné depuis plus d’un jour, la page de réglages le signale.
Adresses des visiteurs
Runlight compte les visiteurs avec un hachage quotidien de leur adresse, et limite la fréquence d’envoi d’une même adresse. Il prend l’adresse que Drupal détermine pour chaque requête, qui est celle de la connexion sauf si settings.php nomme les proxys placés devant le site, donc aucun visiteur ne peut en choisir une avec un en-tête. Derrière un répartiteur de charge, un CDN ou le proxy d’un hébergeur, déclarez-les à Drupal comme pour n’importe quel autre module.
php
$settings['reverse_proxy'] = TRUE;
$settings['reverse_proxy_addresses'] = ['10.0.0.2'];Les compteurs par adresse, et la clé quotidienne avec laquelle elles sont hachées, vont dans le cache de Drupal, dans deux entrées remplacées chaque minute et chaque jour.
Comptage
Dans les réglages du module, Count clicks on links to other sites enregistre chaque clic sur un lien vers un autre site comme un événement nommé Outbound link, et Count file downloads enregistre chaque clic sur un lien vers un fichier, comme un PDF ou un zip, comme un événement nommé File download. Les deux sont activés tant que vous ne les désactivez pas.
Se connecter à un Runlight que vous faites tourner ailleurs
- Installez et activez le module comme ci-dessus.
- Sur l’écran de configuration, sous Connect to a Runlight you run elsewhere, saisissez l’adresse à laquelle répond votre Runlight, par exemple
https://stats.example.compour le serveur autonome ouhttps://example.com/runlightpour une application dans laquelle Runlight est monté. Runlight l’affiche dans Réglages, Installation, sous Adresse de Runlight. - Cliquez sur Connect. Votre Runlight vous demande de vous connecter si ce n’est pas déjà fait, puis d’autoriser la connexion pour le site qui compte ce domaine. Si aucun site ne le compte encore, il propose d’en ajouter un.
- Cliquez sur Allow. Runlight vous renvoie vers Drupal avec tous les réglages remplis, et Rapports, Runlight affiche les chiffres de ce site.
La connexion donne deux clés au module. La clé des agents signale les agents IA qui lisent vos pages, et elle ne peut signaler que les requêtes de ce seul site, donc elle ne peut ni lire vos statistiques ni écrire dans un autre site. La clé du tableau de bord affiche le tableau de bord de ce site dans l’administration, en lecture seule, donc traitez-la comme un mot de passe. La clé du tableau de bord apparaît dans Runlight dans Réglages, API et IA, où la supprimer arrête le tableau de bord dans Drupal.
La connexion demande que l’administration soit en HTTPS, ou sur localhost pendant vos essais, puisque Runlight ne renvoie les gens que vers de telles adresses. Dans une application dans laquelle Runlight est monté, le site doit déjà figurer dans hostnames (voir Configuration), parce que les sites y sont définis dans le code.
Saisir les réglages à la main
Chaque réglage du module a son équivalent dans Runlight, dans Réglages, Installation, section WordPress, Drupal et Craft, avec un bouton pour le copier. Copiez Adresse de Runlight, Clé des agents et Clé du tableau de bord dans les champs Runlight address, Agents key et Dashboard key du module, puis enregistrez. Runlight n’affiche la clé du tableau de bord qu’une seule fois, donc créez-en une nouvelle si vous la perdez. Site id n’est nécessaire que si ce Runlight ne peut pas reconnaître ce site à son domaine. À l’enregistrement, la page vérifie que l’adresse répond.
Clés et environnements
L’endroit où tourne Runlight, son adresse, l’identifiant du site et les deux clés appartiennent à un seul environnement, donc le module les garde dans l’état de Drupal, que drush config:export laisse de côté. Ils n’atteignent jamais votre dépôt, et importer la configuration ne fait jamais pointer un environnement vers le Runlight d’un autre. Ce qu’il compte, comme les liens sortants et les téléchargements, reste dans la configuration et s’exporte comme d’habitude. Les valeurs qu’une version antérieure du module enregistrait dans la configuration restent valables jusqu’au prochain enregistrement des réglages, qui les déplace dans l’état.
Pour définir l’une d’elles dans le code, mettez-la dans settings.php, qui l’emporte sur la page de réglages.
php
$config['runlight.settings']['address'] = 'https://stats.example.com';
$config['runlight.settings']['observe_key'] = getenv('RUNLIGHT_AGENTS_KEY');
$config['runlight.settings']['dashboard_key'] = getenv('RUNLIGHT_DASHBOARD_KEY');Rapports par e-mail
Avec Runlight dans Drupal, ses rapports par e-mail et ses e-mails de test passent par le système d’envoi de Drupal quand le site en a un configuré au-delà de la fonction mail() de PHP, comme le module SMTP, Symfony Mailer ou l’envoi du cœur avec une adresse SMTP. Ils partent de l’adresse e-mail du site, au nom du site, et Réglages, Service d’e-mail dans le tableau de bord indique quel système les envoie. Sans cela, le tableau de bord vous demande plutôt d’y configurer un service d’e-mail. Vous pouvez aussi choisir un autre service pendant que l’envoi de Drupal est configuré, et revenir plus tard à l’envoi par Drupal au même endroit. Après une mise à jour du module, reconstruisez les caches de Drupal (drush cr) pour qu’il trouve le hook qui construit ces e-mails.
Le tableau de bord dans l’administration
Avec Runlight dans Drupal, Rapports, Runlight affiche le tableau de bord complet, le même que sur /runlight, avec ses réglages, ses objectifs et ses liens courts. Seules les pages de votre propre site peuvent l’afficher dans un cadre.
Avec un Runlight ailleurs et une clé du tableau de bord, la page Rapports, Runlight affiche le tableau de bord de ce site dans la même vue en lecture seule qu’un lien de partage, avec ses rapports et ses périodes, sans aucun des réglages, liens courts, personnes ou autres sites de Runlight. Le bouton Open in Runlight ouvre le tableau de bord complet dans votre propre Runlight.
L’adresse depuis laquelle l’administration est servie doit figurer parmi les domaines du site dans Runlight, puisque seule une page d’administration sur l’un d’eux peut afficher le tableau de bord. La connexion s’en charge. Un www. en tête ne change rien.
La clé n’atteint jamais le navigateur. Chaque fois qu’un administrateur ouvre la page, le serveur du module envoie la clé et l’origine de l’administration à Runlight, et reçoit en retour un ticket qui ouvre le tableau de bord une seule fois, dans les cinq minutes. La page charge le tableau de bord depuis votre Runlight dans un cadre que seule cette administration peut afficher. Le cadre garde sa session dans la page pendant une heure, sans cookies, donc les navigateurs qui bloquent les cookies dans les cadres l’affichent quand même. Une fois l’heure passée, le cadre le signale et recharge la page quand on le lui demande. Supprimer la clé dans Réglages, API et IA de Runlight l’arrête aussitôt, avec toutes les sessions ouvertes. Seules les personnes qui ont la permission Administer Runlight ou View Runlight voient la page. Votre Runlight doit être servi en HTTPS quand l’administration l’est, sinon le navigateur refuse le cadre.
Quand Gin est le thème d’administration, le cadre suit son réglage de mode sombre. Avec Claro, il reste clair.