Statistiques de site respectueuses de la vie privée pour votre site LaraClassifier / JobClass. 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 du front-end via un middleware. Aucune instrumentation manuelle requise.

Visiteurs uniques

Suivi des visiteurs uniques respectueux de la vie privée grâce à des empreintes hachées IP + User-Agent. Aucun cookie nécessaire.

Données géographiques

Résolvez les adresses IP des visiteurs en pays grâce à la bibliothèque GeoIP du cœur, avec des pilotes interchangeables.

Sources de trafic

Suivez les domaines et URL référents pour comprendre d'où provient votre trafic.

Navigateur & plateforme

L'analyseur de User-Agent intégré détecte le navigateur, la plateforme (OS) et le type d'appareil (ordinateur/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

Indicateurs de trafic en un coup d'œil, injectés directement dans le tableau de bord d'administration 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 l'attention.

  • Voyez quelles pages du portfolio obtiennent le plus de vues et depuis quels pays.
  • Identifiez les principaux domaines référents qui génèrent 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 leurs performances 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 afin d'optimiser la compatibilité.
  • Utilisez la répartition par type d'appareil (ordinateur, mobile ou tablette) pour prioriser vos efforts de conception responsive.

Organisation soucieuse de la vie privée

Vous avez besoin de statistiques de base sans intégrer de scripts de suivi tiers ni déposer de cookies.

  • Toutes les données restent sur votre propre serveur : aucun appel d'API externe pour le suivi (GeoIP est facultatif).
  • L'unicité d'un visiteur est déterminée via une empreinte hachée, et non par des cookies ou des identifiants persistants.
  • La rétention des données configurable purge automatiquement les anciens enregistrements.

Prérequis

  • LaraClassifier / JobClass v19.0.0 ou ultérieur
  • PHP 8.3+
  • Le planificateur Laravel (la tâche cron du site) en fonctionnement, pour la purge nocturne des données et l'actualisation hebdomadaire des IP des robots
Aucune dépendance externe : l'add-on fonctionne de manière entièrement autonome. La détection du pays par GeoIP utilise la bibliothèque GeoIP déjà incluse dans le cœur de l'application.

Installation

Étape 1 : Téléverser l'add-on

Allez dans Panneau d'administration → Extensions → Add-ons, cliquez sur Téléverser un add-on et déposez le fichier .zip de l'add-on dans la zone de téléversement (50 Mo maximum). L'archive est extraite dans extensions/addons/stats/ et Site Statistics apparaît dans la liste, désactivé.

Impossible de téléverser depuis le navigateur ? Décompressez l'archive sur votre ordinateur et copiez le dossier de l'add-on dans extensions/addons/stats/ par FTP ou SSH : son fichier addon.json doit se trouver directement dans ce dossier. Ouvrez ensuite Panneau d'administration → Extensions → Add-ons. La page analyse extensions/addons/ à chaque chargement : l'add-on est donc listé immédiatement (le bouton Synchroniser lance la même analyse à la demande).

Étape 2 : Activer l'add-on

Cliquez sur Activer sur la carte Site Statistics. C'est un add-on payant : une fenêtre demande son code d'achat, qui est vérifié avant toute autre opération. Un code invalide est refusé dans la fenêtre et rien n'est modifié.

Une fois le code accepté, l'activation se fait en une seule passe : elle crée les tables de base de données de l'add-on (ses migrations), enregistre ses permissions, exécute ses seeders et publie ses assets publics. Rechargez la page pour voir sa nouvelle entrée dans la section Add-ons de la barre latérale d'administration.

Étape 3 : Configurer

Ouvrez Panneau d'administration → Statistiques depuis la section Add-ons de la barre latérale et configurez l'add-on : voir Configuration.

Code d'achat (clé de licence)

Site Statistics est vendu comme un produit distinct : il possède donc son propre code d'achat (clé de licence) : différent du code d'achat de l'application principale et de celui de chaque autre add-on. Il vous est demandé lorsque vous activez Site Statistics dans Panneau d'administration → Extensions → Add-ons.

Nos produits sont vendus sur trois plateformes. La manière 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 (Boutique)
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, et non 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
Vérifiez votre dossier de spam. Pour les achats effectués sur la Boutique bedigit.com comme sur Gumroad, le code d'achat est envoyé par e-mail. Les e-mails de licence automatisés sont très souvent filtrés : si le message n'est pas dans votre boîte de réception, regardez dans votre dossier spam / courrier indésirable avant de contacter le support, et ajoutez notre adresse d'expédition à vos contacts ou à votre liste d'autorisation.

1. Boutique bedigit.com (achat sur le site)

  • Dès que le statut de paiement de la commande passe à 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 : l'achat de 3 unités donne 3 clés distinctes).
  • Elle est envoyée à l'adresse e-mail 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 révéler 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 génère 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. Là encore, 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 nos soins, 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, repérez l'article, puis 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 génère pas de nouveau.
  • Article officiel Envato : Where Is My Purchase Code?
Vous avez perdu votre code d'achat ? Recherchez dans votre boîte mail (dossier de spam inclus) les termes “licence” ou “code d'achat”, puis consultez Mon compte → Mes licences sur bedigit.com pour les achats Boutique et Gumroad, ou Downloads → License certificate sur Envato. S'il est toujours introuvable, ouvrez un ticket sur notre Centre d'aide en indiquant votre numéro de commande (Boutique), l'identifiant de vente Gumroad ou l'e-mail de l'acheteur (Gumroad), ou votre nom d'utilisateur Envato et le nom de l'article (Envato).

Configuration

Tous les paramètres sont gérés dans Panneau d'administration → Statistiques → Paramètres (section Add-ons de la barre latérale) et enregistrés dans la table settings sous les clés ci-dessous. Une clé jamais enregistrée reprend la valeur par défaut du fichier config/stats.php de l'add-on.

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 de pages vues. Les enregistrements plus anciens sont purgés automatiquement chaque nuit à 3h00 (stats:purge). Définissez 0 pour conserver les données indéfiniment. 90
stats_exclude_bots Tenir le trafic des robots détectés à l'écart des rapports. La détection combine les User-Agents de robots connus, les plages IP publiées des moteurs de recherche (flux Google et Bing actualisés chaque semaine) et les contrôles ci-dessous. true
stats_store_bots Conserver les visites des robots en base, marquées avec la raison de leur détection, pour que la page des paramètres affiche la part filtrée. Elles n'apparaissent jamais dans les rapports. Désactivé, elles sont écartées dès leur arrivée. true
stats_bot_detect_fake_browser Signaler les clients qui envoient un User-Agent de vrai navigateur sans les en-têtes que ce navigateur envoie toujours (Sec-Fetch-*, Accept-Language, Accept). true
stats_bot_detect_datacenter Signaler les visites provenant des réseaux des fournisseurs de cloud et d'hébergement. true
stats_bot_extra_ip_ranges Réseaux supplémentaires à traiter comme trafic de centre de données, une plage CIDR (ou une IP seule) par ligne. AWS, Google Cloud et Azure ne sont pas filtrés par défaut. (vide)
stats_exclude_admins Exclure du suivi les utilisateurs administrateurs connectés. true
stats_exclude_my_ip Ne pas suivre les visites provenant de l'adresse IP que vous utilisez au moment d'enregistrer la page des paramètres. false
stats_exclude_ips Adresses IP (IPv4 ou IPv6) dont les visites ne sont jamais suivies, une par ligne. (vide)
stats_track_unique Suivre les visiteurs uniques à l'aide d'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 et en villes grâce au pilote GeoIP choisi dans Panneau d'administration → Configuration → Paramètres → Localisation. La base MaxMind sert de solution de repli lorsque son fichier est présent sur le serveur. true
stats_per_page Nombre de lignes affichées par page dans les tableaux de statistiques de l'administration (10, 15, 25, 50 ou 100). 25
stats_utm_tracking_enabled Activer la capture automatique des paramètres UTM (source, medium, campaign, term, content) des URL entrantes. true
Fichier de configuration : le fichier config/stats.php fournit les valeurs par défaut. Les paramètres en base de données (enregistrés via le panneau d'administration) ont toujours la priorité sur les valeurs du fichier de configuration.

Variables d'environnement

L'enregistrement d'une page vue est confié à une tâche en file d'attente exécutée après l'envoi de la réponse. Deux clés .env optionnelles déterminent où va cette tâche :

  • STATS_QUEUE_CONNECTION : la connexion de file d'attente à utiliser (par défaut : la connexion par défaut de l'application). Avec database ou redis et un worker de file d'attente actif, les écritures quittent entièrement le processus web.
  • STATS_QUEUE_NAME : le nom de la file (par défaut : default).

Admin : Tableau de bord Vue d'ensemble

La page Vue d'ensemble (Statistiques → Vue d'ensemble) offre un aperçu complet du trafic de votre site. Toutes les vues acceptent un paramètre de requête ?period= pour changer la plage de temps.

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é
7d7 derniers jours
30d30 derniers jours (par défaut)
90d90 derniers jours
365d365 derniers jours

Widget du tableau de bord

Un widget de synthèse du trafic est injecté automatiquement dans le tableau de bord principal de l'administration. Il affiche :

  • Vues du jour : nombre total de 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 : nombre total de vues pour la semaine en cours
  • Vues du mois : nombre total de vues pour le mois en cours
  • Indicateur de tendance : variation en pourcentage par rapport à la veille
  • Mini graphique : graphique du trafic sur 30 jours (ordinateur) / sur 7 jours (mobile)

Graphiques & indicateurs de la vue d'ensemble

La page complète de vue d'ensemble comprend :

  • Cartes de synthèse : Total des vues et Visiteurs uniques pour la période sélectionnée
  • Graphique du trafic : graphique à barres empilées montrant les vues et les visiteurs uniques au fil du temps
  • Top 10 des pages : pages les plus consultées avec leur nombre de vues
  • Top 10 des référents : principaux domaines référents générant du trafic
  • Top 10 des pays : pays classés par nombre de vues
  • Top 10 des navigateurs : répartition des navigateurs
  • Répartition par type d'appareil : proportions ordinateur, 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 Pages

Route : Statistiques → Pages

Un tableau paginé de tous les chemins de pages suivis, affichant :

  • Rang : position selon le nombre total de vues
  • Chemin : le chemin de l'URL (ex. /about, /portfolio/my-project)
  • Vues : nombre total de pages vues sur la période sélectionnée
  • Visiteurs uniques : nombre de visiteurs uniques pour cette page

Rapport Référents

Route : Statistiques → Référents

Un tableau paginé des domaines référents, affichant :

  • Rang : position selon le nombre total de hits
  • Domaine : le domaine référent (ex. google.com, twitter.com)
  • Hits : nombre de visites référées

Rapport Pays

Route : Statistiques → Pays

Un tableau paginé des pays des visiteurs, affichant :

  • Rang : position selon le nombre total de vues
  • Pays : badge du code pays ISO + nom du pays
  • Vues : nombre total de vues depuis ce pays
  • Visiteurs uniques : visiteurs uniques depuis ce pays
Remarque : les données par pays ne sont disponibles que lorsque stats_geoip_enabled est défini sur true et que la bibliothèque GeoIP du cœur est correctement configurée.

Rapport Villes

Route : Statistiques → Villes

Un tableau paginé des villes des visiteurs, avec un filtre par pays et une recherche de ville, affichant :

  • Rang : position selon le nombre total de vues
  • Ville : le nom de la ville
  • Pays : le pays auquel appartient la ville
  • Vues : nombre total de vues depuis cette ville
  • Visiteurs uniques : visiteurs uniques depuis cette ville

L'action Pages vues d'une ligne liste les pages visitées depuis cette ville. Comme le rapport Pays, il nécessite que la GeoIP soit activée et configurée.

Rapport Navigateurs

Route : Statistiques → Navigateurs

Un tableau paginé des navigateurs détectés, affichant :

  • Rang : position selon le nombre 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 : nombre total de vues pour ce navigateur

Rapport Plateformes

Route : Statistiques → Plateformes

Un tableau paginé des systèmes d'exploitation détectés, affichant :

  • Rang : position selon le nombre 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 : nombre total de vues pour cette plateforme

Admin : Mots-clés

La section Mots-clés (Statistiques → Mots-clés) vous éclaire sur la façon 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 campagne 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 du trafic (obligatoire pour que le suivi s'active) 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_term suivies avec le nombre de visites, les sources et les pages d'atterrissage
  • Campagnes UTM : affiche toutes les valeurs utm_campaign suivies avec le nombre de visites, les sources et les supports

La page de vue d'ensemble affiche également des cartes de synthèse avec le total des visites UTM et des visiteurs UTM uniques pour la période sélectionnée.

Fonctionnement : le suivi UTM est géré par le même middleware que celui qui enregistre les pages vues. Lorsque 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é.
Rétention des données : les données UTM suivent la même politique de rétention que les pages vues. Lorsque les anciens enregistrements de pages vues sont purgés, les enregistrements de visites UTM correspondants sont également supprimés.

Admin : Paramètres

La page des paramètres (Panneau d'administration → Statistiques → Paramètres) est organisée en quatre onglets :

Suivi

  • Activer le suivi : interrupteur principal pour démarrer/arrêter la collecte de données (les données existantes sont conservées)
  • Suivre les visiteurs uniques : compter les visiteurs uniques grâce à un hachage SHA-256 de l'IP + User-Agent (sans cookies)
  • Activer la détection du pays : résoudre les IP en pays avec le pilote GeoIP choisi dans Panneau d'administration → Configuration → Paramètres → Localisation

Confidentialité et filtrage

  • Exclure les bots et robots : tenir le trafic des robots détectés à l'écart des rapports. L'onglet indique la date de dernière actualisation des flux d'IP des robots Google/Bing, avec des boutons pour consulter les plages en cache et les actualiser immédiatement.
  • Conserver les visites robots : garder en base les visites filtrées, marquées avec leur raison. L'onglet affiche alors la part du trafic filtrée ces 7 derniers jours et les principales raisons.
  • Détecter les faux navigateurs et Ignorer le trafic des centres de données : les contrôles comportementaux décrits plus haut.
  • Plages d'adresses IP supplémentaires : plages CIDR supplémentaires à traiter comme trafic de centre de données, une par ligne.
  • Exclure les administrateurs : ne pas suivre les utilisateurs administrateurs connectés
  • Exclure mon adresse IP actuelle : ne pas suivre votre IP actuelle (relevée à l'enregistrement de la page)
  • Exclure des adresses IP : une adresse IPv4 ou IPv6 par ligne

Les contrôles de robots ne s'appliquent qu'au nouveau trafic. Pour reclasser les pages vues déjà enregistrées et reconstruire les rapports, exécutez php artisan stats:reclassify-bots --recompute --force sur le serveur (sans --force, la commande indique seulement ce qu'elle modifierait). L'onglet se termine par une Note de confidentialité rappelant que l'add-on ne charge aucun script tiers, ne dépose aucun cookie et hache les empreintes des visiteurs.

Gestion des données

  • Rétention des données (jours) : liste déroulante pour choisir la durée de conservation (Illimitée, 30, 60, 90, 180, 365 ou 730 jours)
  • Éléments par page : liste déroulante pour choisir la taille de la 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.

Mise à jour

Une mise à jour ne remplace que les fichiers de l'add-on. Ses tables et ses données, ses paramètres, son état d'activation et son code d'achat enregistré sont tous conservés : ne désactivez et ne supprimez pas l'add-on avant de le mettre à jour. Sauvegardez tout de même votre base de données au préalable.

Méthode 1 : Téléverser la nouvelle version (recommandé)

  1. Téléchargez le dernier fichier .zip de l'add-on.
  2. Allez dans Panneau d'administration → Extensions → Add-ons et cliquez sur Téléverser un add-on.
  3. Déposez le fichier .zip dans la zone de téléversement.
  4. Comme Site Statistics est déjà installé, une demande de confirmation affiche la version installée et la nouvelle. Cliquez sur Remplacer : le dossier extensions/addons/stats/ est remplacé par les nouveaux fichiers. Annuler la demande abandonne le téléversement.

Méthode 2 : Remplacer les fichiers à la main

  1. Par FTP ou SSH, supprimez le dossier extensions/addons/stats/ et envoyez le nouveau à sa place. Remplacez le dossier entier plutôt que de copier par-dessus, afin que les fichiers retirés par la nouvelle version ne subsistent pas.
  2. Ouvrez Panneau d'administration → Extensions → Add-ons : la page relit addon.json et la carte affiche le nouveau numéro de version.

Une fois les fichiers remplacés

Nouvelles tables ou colonnes. Lorsqu'une nouvelle version en ajoute, créez-les en exécutant php artisan migrate --force en SSH, ou sans SSH en cliquant sur Désactiver puis Activer sur la carte de l'add-on : l'activation exécute toutes les migrations en attente (et redemande le code d'achat). Vos données ne sont pas touchées dans les deux cas.

Si votre installation met en cache sa configuration ou ses routes (php artisan config:cache, route:cache), exécutez php artisan optimize:clear après la mise à jour.

Désinstallation

Éteindre un add-on sans rien perdre, c'est le désactiver : allez dans Panneau d'administration → Extensions → Add-ons, cliquez sur Désactiver sur la carte Site Statistics et confirmez.

  • L'add-on n'est plus chargé : ses routes, ses vues, son entrée dans la barre latérale d'administration 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é.
  • Ses permissions et son code d'achat enregistré restent en base de données. Seule la suppression les efface.
  • 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. Comme lors de la première activation, le code d'achat est redemandé et vérifié ; ensuite les migrations en attente sont exécuté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 :

  1. Désactivez Site Statistics (voir Désinstallation).
  2. 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/ et storage/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.
Cette action est irréversible. Sauvegardez votre base de données avant de supprimer un add-on dont les données peuvent encore vous servir : le réinstaller plus tard crée des tables vides, pas votre ancien contenu, et redemande le code d'achat.

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 : l'add-on est seulement éteint, et ses tables, ses entrées dans la table migrations et sa ligne addons restent en place. Utilisez plutôt Supprimer dans le panneau d'administration.

Dépannage

Aucune donnée n'est enregistrée

  • Vérifiez que stats_enabled est défini sur true dans Statistiques → Paramètres.
  • Vérifiez que l'add-on est activé dans Panneau d'administration → Extensions → Add-ons.
  • Si vous êtes connecté en tant qu'administrateur, vérifiez que stats_exclude_admins n'est pas activé (ou testez dans une fenêtre de navigation privée).
  • Vérifiez que votre adresse IP n'est pas exclue (Exclure mon adresse IP actuelle ou la liste Exclure des adresses IP).
  • La table stats_page_views doit exister : elle est créée à l'activation de l'add-on.
  • Si STATS_QUEUE_CONNECTION (ou la file par défaut de l'application) pointe vers une vraie file d'attente, un worker doit être actif pour que les pages vues soient écrites.

Les données par pays sont absentes ou affichent “Inconnu”

  • Vérifiez que stats_geoip_enabled est défini sur true.
  • Vérifiez que le pilote GeoIP est correctement configuré dans Panneau d'administration → Configuration → Paramètres → Localisation.
  • Les IP locales/privées (127.0.0.1, 192.168.x.x, etc.) ne peuvent pas être résolues et apparaîtront comme inconnues.
  • Si vous utilisez un pilote GeoIP basé sur une API, vérifiez que la clé d'API est valide et que les limites de requêtes n'ont pas été dépassées.
  • En production, envisagez d'utiliser le pilote MaxMind Database (maxmind_database) avec le fichier GeoLite2-City.mmdb pour des résolutions hors ligne fiables.

Le widget du tableau de bord ne s'affiche pas

  • Le widget est déclaré par l'add-on comme widget du tableau de bord : assurez-vous que l'add-on est actif.
  • Vérifiez que le widget n'a pas été masqué dans la personnalisation des widgets du tableau de bord.
  • Vérifiez que l'utilisateur possède la permission admin.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 passer le sélecteur de période sur 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_days si nécessaire.

Le trafic des bots gonfle les statistiques

  • Activez Exclure les bots et robots, Détecter les faux navigateurs et Ignorer le trafic des centres de données dans l'onglet Confidentialité et filtrage.
  • Ajoutez les réseaux des visiteurs indésirables restants dans Plages d'adresses IP supplémentaires.
  • Avec Conserver les visites robots activé, l'onglet affiche la part filtrée et ses principales raisons ; les colonnes is_bot et bot_reason de stats_page_views peuvent aussi être examinées.
  • Pour nettoyer le trafic enregistré avant l'activation d'un contrôle, exécutez php artisan stats:reclassify-bots --recompute --force.

Les données UTM ne sont pas enregistrées

  • Vérifiez que stats_utm_tracking_enabled est défini sur true dans Statistiques → Paramètres.
  • Le suivi UTM requiert au minimum le paramètre utm_source dans l'URL. Les URL sans utm_source sont 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 de l'espace de stockage de la base de données

  • Réduisez le paramètre stats_retention_days à une durée plus courte.
  • La tâche planifiée quotidienne à 3h00 purge automatiquement les anciennes données (stats:purge). Assurez-vous que la tâche cron du site exécute le planificateur Laravel (php artisan schedule:run chaque minute).
  • La table stats_page_views est celle qui grossit le plus vite. Les tables d'agrégats (stats_daily, etc.) sont beaucoup plus petites puisqu'elles stockent une ligne par dimension et par jour.

Préoccupations de performance en cas de trafic élevé

  • Le middleware confie les écritures à une tâche en file d'attente lancée après l'envoi de la réponse : il n'ajoute aucune latence au chargement des pages. Définissez STATS_QUEUE_CONNECTION sur database ou redis et faites tourner un worker pour sortir ce travail du processus web.
  • Toutes les requêtes de statistiques utilisent les tables d'agrégats dotées d'index appropriés, et non 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 afin d'éviter les appels d'API externes.

Site Statistics v1.0.5 : un add-on LaraClassifier / JobClass.

© BeDigit. Tous droits réservés.

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Besoin d'aide ? Créez un ticket de support

Créer un Ticket

Guides des add-ons

sept. 14, 2026