À propos du projet
Laravel Metrics Plausible est une bibliothèque PHP qui enveloppe l'API v2 de Plausible Analytics, offrant une interface native Laravel fluide pour récupérer et gérer les données analytiques.
Fonctionnalités clés
- Récupération des totaux agrégés (visiteurs, pages vues, taux de rebond, etc.)
- Requêtes sur des séries temporelles avec plages de dates et dimensions personnalisées (horaire, quotidien, mensuel)
- Analyse détaillée par pages, pages d'entrée/sortie, sources, canaux, paramètres UTM, pays, régions, villes, appareils, navigateurs, systèmes d'exploitation
- Accès aux conversions d'objectifs, événements personnalisés et nombre de visiteurs en temps réel
- Gestion des sites et objectifs Plausible (lister, créer, supprimer)
- Construction de requêtes personnalisées via un générateur reflétant la charge utile de l'API
- Gestion de l'authentification, des limites de débit et des erreurs API génériques avec des exceptions spécifiques
- Compatible avec Plausible Cloud et l'édition communautaire auto-hébergée
- Configuration stockée en base de données via spatie/laravel-settings, éliminant le besoin de fichiers de configuration
Installation
1. Ajouter le package : composer require jeffersongoncalves/laravel-metrics-plausible
2. Exécuter les migrations pour créer la table des paramètres : php artisan migrate
Configuration
Après la migration, les variables d'environnement alimentent les paramètres :
PLAUSIBLE_API_KEY – Clé API depuis Plausible Settings → API Keys
PLAUSIBLE_SITE_ID – Domaine du site (ex: example.com)
PLAUSIBLE_BASE_URL – URL de base de Plausible (par défaut https://plausible.io, à modifier pour l'auto-hébergement)
Les paramètres peuvent également être mis à jour par programmation via la classe PlausibleSettings.
Aperçu de l'utilisation
Toutes les interactions s'effectuent via la façade Plausible.
Totaux agrégés :
$stats = Plausible::aggregate();
$stats->visitors(); // 1234
$stats->pageviews(); // 4321
Séries temporelles :
$rows = Plausible::timeseries(DateRange::Last30Days, Dimension::TimeDay);
foreach ($rows as $row) {
echo $row->label . ': ' . $row->visitors();
}
Les analyses détaillées (pages, sources, pays, appareils, etc.) sont disponibles via des méthodes dédiées telles que Plausible::pages(), Plausible::countries(), Plausible::devices().
Visiteurs en temps réel :
$visitors = Plausible::realtimeVisitors();
Requêtes personnalisées :
$query = Plausible::query()
->metrics(Metric::Visitors, Metric::Pageviews)
->dateRange(DateRange::Last7Days)
->dimensions(Dimension::Page)
->filter('is', Dimension::Country, ['BR', 'PT'])
->orderBy(Metric::Visitors, 'desc')
->limit(50);
$rows = Plausible::rows($query);
Gestion des sites :
Plausible::sites();
Plausible::createSite('example.com', 'America/Sao_Paulo');
Plausible::deleteSite('example.com');
Gestion des objectifs :
Plausible::goals();
Plausible::createEventGoal('Signup');
Plausible::deleteGoal(1);
Enums
Metric – Visitors, Visits, Pageviews, BounceRate, VisitDuration, Events, etc.
DateRange – Day, Last7Days, Last30Days, Last12Months, Year, All, etc.
Dimension – Page, Hostname, Source, Referrer, Device, Browser, Country, City, TimeHour, TimeDay, etc.
Gestion des erreurs
- AuthenticationException : clé API ou ID de site manquant/invalide, ou réponse 403.
- RateLimitException : réponse HTTP 429.
- PlausibleException : échecs API génériques (classe de base pour les précédentes).
Tests et développement
Exécutez la suite de tests avec composer test, formatez le code avec composer format et effectuez une analyse statique avec composer analyse.
Licence
Distribué sous la licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.