Google Analytics

[구글애널리틱스 GA4 for PHP] 데이터 API에서 OrderBy 사용하기

mysop 2023. 6. 28. 23:20
반응형

2023년 7월 1일부터 새롭게 적용되는

GA4에 대비하여 실시간 데이터를 가져오는 부분이 수정된다

 

https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-php?hl=ko 

 

Hello Reporting Reporting API v4; 서비스 계정용 PHP 빠른 시작  |  Analytics Reporting API v4  |  Google for De

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Hello Reporting Reporting API v4; 서비스 계정용 PHP 빠른 시작 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고

developers.google.com

기본 적인 예제 코드와 사용방법은 위 링크를 참고 하면 된다.

 

예전에 사용하던 구글애널리틱스 버젼과 사용자수와 맞지 않는다

 

GA4에서 최대 30분까지 사용자를 표시하고 활성사용자 수를 더하고 표시하기 때문에

예전 버젼에서 표시되는 최대 5분내 활성사용자수 보다 더 높게 표시된다.

 

예전 버젼과 비슷한 데이터를 그리고 싶기 때문에

내가 범위를 지정하여 원하는 구간의 데이터만 뽑아서 사용하려고 한다.

 

반응형

 

https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-api-schema?hl=ko 

 

실시간 측정기준 및 측정항목  |  Google Analytics Data API  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 실시간 측정기준 및 측정항목 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Analytics Data

developers.google.com

먼저 실시간 애널리틱스 데이터를 가져올때

사용가능한 디멘션과 이름값은 위 링크 정보를 확인하자

 

내가 필요하고 활용하려는 정보는 다음과 같다

1. 활성데이터 사용자

2. 실시간 몇분전

 

5분이내의 정보를 사용하기 위해 최대 5개의 데이터만 자르고

최근 실시간 시간을 기준으로 데이터를 가져와 보자

 

use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\RunRealtimeReportRequest;
use Google\Analytics\Data\V1beta\RunRealtimeReportResponse;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\OrderBy;
use Google\Analytics\Data\V1beta\Metric;

// 인증데이터 json
putenv("GOOGLE_APPLICATION_CREDENTIALS=oauth-credentials.json");


$betaAnalyticsDataClient = new BetaAnalyticsDataClient();

// 실시간데이터준비
$request = new RunRealtimeReportRequest();

try {
    =
    $response = $betaAnalyticsDataClient->runRealtimeReport([
      'property' => 'properties/애널릭틱스ID',
      'dimensions' => [new Dimension( [ 'name' => 'minutesAgo', ] ),],
      'metrics' => [new Metric([ 'name' => 'activeUsers',] )],

      'orderBys' => [
        new OrderBy([
          'dimension' => new OrderBy\DimensionOrderBy([
             'dimension_name' => 'minutesAgo',
              //'order_type' => OrderBy\DimensionOrderBy\OrderType::ALPHANUMERIC
          ]),
          'desc' => false,
        ]),                
      ],     

	  //최대 가져올데이터 수
      'limit' => '6'

  ]);

} catch (ApiException $ex) {
    //예외처리
    $error = $e->getMessage();
}

 

위와 같이 데이터처리를 해주면 GA4이전과 같은 데이터를 가져 올수 있다.

최대 5분간 데이터를 합산하여 표시해 주면 된다.

 

정렬의 핵심은 OrderBy를 사용하면 된다

use Google\Analytics\Data\V1beta\OrderBy;

'orderBys' => [
new OrderBy([
  'dimension' => new OrderBy\DimensionOrderBy([
     'dimension_name' => 'minutesAgo',
     'order_type' => OrderBy\DimensionOrderBy\OrderType::ALPHANUMERIC
  ]),
  'desc' => false,
]),                
],

위 코드가 정렬적용의 핵심

 

 

출처 : https://stackoverflow.com/questions/69832484/google-analytics-4-data-api-use-order-by

 

Google Analytics 4 Data API use order by

I started using Google Analytics 4 Data API and downloaded the PHP library to create the requests. I have been playing a little and my request is working good so far, but when I need to sort it I d...

stackoverflow.com

 

728x90
반응형