Statistiques du site
Analyses de site respectueuses de la vie privée pour votre site Larapen. Suivez les pages vues, les visiteurs uniques, les référents, les pays, les navigateurs, les plateformes, les mots-clés de recherche et les campagnes marketing — sans scripts tiers ni cookies.
Suivi des pages vues
Enregistre automatiquement chaque visite de page front-end via un middleware. Aucune instrumentation manuelle requise.
Visiteurs uniques
Suivi des visiteurs uniques respectueux de la vie privée utilisant des empreintes hachées IP + User-Agent. Aucun cookie nécessaire.
Informations géographiques
Résolvez les IP des visiteurs en pays en utilisant la bibliothèque GeoIP du noyau avec des pilotes modulaires.
Sources de trafic
Suivez les domaines référents et les URL pour comprendre d’où vient votre trafic.
Navigateur & Plateforme
Analyseur User-Agent intégré détectant le navigateur, la plateforme OS et le type d’appareil (bureau/mobile/tablette).
Suivi des campagnes UTM
Capture automatiquement les paramètres UTM (source, medium, campaign, term, content) des URL entrantes.
Widget du tableau de bord
Métriques de trafic en un coup d’œil injectées directement dans le tableau de bord admin avec des graphiques de tendance.
Cas d’utilisation
Site portfolio ou d’agence
Vous gérez un site portfolio et souhaitez comprendre quels projets attirent le plus d’attention.
- Voyez quelles pages portfolio obtiennent le plus de vues et depuis quels pays.
- Identifiez les principaux domaines référents générant du trafic vers votre site.
- Suivez les tendances quotidiennes et hebdomadaires sans dépendre de Google Analytics ou d’autres outils tiers.
Site orienté contenu avec blog
Vous publiez des articles et souhaitez mesurer leur performance dans le temps.
- Comparez les pages vues sur différentes périodes (7 jours, 30 jours, 90 jours, 1 an).
- Identifiez les navigateurs et plateformes utilisés par votre audience pour optimiser la compatibilité.
- Utilisez la répartition par type d’appareil (bureau vs. mobile vs. tablette) pour prioriser les efforts de design responsive.
Organisation soucieuse de la vie privée
Vous avez besoin d’analyses basiques sans intégrer de scripts de suivi tiers ni définir de cookies.
- Toutes les données restent sur votre propre serveur : aucun appel API externe pour le suivi (GeoIP est optionnel).
- L’unicité des visiteurs est déterminée via une empreinte hachée, pas des cookies ou des identifiants persistants.
- La rétention configurable des données purge automatiquement les anciens enregistrements.
Prérequis
- Larapen CMS v1.0.0 ou ultérieur
- PHP 8.3+
- MySQL 8.0+
Installation
Étape 1 : Placer l’add-on
Copiez ou créez un lien symbolique du dossier stats dans votre répertoire Larapen « extensions/addons » :
Étape 2 : Activer l’add-on
Allez dans Admin → Add-ons → Add-ons installés et activez Statistiques du site.
Étape 3 : Exécuter les migrations
Cela crée 8 tables : stats_page_views, stats_daily, stats_referrers,
stats_countries, stats_browsers, stats_platforms,
stats_utm_visits et stats_utm_daily.
Étape 4 : Définir les permissions
L’add-on enregistre 3 permissions (voir Permissions). Assignez-les aux rôles admin via Admin → Utilisateurs → Rôles & Permissions.
Étape 5 : Configurer (optionnel)
Naviguez vers Admin → Statistiques → Paramètres pour ajuster les options de suivi, la rétention des données et les préférences d’affichage. Voir Configuration.
Configuration
Tous les paramètres sont gérés dans Admin → Statistiques → Paramètres (stockés dans la table settings,
groupe stats). Les valeurs par défaut proviennent de config/stats.php.
| Paramètre | Description | Par défaut |
|---|---|---|
stats_enabled |
Interrupteur principal pour activer ou désactiver le suivi des pages vues. Lorsqu’il est désactivé, aucune nouvelle donnée n’est collectée, mais les données existantes restent accessibles. | true |
stats_retention_days |
Nombre de jours de conservation des données brutes de pages vues. Les anciens enregistrements sont automatiquement purgés quotidiennement. Définir à 0 pour conserver les données indéfiniment. |
90 |
stats_exclude_bots |
Exclure les bots et robots connus (Googlebot, Bingbot, etc.) des statistiques. | true |
stats_exclude_admins |
Exclure les utilisateurs admin connectés du suivi. | true |
stats_track_unique |
Suivre les visiteurs uniques en utilisant un hachage SHA-256 de l’IP + User-Agent (respectueux de la vie privée, sans cookies). | true |
stats_geoip_enabled |
Résoudre les adresses IP des visiteurs en pays en utilisant la bibliothèque GeoIP du noyau. | true |
stats_per_page |
Nombre de lignes affichées par page dans les tableaux de statistiques admin. | 25 |
stats_utm_tracking_enabled |
Activer la capture automatique des paramètres UTM (source, medium, campaign, term, content) des URL entrantes. | true |
config/stats.php fournit les valeurs par défaut. Les paramètres de la base de données
(enregistrés via le panneau admin) ont toujours priorité sur les valeurs du fichier de configuration.
Admin : Tableau de bord d’aperçu
La page d’aperçu (Statistiques → Aperçu) fournit un instantané complet du trafic de votre site.
Toutes les vues acceptent un paramètre de requête ?period= pour changer la plage temporelle.
Sélecteur de période
Un bouton déroulant disponible sur toutes les pages de statistiques vous permet de basculer entre les périodes :
| Valeur | Libellé |
|---|---|
7d | 7 derniers jours |
30d | 30 derniers jours (par défaut) |
90d | 90 derniers jours |
365d | 365 derniers jours |
Widget du tableau de bord
Un widget récapitulatif du trafic est automatiquement injecté dans le tableau de bord admin principal. Il affiche :
- Vues du jour : total des pages vues pour la journée en cours
- Visiteurs uniques du jour : nombre de visiteurs uniques pour la journée en cours
- Vues de la semaine : total des vues pour la semaine en cours
- Vues du mois : total des vues pour le mois en cours
- Indicateur de tendance : variation en pourcentage par rapport à hier
- Mini graphique : graphique de trafic sur 30 jours (bureau) / 7 jours (mobile)
Graphiques & Métriques d’aperçu
La page d’aperçu complète comprend :
- Cartes récapitulatives : Total des vues et Visiteurs uniques pour la période sélectionnée
- Graphique de trafic : graphique à barres empilées montrant les vues vs. les visiteurs uniques dans le temps
- Top 10 des pages : pages les plus vues avec le nombre de vues
- Top 10 des référents : principaux domaines référents générant du trafic
- Top 10 des pays : pays par nombre de vues
- Top 10 des navigateurs : répartition des navigateurs
- Répartition par type d’appareil : proportions bureau, mobile et tablette affichées sous forme de barres de progression
- Principales plateformes : répartition des OS (Windows, macOS, Linux, Android, iOS, etc.)
Admin : Rapports
Chaque rapport fournit une vue dédiée et paginée pour une dimension de données spécifique. Tous les rapports
prennent en charge le sélecteur de période et respectent le paramètre stats_per_page.
Rapport des pages
Route : Statistiques → Pages
Un tableau paginé de tous les chemins de pages suivis affichant :
- Rang : position par total de vues
- Chemin : le chemin URL (ex.
/about,/portfolio/my-project) - Vues : total des pages vues dans la période sélectionnée
- Visiteurs uniques : nombre de visiteurs uniques pour cette page
Rapport des référents
Route : Statistiques → Référents
Un tableau paginé des domaines référents affichant :
- Rang : position par total de visites
- Domaine : le domaine référent (ex.
google.com,twitter.com) - Visites : nombre de visites par référencement
Rapport des pays
Route : Statistiques → Pays
Un tableau paginé des pays des visiteurs affichant :
- Rang : position par total de vues
- Pays : badge de code pays ISO + nom du pays
- Vues : total des vues depuis ce pays
- Visiteurs uniques : visiteurs uniques depuis ce pays
stats_geoip_enabled est défini sur true
et que la bibliothèque GeoIP du noyau est correctement configurée.
Rapport des navigateurs
Route : Statistiques → Navigateurs
Un tableau paginé des navigateurs détectés affichant :
- Rang : position par total de vues
- Navigateur : nom du navigateur avec icône (Chrome, Safari, Firefox, Edge, etc.)
- Part : pourcentage du total des vues, affiché sous forme de barre de progression
- Vues : total des vues pour ce navigateur
Rapport des plateformes
Route : Statistiques → Plateformes
Un tableau paginé des systèmes d’exploitation détectés affichant :
- Rang : position par total de vues
- Plateforme : nom de l’OS avec icône (Windows, macOS, Linux, Android, iOS, Chrome OS)
- Part : pourcentage du total des vues, affiché sous forme de barre de progression
- Vues : total des vues pour cette plateforme
Admin : Mots-clés
La section Mots-clés (Statistiques → Mots-clés) fournit un aperçu de la manière dont les visiteurs trouvent votre site grâce au suivi des paramètres UTM (campagnes marketing).
Suivi des paramètres UTM
Le suivi UTM capture automatiquement les paramètres de campagnes marketing des URL entrantes. Lorsqu’un visiteur arrive
via une URL contenant des paramètres UTM (ex. ?utm_source=newsletter&utm_campaign=spring_sale),
les données sont enregistrées et affichées dans la section Mots-clés.
Paramètres suivis
| Paramètre | Description | Exemple |
|---|---|---|
utm_source |
Source de trafic (obligatoire pour activer le suivi) | google, newsletter, facebook |
utm_medium |
Support marketing | cpc, email, social |
utm_campaign |
Nom de la campagne | spring_sale, product_launch |
utm_term |
Terme de recherche ou mot-clé | web+design, laravel+cms |
utm_content |
Variante de publicité ou de lien (pour les tests A/B) | banner_v1, sidebar_link |
Rapports
Les données UTM sont disponibles dans deux onglets dédiés dans la section Mots-clés :
- Termes UTM : affiche toutes les valeurs
utm_termsuivies avec les compteurs de visites, sources et pages d’atterrissage - Campagnes UTM : affiche toutes les valeurs
utm_campaignsuivies avec les compteurs de visites, sources et supports
La page d’aperçu affiche également des cartes récapitulatives avec le total des visites UTM et les visiteurs UTM uniques pour la période sélectionnée.
utm_source est présent dans l’URL, un enregistrement est créé dans la table stats_utm_visits
et les agrégats quotidiens sont mis à jour dans stats_utm_daily. Aucun cookie ni JavaScript n’est impliqué.
Admin : Paramètres
La page des paramètres (Statistiques → Paramètres) est organisée en quatre sections :
Options de suivi
Interrupteurs à bascule pour contrôler quelles données sont collectées :
- Activer le suivi : interrupteur principal pour démarrer/arrêter la collecte de données
- Suivre les visiteurs uniques : activer le suivi des visiteurs uniques basé sur l’empreinte SHA-256
- Activer la détection de pays : résoudre les IP en pays via GeoIP
- Exclure les bots : filtrer les robots et bots connus
- Exclure les utilisateurs admin : ne pas suivre les utilisateurs admin connectés
Gestion des données
- Rétention des données : liste déroulante pour sélectionner la période de rétention (Illimité, 30, 60, 90, 180, 365 ou 730 jours)
- Éléments par page : liste déroulante pour sélectionner la taille de pagination (10, 15, 25, 50 ou 100 éléments)
Suivi UTM
Interrupteur pour activer ou désactiver la capture automatique des paramètres UTM des URL entrantes. Lorsqu’il est activé,
le middleware de suivi extrait utm_source, utm_medium, utm_campaign,
utm_term et utm_content des URL des visiteurs.
Avis de confidentialité
Un encadré informatif rappelant aux administrateurs que l’add-on respecte la vie privée : aucun script tiers, aucun cookie, et toutes les empreintes de visiteurs sont hachées.
Mise à jour
Étape 1 : Remplacer les fichiers
Remplacez le répertoire de l’add-on par la nouvelle version.
Étape 2 : Exécuter les migrations
Étape 3 : Vider les caches
Étape 4 : Vérifier
Visitez Statistiques → Aperçu et confirmez que les données s’affichent correctement. Vérifiez la page des paramètres pour confirmer que votre configuration est préservée.
Dépannage
Aucune donnée n’est enregistrée
- Vérifiez que
stats_enabledest défini surtruedans Statistiques → Paramètres. - Vérifiez que l’add-on est activé dans Admin → Add-ons.
- Si vous êtes connecté en tant qu’admin, vérifiez que
stats_exclude_adminsn’est pas activé (ou testez dans une fenêtre de navigateur privée/incognito). - Assurez-vous que les migrations ont été exécutées (
php artisan migrate) : la tablestats_page_viewsdoit exister.
Les données de pays sont manquantes ou affichent « Inconnu »
- Vérifiez que
stats_geoip_enabledesttrue. - Vérifiez que le pilote GeoIP du noyau est correctement configuré dans Admin → Paramètres → GeoIP.
- Les IP locales/privées (127.0.0.1, 192.168.x.x, etc.) ne peuvent pas être résolues et afficheront « Inconnu ».
- Si vous utilisez un pilote GeoIP basé sur une API, vérifiez que la clé API est valide et n’a pas dépassé les limites de débit.
- Pour la production, envisagez d’utiliser le pilote MaxMind Database (
maxmind_database) avec le fichierGeoLite2-City.mmdbpour des recherches hors ligne fiables.
Le widget du tableau de bord ne s’affiche pas
- Le widget est injecté via un view composer. Assurez-vous que l’add-on est actif et que le ServiceProvider a démarré.
- Videz le cache des vues :
php artisan view:clear. - Vérifiez que l’utilisateur a la permission
stats.view.
Les pages de statistiques affichent « Aucune donnée disponible »
- Si l’add-on vient d’être installé, attendez qu’un peu de trafic front-end soit enregistré.
- Essayez de changer le sélecteur de période vers une plage plus large (ex. 90 jours ou 365 jours).
- Vérifiez si la rétention des données a purgé les anciens enregistrements : ajustez
stats_retention_dayssi nécessaire.
Le trafic des bots gonfle les statistiques
- Activez
stats_exclude_botsdans les paramètres. Cela filtre plus de 30 modèles de bots connus. - Notez que certains bots utilisent des chaînes User-Agent d’apparence légitime et peuvent ne pas être détectés.
Consultez la colonne
is_botde la tablestats_page_viewspour auditer.
Les données UTM ne sont pas enregistrées
- Vérifiez que
stats_utm_tracking_enabledest défini surtruedans Statistiques → Paramètres. - Le suivi UTM nécessite au minimum le paramètre
utm_sourcedans l’URL. Les URL sansutm_sourcesont ignorées. - Vérifiez que les URL contiennent des paramètres UTM valides :
?utm_source=test&utm_term=keyword. - Le suivi principal des statistiques doit également être activé (
stats_enabled) pour que le suivi UTM fonctionne.
Utilisation élevée du stockage de la base de données
- Réduisez le paramètre
stats_retention_daysà une période plus courte. - La tâche planifiée quotidienne à 3h00 purge automatiquement les anciennes données. Assurez-vous que votre planificateur Laravel
fonctionne :
php artisan schedule:work(ou configuré via cron). - La table
stats_page_viewscroît le plus rapidement. Les tables agrégées (stats_daily, etc.) sont beaucoup plus petites car elles stockent une ligne par dimension par jour.
Problèmes de performance avec un trafic élevé
- Le middleware traite de manière asynchrone après l’envoi de la réponse : il n’ajoute pas de latence aux chargements de pages.
- Toutes les requêtes statistiques utilisent des tables agrégées avec des index adéquats, pas la table brute
stats_page_views. - Pour les sites à très fort trafic, envisagez de réduire la rétention à 30 jours et d’utiliser le pilote GeoIP MaxMind hors ligne pour éviter les appels API externes.