사이트 분석을 위해 파이썬으로 구글애널리틱스API 이용하기

2018. 5. 8. 07:37

구글 애널리틱스의 분석 보고서는 훌륭하지만 데이타 분석에 용이한 형식으로 사용하고자 Google 애널리틱스 API를 이용하고자 한다. 이전 포스팅에서 Google 애널리틱스를 이용하기 위해 인증토큰을 받는 방법에 대해서 알아보았다. (참조: 구글 애널리틱스 API 인증토큰 받기) 데이터를 제공해주는 다른 API에서도 동일한 방식으로 데이터를 제공해주는 경우가 많기 때문에 다른 곳에서도 활용이 가능하다.

인증 토큰을 받은 후에는 구글API를 통해서 데이터를 받을 수 있다. 오늘은 구글 애널리틱스API를 통해서 티스토리 블로그 데이터를 받고자 한다.

제목

추천포스트


데이터를 제공받게 해서 위해서는 요청하는 레이아웃을 인터넷주소 형태로 보내야 한다. 어떤 형태로 보내면 되는지 알기 위해서 구글 애널리틱스 API 싸이트에 방문하자. 중간쯤에 보면 3rd party website에 대쉬보드 쉽게 대쉬보드를 만들 수 있는 'Embed API'가 있다. 우리는 대쉬보드를 만들 것은 아니지만 이것을 이용하면 쉽게 API를 사용할 수 있다.

구글애널리틱스_홈페이지

(구글 애널리틱스 API 홈페이지 바로가기)


Embed API에서 Query Explorer를 선택한다.

QueryExplorer

(Query Exploer를 선택)


제일 상단에는 제공받을 사이트의 정보를 넣는다. 그리고 Set the query parameters에서 제공받을 데이터 레이아웃을 넣는다. metrics에는 값을 넣고, dimensions에는 구분값을 넣는다. 예를 들어 페이지뷰수는 metrics에, 월은 dimension에 들어간다.
원하는 값을 모두 셋팅하였으면 제일 하단에 Run Query 버튼을 누른다.

QueryExplorer화면

(Query Explorer 화면)


Run Query를 누르면 요청한 레이아웃의 데이터가 보여준다. 제일 하단에 보면 API Query URI가 있는데, 필자는 이 URI를 편집하여 원하는 양식의 데이터를 제공받을 계획이다. 사실 중요한 파라미터들은 앞에서 이미 셋팅을 다 했고, 여기서 날짜만 바꿔서 사용할 예정이다.

구글애널리틱스API결과


데이터는 json형태로 제공되는데 이를 파이썬의 dataframe형태로 변환하는 것은 이전에도 많이 했기 때문에 코드만 추가하고 자세한 설명은 생략한다. 
에러가 발생한다면 요청하는 url을 브라우저에 입력해보자. 어떤 에러메시지가 나오는지 쉽게 확인할 수 있다. 필자의 경우 권한 부여가 안 돼 에러가 발생했었다.
다음으로 API를 통해서 제공받을 수 있는 데이터건수는 1회 1,000건이다. 그래서 한 달치 데이터를 한 번에 받을 경우 실제 데이터가 1,000건이 넘을 경우 문제가 된다. 그래서 필요로 하는 데이터가 1,000건이 넘을 경우 일단위로 쪼개서 받은 다음에 합쳐야 한다.

# coding=utf-8
#
# GA API
from urllib.request import urlopen
import pandas as pd
import json
import sqlite3
import webbrowser
import numpy as np
import tistory_list
if __name__ == "__main__":
access_token=get_token()
blog_total=pd.DataFrame()
for day in range(1,28):
day=str(day)
if len(day)==1:
day="0"+day
url="https://www.googleapis.com/analytics/v3/data/ga?ids=[자신에게 해당하는 값을 넣으세요.]&start-date=2018-04-"+day+"&end-date=2018-04-"+day+"&metrics=ga%3Asessions%2Cga%3AbounceRate%2Cga%3Apageviews%2Cga%3ApageviewsPerSession%2Cga%3AadsenseRevenue&dimensions=ga%3ApagePath%2Cga%3Ayear%2Cga%3Aweek%2Cga%3AnthMonth%2Cga%3AnthDay%2Cga%3AdayOfWeek%2Cga%3AyearWeek&access_token="+access_token
result_data = urlopen(url)
result = result_data.read()
data = json.loads(result)
# column names
header = data["columnHeaders"]
header1 = pd.DataFrame(header)
header1 = header1["name"].str.split(":").str[1]
header1 = list(header1)
# make dataframe
temp=data["rows"]
blog=pd.DataFrame(temp,columns=header1,dtype=np.float)
# blog["adsenseRevenue"]=blog["adsenseRevenue"].astype(float)
blog_total=pd.concat([blog_total,blog])

오늘은 이렇게 구글 애널리틱스API를 통해서 원하는 양식의 데이터를 제공받는 방법에 대해서 알아보았다. 일단위로 업데이트 하고, 보기 원하는 지표들을 편집하는 작업만 하면 될 듯 하다. 


PC에서 모바일 게임을 즐기는 방법에 대해서 알고 있는가? 자세한 내용이 궁금하다면 아래 포스팅을 참조해보자.
(참조: PC에서 안드로이드 어플이나 모바일 게임 실행하기)


댓글()