* Google Analytics. Real Time Reporting API 사용하기
인터넷에 보니 그냥 Reporting API 를 사용하는 법은 많이 있는데.
real time reporting api 사용법은 한글로 된게 없는거 같아서 정리함.


//------------------------------------------------------------------------------
// 준비절차
//------------------------------------------------------------------------------
url : https://developers.google.com/analytics/devguides/reporting/realtime/v3/reference/
현재 베타서비스이기 때문에 이 서비스에 가입신청하는 절치가 필요함 (몇년전부터 베타서비스중인가 봄)
신청하면 24시간안에 승인된다고 함.
승인후 알림 오는건 없음.


구글 개발자 콘솔
https://console.cloud.google.com 에서 프로젝트를 만들어야 함.
해당 프로젝트에서 Analytics API 를 활성화시켜야 한다 (real time reporting api 라고 따로 있지는 않음)



API 관리자에 들어간다.
사용설정된 API 페이지에 들어간다.
"Analytics API" 선택한다.
왼쪽메뉴에서 "사용자인증정보"" 를 선택한다.


"사용자인증정보만들기" 버튼을 누르고, "서비스 계정 키" 를 선택한다.
서비스계정은 새로만들기 선택하고.
키유형은 p12 로 선택한다.


생성완료 된 화면. 우측에서 "서비스계정관리"를 누른다.



이메일주소(서비스계정ID)를 복사한다.



구글Analytics 사이트에 들어간다.
https://www.google.com/analytics/
상단 "관리" 누르고 "계정" 영역에서 "사용자관리"를 누른다.


조금전에 복사해놓은 이메일주소를 넣고 "추가" 버튼을 누른다.




//------------------------------------------------------------------------------
// 제한사항
//------------------------------------------------------------------------------
하루에 50,000번의 호출횟수 제한있음.
ip당 1초에 10번 호출횟수 제한있음 (기본값 1초에 1번. 10번이 max. 개발자콘솔에서 바꿔야 함)


//------------------------------------------------------------------------------
// php client library 다운로드
//------------------------------------------------------------------------------
https://github.com/google/google-api-php-client/releases
여기서 1.1.7 버젼을 다운로드 받아서. 웹서버에 올림
2.0 받으면 안됨. 소스가 바꼈는데.
구글 문서는 아직 예전그대로 라서. 구글 샘플이 작동하지 않음.


//------------------------------------------------------------------------------
// 샘플소스
//------------------------------------------------------------------------------
https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-php#helloanalyticsphp
여기서 샘플코드를 본다.
이 샘플코드는 RealTimeReportingAPI가 아니고 CoreReporingAPI 임.
이 소스에서 조금만 고치면 RealTimeReportingAPI를 쓸수 있음.

https://developers.google.com/analytics/devguides/reporting/realtime/v3/reference/data/realtime/get#examples
이거는 RealTimeReportingAPI를 샘플인데. 일부분만 나와있음.
(참고 : 이 페이지에 나와있는 client libray  다운받아서 사용하면 안됨)


//------------------------------------------------------------------------------
// 코딩
//------------------------------------------------------------------------------
위의 CoreReporingAPI 샘플소스에서 고칠부분

* getService() 함수
$service_account_email : 아까 복사해놓은 이메일주소
$key_file_location : 아까 다운받아놓은 .p12 파일 경로

* getFirstprofileId() 함수
이 함수는 ga에서 자신의 첫번째 프로파일id, 프로퍼티id를 가져온다.
나의 경우는 프로퍼티가 여러개 있어서. 특정 프로퍼티를 강제로 셋팅하였음.

function getFirstprofileId(&$analytics)
{
  $profiles = $analytics->management_profiles->listManagementProfiles("00000000", "UA-00000000-4");
  $items = $profiles->getItems();
  return $items[0]->getId();
}

* getResults() 함수
샘플소스는 ga 의 reporting api 를 사용하고 있다.
real time reporting api 는 다음처럼 사용하면 된다.
도시별 활성유저수를 구한다.

function getResults(&$analytics, $profileId)
{
    $optParams = array(
        'dimensions' => 'rt:city'
    );

    return $analytics->data_realtime->get(
        'ga:' . $profileId,
        'rt:activeUsers',
        $optParams
    );
}


* 끝

반응형
Posted by 돌비
,