Об этом проекте

Laravel Metrics Plausible — это библиотека PHP, обворачивающая Plausible Analytics Stats API v2 и предоставляющая понятный, нативный для Laravel интерфейс для получения и управления аналитическими данными. Основные возможности - Получение агрегированных итоговых данных (посетители, просмотры страниц, показатель отказов и т. д.) - Запрос данных временных рядов с настраиваемыми диапазонами дат и измерениями (почасово, ежедневно, ежемесячно) - Детализация по страницам, страницам входа/выхода, источникам, каналам, UTM-параметрам, странам, регионам, городам, устройствам, браузерам и операционным системам - Доступ к конверсиям целей, кастомным событиям и количеству посетителей в реальном времени - Управление сайтами и целями Plausible (просмотр списка, создание, удаление) - Построение кастомных запросов с помощью query builder, который повторяет структуру API payload - Обработка аутентификации, ограничений частоты запросов (rate-limit) и общих ошибок API с помощью специальных исключений - Работа как с Plausible Cloud, так и с self-hosted Community Edition - Конфигурация хранится в базе данных с помощью spatie/laravel-settings, что исключает необходимость в конфигурационных файлах Установка 1. Добавьте пакет: composer require jeffersongoncalves/laravel-metrics-plausible 2. Запустите миграции для создания таблицы настроек: php artisan migrate Конфигурация После миграции переменные окружения заполняют настройки: PLAUSIBLE_API_KEY — API-ключ из Plausible Settings → API Keys PLAUSIBLE_SITE_ID — домен сайта (например, example.com) PLAUSIBLE_BASE_URL — базовый URL Plausible (по умолчанию https://plausible.io, измените для self-hosted) Настройки также можно обновить программно с помощью класса PlausibleSettings. Обзор использования Все взаимодействия выполняются через фасад Plausible. Агрегированные итоговые показатели: $stats = Plausible::aggregate(); $stats->visitors(); // 1234 $stats->pageviews(); // 4321 Временные ряды: $rows = Plausible::timeseries(DateRange::Last30Days, Dimension::TimeDay); foreach ($rows as $row) { echo $row->label . ': ' . $row->visitors(); } Детализация (страницы, источники, страны, устройства и т. д.) доступна через специальные методы, такие как Plausible::pages(), Plausible::countries(), Plausible::devices(). Посетители в реальном времени: $visitors = Plausible::realtimeVisitors(); Пользовательские запросы: $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); Управление сайтами: Plausible::sites(); Plausible::createSite('example.com', 'America/Sao_Paulo'); Plausible::deleteSite('example.com'); Управление целями: Plausible::goals(); Plausible::createEventGoal('Signup'); Plausible::deleteGoal(1); Перечисления (Enums) Metric — Visitors, Visits, Pageviews, BounceRate, VisitDuration, Events и т. д. DateRange — Day, Last7Days, Last30Days, Last12Months, Year, All и т. д. Dimension — Page, Hostname, Source, Referrer, Device, Browser, Country, City, TimeHour, TimeDay и т. д. Обработка ошибок - AuthenticationException: отсутствует/недействителен API-ключ или ID сайта, либо получен ответ 403. - RateLimitException: ответ HTTP 429. - PlausibleException: общие сбои API (базовый класс для указанных выше). Тестирование и разработка Запустите набор тестов с помощью composer test, отформатируйте код с помощью composer format и выполните статический анализ с помощью composer analyse. Лицензия Распространяется под лицензией MIT.