이 패키지를 사용하면 Google Analytics에서 데이터를 쉽게 검색할 수 있습니다.
다음은 제공된 방법의 몇 가지 예입니다.
use Spatie Analytics Facades Analytics ;
use Spatie Analytics Period ;
/ / fetch the most visited pages for today and the past week
Analytics:: fetchMostVisitedPages (Period:: days ( 7 ));
/ / fetch visitors and page views for the past week
Analytics:: fetchVisitorsAndPageViews (Period:: days ( 7 ));
대부분의 메소드는 결과가 포함된 IlluminateSupportCollection
객체를 반환합니다.
우리는 동급 최고의 오픈 소스 패키지를 만드는 데 많은 리소스를 투자합니다. 유료 제품 중 하나를 구매하여 우리를 지원할 수 있습니다.
귀하가 사용하고 있는 당사 패키지를 언급하면서 귀하의 고향에서 엽서를 보내주셔서 진심으로 감사드립니다. 연락처 페이지에서 주소를 확인하실 수 있습니다. 우리는 수신된 모든 엽서를 가상 엽서 월에 게시합니다.
이 패키지는 Composer를 통해 설치할 수 있습니다.
composer require spatie/laravel-analytics
선택적으로 다음 명령을 사용하여 이 패키지의 구성 파일을 게시할 수 있습니다.
php artisan vendor:publish --tag= " analytics-config "
다음 구성 파일은 config/analytics.php
에 게시됩니다.
return [
/ *
* The property id of which you want to display data .
* /
' property_id ' => env ( ' ANALYTICS_PROPERTY_ID ' ),
/ *
* Path to the client secret json file . Take a look at the README of this package
* to learn how to get this file . You can also pass the credentials as an array
* instead of a file path .
* /
' service_account_credentials_json ' => storage_path ( ' app/analytics/service-account-credentials.json ' ),
/ *
* The amount of minutes the Google API responses will be cached .
* If you set this to zero , the responses won 't be cached at all.
*/
' cache_lifetime_in_minutes ' => 60 * 24 ,
/ *
* Here you may configure the "store" that the underlying Google_Client will
* use to store it 's data. You may also add extra parameters that will
* be passed on setCacheConfig (see docs for google-api-php-client).
*
* Optional parameters: "lifetime", "prefix"
*/
' cache ' => [
' store ' => ' file ' ,
],
];
가장 먼저 해야 할 일은 Google API를 사용하기 위한 몇 가지 자격 증명을 얻는 것입니다. 이미 Google 계정을 만들고 로그인했다고 가정하겠습니다. Google API 사이트로 이동하여 프로젝트를 선택하거나 생성하세요.
다음으로 프로젝트가 사용할 수 있는 API를 지정해야 합니다. API 라이브러리로 이동하여 "Google Analytics Data API"를 검색하세요.
API를 활성화하려면 활성화를 선택합니다.
Analytics API에 액세스할 수 있는 프로젝트를 생성했으므로 이제 이러한 자격 증명이 포함된 파일을 다운로드할 차례입니다. 사이드바에서 "자격 증명"을 클릭하세요. '서비스 계정 키'를 만들고 싶을 것입니다.
다음 화면에서 서비스 계정에 이름을 지정할 수 있습니다. 원하는 이름을 지정할 수 있습니다. 서비스 계정 ID에 이메일 주소가 표시됩니다. 이 가이드의 뒷부분에서는 이 이메일 주소를 사용하겠습니다.
생성된 서비스 계정의 세부정보 화면으로 이동하여 "키"를 선택하고 "키 추가" 드롭다운에서 "새 키 만들기"를 선택합니다.
키 유형으로 "JSON"을 선택하고 "만들기"를 클릭하여 JSON 파일을 다운로드합니다.
이 패키지 구성 파일의 service_account_credentials_json
키에 지정된 위치의 Laravel 프로젝트 내부에 json을 저장합니다. json 파일에는 잠재적으로 민감한 정보가 포함되어 있으므로 해당 파일을 git 저장소에 커밋하지 않는 것이 좋습니다.
귀하는 이미 Analytics 사이트에서 Analytics 계정을 만들고 새로운 GA4 속성을 사용하고 있다고 가정합니다.
먼저 귀하의 부동산 ID를 알아야 합니다. Analytics에서 설정 > 속성 설정으로 이동합니다. 여기에서 귀하의 부동산 ID를 복사할 수 있습니다. .env 파일의 ANALYTICS_PROPERTY_ID
키에 이 값을 사용합니다.
이제 생성한 서비스 계정에 액세스 권한을 부여해야 합니다. 숙소의 관리 섹션에서 '자산 접근 관리'로 이동하세요. 새 사용자를 추가하려면 오른쪽 상단에 있는 더하기 기호를 클릭하세요.
이 화면에서 이전 단계에서 다운로드한 json 파일의 client_email
키에 있는 이메일 주소에 대한 액세스 권한을 부여할 수 있습니다. 분석가 역할이면 충분합니다.
설치가 완료되면 Analytics 데이터를 쉽게 검색할 수 있습니다. 거의 모든 메소드는 IlluminateSupportCollection
인스턴스를 반환합니다.
다음은 마침표를 사용한 몇 가지 예입니다.
use Spatie Analytics Facades Analytics ;
/ / retrieve visitors and page view data for the current day and the last seven days
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: days ( 7 ));
/ / retrieve visitors and page views since the 6 months ago
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: months ( 6 ));
$analyticsData
는 각 항목이 date
, visitors
및 pageViews
키를 보유하는 배열인 Collection
입니다.
데이터를 가져오려는 기간을 더 효과적으로 제어하려면 startDate
및 endDate
기간 개체에 전달할 수 있습니다.
$ startDate = Carbon:: now ()-> subYear ();
$ endDate = Carbon:: now ();
Period:: create ( $ startDate , $ endDate );
public function fetchVisitorsAndPageViews( Period $ period ): Collection
이 함수는 각 항목이 activeUsers
, screenPageViews
및 pageTitle
키를 보유하는 배열인 Collection
반환합니다.
public function fetchVisitorsAndPageViewsByDate( Period $ period ): Collection
이 함수는 각 항목이 date
, activeUsers
, screenPageViews
및 pageTitle
키를 보유하는 배열인 Collection
반환합니다.
public function fetchTotalVisitorsAndPageViews( Period $ period ): Collection
이 함수는 각 항목이 date
, date
, visitors
및 pageViews
키를 포함하는 배열인 Collection
반환합니다.
public function fetchMostVisitedPages( Period $ period , int $ maxResults = 20 ): Collection
이 함수는 각 항목이 fullPageUrl
, pageTitle
및 screenPageViews
키를 보유하는 배열인 Collection
반환합니다.
public function fetchTopReferrers( Period $ period , int $ maxResults = 20 ): Collection
이 함수는 각 항목이 screenPageViews
및 pageReferrer
키를 보유하는 배열 Collection
반환합니다.
public function fetchUserTypes( Period $ period ): Collection
이 함수는 각 항목이 new
또는 returning
과 같을 수 있는 activeUsers
및 newVsReturning
키를 보유하는 배열인 Collection
반환합니다.
public function fetchTopBrowsers( Period $ period , int $ maxResults = 10 ): Collection
이 함수는 각 항목이 screenPageViews
및 browser
키를 보유하는 배열인 Collection
반환합니다.
public function fetchTopCountries( Period $ period , int $ maxResults = 10 ): Collection
이 함수는 각 항목이 screenPageViews
및 country
키를 보유하는 배열인 Collection
반환합니다.
public function fetchTopOperatingSystems( Period $ period , int $ maxResults = 10 ): Collection
이 함수는 각 항목이 screenPageViews
및 operatingSystem
키를 보유하는 배열인 Collection
반환합니다.
다른 모든 쿼리의 경우 get
기능을 사용할 수 있습니다.
public function get( Period $ period , array $ metrics , array $ dimensions = [], int $ limit = 10 , array $ orderBy = [], FilterExpression $ dimensionFilter = null , FilterExpression $ metricFilter = null ): Collection
전달할 수 있는 인수에 대한 추가 정보는 다음과 같습니다.
Period $period
: 쿼리의 시작 날짜와 종료 날짜를 나타내는 SpatieAnalyticsPeriod 개체입니다.
array $metrics
: 검색할 지표의 배열입니다. 여기에서 모든 측정항목 목록을 확인할 수 있습니다.
array $dimensions
: 결과를 그룹화할 차원의 배열입니다. 여기에서 모든 차원의 목록을 찾을 수 있습니다.
int $limit
: 반환할 최대 결과 수입니다.
array $orderBy
: 결과를 정렬할 OrderBy 개체의 배열입니다.
array $offset
: 기본값은 0입니다. $limit 매개변수와 함께 사용하여 페이지 매김을 적용할 수 있습니다.
bool $keepEmptyRows
: false이거나 지정되지 않은 경우 모든 측정항목이 0인 각 행은 반환되지 않습니다. true인 경우 필터에 의해 별도로 제거되지 않으면 해당 행이 반환됩니다.
예를 들어:
$ orderBy = [
OrderBy:: dimension ( ' date ' , true ),
OrderBy:: metric ( ' pageViews ' , false ),
];
FilterExpression $dimensionFilter
: 특정 차원 값만 포함하도록 결과를 필터링합니다. 자세한 내용은 여기에서 확인할 수 있습니다.
예를 들어:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter StringFilter ;
use Google Analytics Data V1beta Filter StringFilter MatchType ;
$ dimensionFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventName ' ,
' string_filter ' => new StringFilter ([
' match_type ' => MatchType:: EXACT ,
' value ' => ' click ' ,
]),
]),
]);
FilterExpression $metricFilter
: SQL have-clause와 유사하게 보고서의 행을 집계한 후 적용되는 필터입니다. 이 필터에서는 측정기준을 사용할 수 없습니다. 자세한 내용은 여기에서 확인할 수 있습니다.
예를 들어:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter NumericFilter ;
use Google Analytics Data V1beta NumericValue ;
use Google Analytics Data V1beta Filter NumericFilter Operation ;
$ metricFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventCount ' ,
' numeric_filter ' => new NumericFilter ([
' operation ' => Operation:: GREATER_THAN ,
' value ' => new NumericValue ([
' int64_value ' => 3 ,
]),
]),
]),
]);
## Testing
Run the tests with:
``` bash
vendor/bin/pest
최근 변경된 사항에 대한 자세한 내용은 CHANGELOG를 참조하세요.
자세한 내용은 CONTRIBUTING을 참조하세요.
보안 관련 버그를 발견한 경우 이슈 트래커를 사용하는 대신 [email protected]로 메일을 보내주세요.
그리고 로고를 주신 Caneco에게 특별한 감사를 드립니다.
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.