구글 통계 API 사용방법(Google Analytics API)
사이트 접속통계를 확인하고 싶어서, 구글 통계 API 를 열어보았습니다.
자바스크립트로 바로 가져오는 방법도 있지만, 커스터마이징이 자유롭지 않은 관계로
가장 편리하고 보편화된 RESTful 방식으로 토큰(token) 으로 인증하는 방식을 사용하기로 한다.
토큰(token) 가져오는(get) 방법
- curl 을 이용하여 호출하면 된다.
url
- https://oauth2.googleapis.com/token
post 데이터 값
- code : "", //발급받아야 함.
- client_id : "", //발급받아야 함
- client_secret : "", //발급받아야함
- grant_type : "authorization_code",
- redirect_uri : "", //호스트URL
위 방식처럼 호출하면 토큰(token)값을 준다.
그럼 각 항목을 발급받는 방법을 알아보자.
1. client_id, client_secret 값 발급받는 방법
https://console.cloud.google.com
구글 클라우드 플랫폼에 들어가서 프로젝트를 생성하고,
OAuth 2.0 클라이언트 ID
에서 인증정보를 하나 만들면 client_id 와 client_secret 값을 발급해준다.
2. code 값 발급받는 방법
위 URL을 호출하면 code 값을 알려준다.
자 준비는 완료되었고, 이제 호출을 해보자.
그럼 아래와 같이 JSON 값을 던져준다.
Array
(
[access_token] => xxxxxxxxxx
[expires_in] => 3599
[refresh_token] => xxxxxxxxxx
[scope] => https://www.googleapis.com/auth/analytics
[token_type] => Bearer
)
사용해야 할 값은 3개이다.
1. access_token : 구글 Analytics 를 호출하기 위한 토큰값
2. expires_in : 토큰 유효기간이다.
3. refresh_token : access_token 값이 만료가 되면 refresh_token 값을 이용하여 access_token 값을 재발급 받아야 한다.
저의 경우 아래와 같이 사용했습니다.
1. access_token 을 받급받을때 access_token 과 refresh_token 을 쿠키로 저장한다. access_token 쿠키 유효기간은 expires_in 값으로 한다.
2. expires_in 기간이 만료가 되어 access_token 쿠키값이 사라졌다면, refresh_token 값으로 access_token 을 재발급 받는다.
그럼 refresh_token 값으로 access_token 값을 어떻게 재발급 받는지 알려주겠다.
url
- client_id : 위 구글 클라우드 플랫폼에서 발급받은 client_id 값
- client_secret : 위 구글 클라우드 플랫폼에서 발급받은 client_secret 값
- grant_type : 'refresh_token'
- refresh_token : 위에서 발급받은 refresh_token
그럼 아래와 같이 JSON 값을 던져준다.
Array
(
[access_token] => xxxxxxxxxx
[expires_in] => 3599
[scope] => https://www.googleapis.com/auth/analytics
[token_type] => Bearer
)
새롭게 발급받은 access_token 을 다시 쿠키로 저장해 두면 된다.
자 그럼 이제 구글 Analytics 값을 받아와 보자.
url
url = "https://www.googleapis.com/analytics/v3/data/ga";
url += "?ids={ids}";
url += "&metrics={metrics}";
url += "&dimensions={dimensions}";
url += "&start-date=2010-01-01"; //ymd 형식
url += "&end-date=2020-04-17"; //ymd 형식
header
- 'Authorization: Bearer ' + access_token
- 'Accept: application/json'
ids 는 아래 url 에서 알아내면 된다.
https://ga-dev-tools.web.app/account-explorer
metrics 와 dimensions 는 아래 url 에서 알아내면 된다.
https://ga-dev-tools.web.app/query-explorer/
들어가서 보면 알겠지만, dimensions 값에 따라서 리턴해주는 통계값이 가지각색이다.
전 그냥 간편하게 키워드값만(ga:keyword) 받아왔습니다.