프로젝트 소개
Laravel Metrics Plausible은 Plausible Analytics Stats API v2를 감싸 분석 데이터를 조회하고 관리할 수 있는 직관적인 Laravel 네이티브 인터페이스를 제공하는 PHP 라이브러리입니다.
주요 기능
- 집계된 총계 조회 (방문자, 페이지뷰, 이탈률 등)
- 사용자 지정 날짜 범위 및 차원(시간별, 일별, 월별)을 활용한 시계열 데이터 조회
- 페이지, 진입/이탈 페이지, 유입 경로, 채널, UTM 파라미터, 국가, 지역, 도시, 기기, 브라우저, 운영체제별 세부 분석 조회
- 목표 전환, 사용자 지정 이벤트 및 실시간 방문자 수 확인
- Plausible 사이트 및 목표 관리 (목록 조회, 생성, 삭제)
- API 페이로드를 반영하는 쿼리 빌더를 사용해 맞춤형 쿼리 생성
- 특정 예외를 통해 인증, 요청 제한(rate-limit) 및 일반적인 API 오류 처리
- Plausible Cloud 및 자체 호스팅 Community Edition 모두 지원
- spatie/laravel-settings를 통해 데이터베이스에 설정을 저장하므로 별도의 설정 파일 불필요
설치
1. 패키지 추가: composer require jeffersongoncalves/laravel-metrics-plausible
2. 마이그레이션을 실행하여 설정 테이블 생성: php artisan migrate
설정
마이그레이션 후, 환경 변수가 설정의 시드 데이터로 사용됩니다.
PLAUSIBLE_API_KEY – Plausible Settings → API Keys에서 발급받은 API 키
PLAUSIBLE_SITE_ID – 사이트 도메인 (예: example.com)
PLAUSIBLE_BASE_URL – Plausible 기본 URL (기본값 https://plausible.io, 자체 호스팅 시 변경 가능)
설정은 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 라이선스에 따라 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.