Sobre el proyecto
Laravel Metrics Plausible es una biblioteca de PHP que envuelve la API v2 de Plausible Analytics Stats, proporcionando una interfaz fluida y nativa de Laravel para recuperar y gestionar datos analíticos.
Características principales
- Recuperar totales agregados (visitantes, páginas vistas, tasa de rebote, etc.)
- Consultar datos de series temporales con rangos de fechas y dimensiones personalizadas (por hora, día, mes)
- Obtener desgloses por páginas, páginas de entrada/salida, fuentes, canales, parámetros UTM, países, regiones, ciudades, dispositivos, navegadores y sistemas operativos
- Acceder a conversiones de objetivos, eventos personalizados y conteo de visitantes en tiempo real
- Gestionar sitios y objetivos de Plausible (listar, crear, eliminar)
- Construir consultas personalizadas mediante un generador de consultas que refleja la carga útil de la API
- Maneja la autenticación, límites de tasa y errores genéricos de la API con excepciones específicas
- Funciona tanto con Plausible Cloud como con la edición comunitaria autohospedada
- Configuración almacenada en la base de datos mediante spatie/laravel-settings, eliminando la necesidad de archivos de configuración
Instalación
1. Añadir el paquete: composer require jeffersongoncalves/laravel-metrics-plausible
2. Ejecutar migraciones para crear la tabla de configuración: php artisan migrate
Configuración
Tras la migración, las variables de entorno alimentan la configuración:
PLAUSIBLE_API_KEY – Clave de API desde Plausible Settings → API Keys
PLAUSIBLE_SITE_ID – Dominio del sitio (ej. example.com)
PLAUSIBLE_BASE_URL – URL base de Plausible (por defecto https://plausible.io, cambiar para autohospedado)
Las configuraciones también pueden actualizarse mediante programación a través de la clase PlausibleSettings.
Resumen de uso
Todas las interacciones se realizan a través de la fachada Plausible.
Totales agregados:
$stats = Plausible::aggregate();
$stats->visitors(); // 1234
$stats->pageviews(); // 4321
Series temporales:
$rows = Plausible::timeseries(DateRange::Last30Days, Dimension::TimeDay);
foreach ($rows as $row) {
echo $row->label . ': ' . $row->visitors();
}
Los desgloses (páginas, fuentes, países, dispositivos, etc.) están disponibles mediante métodos dedicados como Plausible::pages(), Plausible::countries(), Plausible::devices().
Visitantes en tiempo real:
$visitors = Plausible::realtimeVisitors();
Consultas personalizadas:
$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);
Gestión de sitios:
Plausible::sites();
Plausible::createSite('example.com', 'America/Sao_Paulo');
Plausible::deleteSite('example.com');
Gestión de objetivos:
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.
Gestión de errores
- AuthenticationException: clave API o ID de sitio faltante/inválido, o respuesta 403.
- RateLimitException: respuesta HTTP 429.
- PlausibleException: fallos genéricos de la API (clase base para los anteriores).
Pruebas y desarrollo
Ejecute el conjunto de pruebas con composer test, formatee el código con composer format y realice análisis estático con composer analyse.
Licencia
Distribuido bajo la Licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.