Toute la documentation

Démarrer

  1. 01Pour commencer
  2. 02Installation
  3. 03Suivi

Fonctionnalités

  1. 04Le tableau de bord
  2. 05Objectifs
  3. 06Liens courts
  4. 07Sources et agents IA
  5. 08Rapports par e-mail
  6. 09Vérification planifiée
  7. 10Interrogez votre IA

Référence

  1. 11Configuration
  2. 12API HTTP

Plateformes

  1. 13Serveur autonome
  2. 14PHP
  3. 15WordPress
  4. 16Drupal
  5. 17Craft CMS
  6. 18Python
  7. 19Rails
  8. 20Ruby
  9. 21Go
  10. 22Java
  11. 23.NET
  12. 24Elixir
  13. 25Rust

Confiance

  1. 26Confidentialité

Plateformes

Craft CMS

Mesurez l’audience d’un site Craft CMS avec Runlight, et voyez quand les agents IA le lisent.

L’extension Runlight fait tourner Runlight dans un site Craft 5, avec le tableau de bord sur /runlight et les chiffres dans sa propre base de données. Elle 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’elle fait

  • Elle ajoute le script de Runlight à chaque page publique. Sur une page à laquelle Craft 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.
  • Elle laisse de côté les visites des utilisateurs du panneau de contrôle (Control Panel), sauf si vous désactivez cette option. Les pages qu’ils voient sans le script ne sont jamais mises en cache, donc tous les autres l’ont bien.
  • Elle signale les agents IA comme ChatGPT et Claude quand ils récupèrent vos pages, une fois la connexion fermée, donc l’agent n’attend jamais le signalement.
  • Elle ajoute au panneau de contrôle un élément Runlight qui y affiche le tableau de bord de ce site.

L’installer

Installez l’extension en lançant composer require runlight/craft puis php craft plugin/install runlight, ou dans Settings, Plugins. Ses réglages 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 Craft site et elle commence à compter le site.

L’élément Runlight du panneau de contrôle 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. Les administrateurs, et les personnes qui ont la permission Manage Runlight, sont propriétaires de ce Runlight. Les personnes qui ont la permission See Runlight’s numbers voient le même tableau de bord sans rien pouvoir modifier. Les deux se trouvent dans Users, Permissions, Runlight, et on demande à tous les autres de se connecter à Craft. 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 Craft 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 Craft 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 et chaque serveur d’un site voit les mêmes. Ses tables portent le préfixe de tables de Craft, comme craft_rl_events, et Runlight les marque comme appartenant à cette installation. Si des tables portant ces noms existent déjà et n’appartiennent pas au Runlight de cette installation, comme celles d’un Runlight autonome dans la même base, il n’y touche pas et utilise un fichier SQLite. Sinon, les chiffres vont dans un fichier SQLite dans storage/runlight, que le web ne sert jamais, et qui demande pdo_sqlite côté PHP. Un fichier SQLite appartient à un seul serveur, donc sur plusieurs serveurs, ou chez un hébergeur qui remplace storage à chaque déploiement, utilisez une base de données dans laquelle Runlight peut garder ses chiffres.

Rien n’enregistre ce choix à côté des chiffres. Les tables de Runlight dans la base de Craft signifient la base de Craft, et un fichier SQLite signifie SQLite, donc le choix tient sur chaque serveur et à travers chaque déploiement. Le secret avec lequel Runlight signe les sessions, et scelle les clés que vous enregistrez dans son tableau de bord, vient du securityKey de Craft, donc il est lui aussi le même partout. Changer securityKey déconnecte tout le monde de Runlight, et les clés enregistrées dans son tableau de bord, comme celles d’un service d’e-mail, doivent être saisies à nouveau.

Désinstaller l’extension retire les tables de Runlight, chacune par son nom et seulement celles de cette installation, même quand storage/runlight a disparu, ainsi que son dossier.

Lieux et entretien

Le pays des visiteurs vient d’un en-tête quand un CDN comme Cloudflare en envoie un. Sinon, activez Locations dans les réglages de l’extension, et l’entretien télécharge une fois par mois la base de pays gratuite de DB-IP dans storage/runlight sur chaque serveur. L’entretien 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. Une visite du site le met en file d’attente au plus une fois par heure, et seulement si aucun entretien précédent n’attend encore. La file d’attente de Craft ne tourne que pendant que quelqu’un utilise le panneau de contrôle, sauf si un exécuteur de file d’attente est configuré, donc ajoutez php craft runlight/check au cron de votre serveur, toutes les heures. Quand l’entretien 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 Craft détermine pour chaque requête, qui suit les réglages trustedHosts et ipHeaders de Craft. Craft fait confiance aux en-têtes de proxy de n’importe quel hôte tant que vous n’avez pas nommé ceux qui se trouvent devant votre site, donc définissez trustedHosts dans config/general.php, ou CRAFT_TRUSTED_HOSTS, avec les adresses de votre répartiteur de charge ou de votre CDN, et aucun visiteur ne pourra choisir une adresse avec un en-tête.

Les compteurs par adresse, et la clé quotidienne avec laquelle elles sont hachées, vont dans le cache de Craft, dans deux entrées remplacées chaque minute et chaque jour.

Comptage

Dans les réglages de l’extension, 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

  1. Installez l’extension comme ci-dessus.
  2. 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.com pour le serveur autonome ou https://example.com/runlight pour une application dans laquelle Runlight est monté. Runlight l’affiche dans Réglages, Installation, sous Adresse de Runlight.
  3. 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.
  4. Cliquez sur Allow. Runlight vous renvoie vers Craft avec tous les réglages remplis, et l’élément Runlight du panneau de contrôle affiche les chiffres de ce site.

La connexion donne deux clés à l’extension. 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 le panneau de contrôle, 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 Craft.

La connexion demande que le panneau de contrôle 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.

La connexion écrit les clés dans le fichier .env de Craft, sous les noms RUNLIGHT_AGENTS_KEY et RUNLIGHT_DASHBOARD_KEY, et enregistre les réglages comme $RUNLIGHT_AGENTS_KEY et $RUNLIGHT_DASHBOARD_KEY, donc la configuration du projet nomme les variables et ne contient aucune clé. Chaque environnement définit alors les siennes. Quand .env ne peut pas être écrit, la connexion enregistre les clés dans les réglages eux-mêmes et explique comment les déplacer.

Saisir les réglages à la main

Chaque réglage de l’extension 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 de l’extension, puis enregistrez, ou mettez-les dans .env comme ci-dessus. 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. Une fois la page chargée, elle vérifie que l’adresse répond.

Chaque réglage peut nommer une variable d’environnement, comme $RUNLIGHT_URL. Si vous changez l’adresse, les clés enregistrées pour l’ancienne sont effacées, donc une clé n’est jamais envoyée à un autre Runlight. Saisissez-les à nouveau pour la nouvelle adresse, ou cliquez sur Connect. Comme pour toute extension Craft, chaque réglage peut aussi venir de config/runlight.php, et les valeurs qui s’y trouvent l’emportent sur le panneau de contrôle.

php

<?php
return [
    'address' => 'https://stats.example.com',
    'observeKey' => '$RUNLIGHT_AGENTS_KEY',
    'dashboardKey' => '$RUNLIGHT_DASHBOARD_KEY',
];

Rapports par e-mail

Avec Runlight dans Craft, ses rapports par e-mail et ses e-mails de test passent par le système d’envoi de Craft quand Settings, Email utilise un transport autre que Sendmail, comme SMTP ou l’extension d’un service d’e-mail. Ils partent de l’adresse e-mail système et du nom d’expéditeur de Craft, et Réglages, Service d’e-mail dans le tableau de bord indique quel transport les envoie. Avec Sendmail, 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 Craft est configuré, et revenir plus tard à l’envoi par Craft au même endroit.

Le tableau de bord dans le panneau de contrôle

Avec Runlight dans Craft, l’élément Runlight affiche le tableau de bord complet dans le panneau de contrôle, 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, donc quand le panneau de contrôle est servi depuis une autre adresse, définie avec baseCpUrl, l’élément ouvre plutôt le tableau de bord dans un nouvel onglet.

Avec un Runlight ailleurs et une clé du tableau de bord, l’élément Runlight affiche le tableau de bord de ce site dans le panneau de contrôle, 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 le panneau de contrôle est servi 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 de la page du tableau de bord. (Saisie en clair, elle apparaît bien dans le formulaire des réglages, que seuls les administrateurs voient, donc une variable d’environnement est préférable.) Chaque fois qu’un administrateur ouvre la page, le serveur de l’extension 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 accès à l’extension Runlight, administrateurs compris, voient la page. Votre Runlight doit être servi en HTTPS quand le panneau de contrôle l’est, sinon le navigateur refuse le cadre.

Cache statique

Les caches statiques comme Blitz servent les pages sans exécuter Craft, ou arrêtent Craft avant l’envoi de la page. Ces pages contiennent quand même le script, donc les visites sont comptées. Une page qu’un utilisateur du panneau de contrôle voit sans le script n’est jamais mise en cache, car l’extension demande à Blitz de ne pas la mettre en cache et envoie des en-têtes qui empêchent les autres caches de la stocker. Les requêtes d’agents IA sur les pages en cache ne sont pas signalées, parce que l’extension n’a jamais l’occasion de les voir.