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 : Téléverser l’add-on
Dans le panneau d’administration, allez dans Admin → Extensions → Add-ons et cliquez sur le bouton Télécharger un add-on. Sélectionnez le fichier ZIP de l’add-on : le système le décompresse automatiquement et l’add-on apparaît dans la liste des add-ons installés.
Étape 2 : Activer l’add-on
Repérez Statistiques du site dans la liste et cliquez sur Activer. Ses migrations, ses seeders (le cas échéant) et ses permissions sont mis en place automatiquement.
Étape 3 : Configurer
Naviguez vers Admin → Statistiques → Paramètres pour configurer les visiteurs suivis, la durée de rétention des données et les règles d’exclusion. Voir Configuration.
Code d’achat (clé de licence)
Statistiques du site est vendu comme un produit séparé, il possède donc son propre code d’achat (clé de licence), distinct du code d’achat de l’application principale et de celui de chaque autre add-on. Il vous est demandé lorsque vous activez Statistiques du site dans Panneau d’administration → Add-ons.
Nos produits sont vendus sur trois plateformes. La façon dont vous recevez un code d’achat dépend de l’endroit où vous avez acheté le produit.
| Plateforme / Marketplace | Comment obtenir le code d’achat | Où le retrouver |
|---|---|---|
| Boutique bedigit.com Achat sur le site (Shop) |
Généré automatiquement lorsque la commande est payée, puis envoyé par e-mail, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. | Mon compte → Mes licences sur bedigit.com |
| Gumroad | Créé dès que Gumroad nous notifie la vente, puis envoyé dans un e-mail séparé, en plus du reçu Gumroad. | L’e-mail de licence, votre Bibliothèque Gumroad et Mon compte → Mes licences sur bedigit.com |
| Envato Market CodeCanyon |
Délivré par Envato, pas par nous, et jamais envoyé par e-mail : vous le téléchargez vous-même depuis votre compte Envato. | Compte Envato → Downloads → License certificate & purchase code |
1. Boutique bedigit.com (achat sur le site)
- Dès que le statut de paiement de la commande devient Payée, une clé de licence est générée automatiquement pour chaque article sous licence de la commande (une clé par unité achetée : acheter 3 unités donne 3 clés distinctes).
- Elle est envoyée par e-mail à l’adresse utilisée pour la commande, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
- La clé reste disponible dans votre compte sous Mon compte → Mes licences. Les clés sont masquées dans la liste ; ouvrez la page de détail de la licence pour afficher et copier la clé complète, voir les domaines sur lesquels elle est activée, et désactiver un domaine pour libérer un emplacement d’activation.
- La facture correspondante se trouve sous Mon compte → Mes commandes.
2. Gumroad
- Un achat sur Gumroad produit deux e-mails distincts : le reçu Gumroad (envoyé par Gumroad, donnant accès aux fichiers) et un e-mail de clé de licence (envoyé par bedigit.com) qui contient votre code d’achat.
- L’e-mail de clé de licence est généré dès que Gumroad nous notifie la vente, il arrive donc normalement quelques secondes après le paiement. Ici aussi, vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
- Lorsque le produit Gumroad utilise la fonctionnalité de clés de licence propre à Gumroad, la même clé apparaît aussi dans votre reçu Gumroad et sous Bibliothèque → votre achat sur gumroad.com.
- Utilisez la même adresse e-mail sur bedigit.com que sur Gumroad : vos clés sont alors liées automatiquement à votre compte et listées sous Mon compte → Mes licences, même si vous vous inscrivez après l’achat. Vous pouvez aussi ajouter une clé Gumroad manuellement depuis Mon compte → Mes licences Gumroad.
3. Envato Market (CodeCanyon)
- Les codes d’achat Envato sont délivrés et fournis par Envato Market, jamais envoyés par e-mail par nous, il n’y a donc rien à chercher dans votre dossier de spam : vous récupérez le code depuis votre compte Envato.
- Connectez-vous à votre compte Envato / CodeCanyon, ouvrez la page Downloads, trouvez l’article et choisissez License certificate & purchase code dans le menu déroulant Download. Le code est inscrit dans ce certificat.
- Un code d’achat Envato ressemble à
12345678-90ab-cdef-1234-567890abcdef(8-4-4-4-12 caractères). Il ne change jamais, et le renouvellement du support de l’article n’en délivre pas de nouveau. - Article officiel Envato : Where Is My Purchase Code?
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 du suivi les administrateurs connectés. | 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 d’administration) ont toujours priorité sur les valeurs du fichier de configuration.
Admin : tableau de bord de vue d’ensemble
La page de vue d’ensemble (Statistiques → Vue d’ensemble) 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 de vue d’ensemble
La page de vue d’ensemble complète comprend :
- Cartes récapitulatives : Total des pages 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
- Plateformes principales : 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 de la section Mots-clés :
- Termes UTM : affiche toutes les valeurs
utm_termsuivies avec les compteurs de visites, les sources et les pages d’atterrissage - Campagnes UTM : affiche toutes les valeurs
utm_campaignsuivies avec les compteurs de visites, les sources et les supports
La page de vue d’ensemble 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 du pays : résoudre les IP en pays via GeoIP
- Exclure les bots et robots : filtrer les robots et bots connus
- Exclure les administrateurs : ne pas suivre les administrateurs 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
Il y a deux façons de mettre cet add-on à jour : depuis le panneau d’administration (recommandé) ou en remplaçant les fichiers manuellement.
Méthode 1 : Téléversement depuis le panneau d’administration (recommandé)
- Téléchargez le dernier fichier
.zipde cet add-on. - Allez dans Panneau d’administration → Add-ons et cliquez sur le bouton Téléverser.
- Sélectionnez le fichier
.zipou glissez-le dans la zone de téléversement. - Une demande de confirmation affiche le numéro de version actuel et le nouveau. Cliquez sur Remplacer pour continuer.
- Allez dans Panneau d’administration → Mise à jour du système (
/admin/update) pour appliquer les migrations de base de données en attente.
Méthode 2 : Remplacement manuel des fichiers
Étape 1 : Remplacer les fichiers
Remplacez le répertoire de l’add-on par la nouvelle version.
Étape 2 : Exécuter les migrations
php artisan migrate
Les migrations en attente ne s’exécutent qu’une seule fois : la commande peut être relancée sans risque.
Étape 3 : Vider les caches
php artisan config:clear
php artisan route:clear
php artisan view:clear
Étape 4 : Vérifier
Visitez Statistiques → Vue d’ensemble 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ésinstallation
Éteindre un add-on sans rien perdre, c’est le désactiver : allez dans Panneau d’administration → Add-ons, trouvez Site Statistics et cliquez sur Désactiver.
- Ses routes, ses vues, ses entrées de menu d’administration et ses permissions cessent d’être enregistrées, et ses pages publiques ne répondent plus.
- Ses tables de base de données et toutes les données qu’elles contiennent sont conservées, et ses fichiers restent dans
extensions/addons/stats/. Rien n’est supprimé. - Le code d’achat enregistré lors de l’activation est conservé lui aussi : réactiver l’add-on ne le redemande pas.
- La désactivation est refusée tant qu’un autre add-on actif dépend de celui-ci : désactivez d’abord cet add-on.
Cliquez sur Activer sur la même carte pour le rallumer. Les migrations en attente sont rejouées, les assets republiés, et l’add-on reprend exactement là où il s’était arrêté.
Suppression
La suppression est définitive et détruit les données de l’add-on. Le bouton Supprimer n’apparaît que sur un add-on désactivé : la suppression se fait donc toujours en deux temps :
- Désactivez Site Statistics (voir Désinstallation).
- Cliquez sur Supprimer sur sa carte et confirmez la demande.
Le panneau d’administration, en une seule passe :
- exécute le hook de désinstallation de l’add-on, s’il en fournit un, tant que son code est encore sur le disque ;
- révoque les permissions déclarées dans son
addon.json; - annule ses migrations, ce qui supprime ses tables de base de données et toutes les lignes qu’elles contiennent, et purge ses entrées de la table
migrations, afin qu’une réinstallation ultérieure reparte de zéro ; - supprime ses assets publiés :
public/addons/stats/,public/vendor/stats/etstorage/app/public/addons/stats/; - supprime le dossier de l’add-on
extensions/addons/stats/; - supprime sa ligne dans la table
addons(le code d’achat enregistré disparaît avec elle) et vide le cache de l’application.
La suppression est refusée, avec un message explicatif et avant toute destruction, lorsque l’add-on est encore actif, lorsqu’un autre add-on actif en dépend, ou lorsque l’utilisateur du serveur web (PHP) ne peut pas supprimer extensions/addons/stats/. Dans ce dernier cas, donnez à cet utilisateur le droit d’écriture sur le dossier et sur son parent, puis réessayez.
Supprimer le dossier en FTP ou en SSH n’est pas équivalent : les tables de l’add-on, ses entrées dans la table migrations et sa ligne addons restent en place, et sa carte reste dans la liste. Utilisez plutôt Supprimer dans le panneau d’administration.
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’administrateur, 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.
Auditez dans la table
stats_page_viewsla colonneis_bot.
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.
Statistiques du site v1.0.0 : fait partie de la plateforme CMS Larapen.
© BeDigit. Tous droits réservés.