지난 포스팅에서 Google Analytics API를 사용하기 위한 환경세팅을 하였다면 이번 포스팅에서는 실질적으로 Python을 이용해 데이터를 가져오는 방법을 포스팅 하려합니다.
Python으로 GA의 데이터를 가져와서 바로 분석도 가능하겠지만 사내의 다른 데이터 (ERP, Salesforce, Groupware)등과 연결하여 Insight를 얻기 위해서는 데이터를 가져오면서 회사내 Database 에 저장하는 방법도 있겠지요.
자. API를 사용하기에 앞서 어떤 형식의 어떤 데이터를 가져올 수 있는지 확인이 필요하겠지요? 구글에서는 UA Query Explorer를 통해 API 쿼리를 보내고 결과값을 확인 할 수 있는 사이트를 제공합니다.
https://ga-dev-tools.web.app/query-explorer/
Accout는 GA 에서의 관리사이트로 선택을 하면 Property 및 View가 자동으로 선택됩니다. 그리고 Set Query Parameters 의 ids는 GA의 등록된 사이트의 서비스 계정 번호입니다. 해당번호는 Python에서 사용하니 기억해 두시면 좋답니다.
GA 데이터를 검색할 Stard date , End Date 를 설정 합니다. Start Date와 End Date는 날짜 포맷 (YYYY-MM-DD)를 지원하며 아래와 같이 Relative Date (Today, Yesterday, ndaysAgo)를 지원합니다.
또한 가장 중요한 Metrics와 Dimensions이 있으며 두 항목을 적절히 조합하여 원하는 데이터를 추출 할 수 있답니다. 위 사이트의 좌측 메뉴 중 "Dimensions&Metrics Explorer를 선택하면 여러조합과 각각의 항목에 대하여 더 자세히 확인 가능하답니다.
우리는 기본적으로 Metrics에 사용자 (ga:users)를 선택하고 Dimensions에 유입 키워드 (ga:keyword) 지역 (ga:Country), 도시 (ga:City)를 수집해볼 것입니다. 즉 우리의 웹사이트에 방문하는 방문자의 지역/도시별 유입 키워드를 확인할 것입니다.
아래의 "RUN QUERY"를 실행하면 쿼리가 실행되며 아래쪽에 쿼리의 결과물이 보여집니다. 보여지는 항목의 형태로 API호출하면 제공되는 것이겠지요? 만약 내부 DB에 데이터를 저장할 경우 아래의 결과값을 참조하여 테이블을 설계하시면 됩니다.
Metrics와 Dimensions를 변경해가면서 수집이 필요한 데이터 형태를 미리 확인 해보시기 바랍니다. 그리고 결과값 필드는 7개 까지 지원이 되기에 데이터를 가져와서 관계를 맺을 수 있도록 구성을 하는것도 좋은 방법일 것입니다.
- 파이썬 코드 작성
자 이젠 파이썬에서 구글 API를 사용하기 위해서는 우선 구글 api 패키지를 설치 합니다.
pip install -- upgrade google-api-python-client
아래는 가이드 문서를 기본으로 리턴받은 값을 Pandas 데이터 프레임에 담은 예시 있니다. 이렇게 담아놔야 분석 또는 내부 DB에 Insert하기 원활 할 것입니다.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 from apiclient.discovery import buildfrom oauth2client.service_account import ServiceAccountCredentialsimport pandas as pddef get_service(api_name, api_version, scopes, key_file_location):credentials = ServiceAccountCredentials.from_json_keyfile_name(key_file_location, scopes=scopes)service = build(api_name, api_version, credentials=credentials)return servicedef get_results(service, profile_id):return service.data().ga().get(ids='ga:' + profile_id,start_date='7daysAgo',end_date='today',metrics='ga:users',dimensions='ga:keyword,ga:country,ga:city').execute()# 중요 : UA Query Explorer에서 테스트 했던 Metrics와 Dimensions를 기입합니다.def print_results(results):if results:# 중요 : Pandas 데이터프레임에 리턴 받은 값을 Insert합니다.column_name=[]for header in results.get('columnHeaders'):column_name.append(header.get('name'))data=results.get('rows')df = pd.DataFrame(data, columns=column_name)#중요: 리턴 받은 API 결과값을 확인 합니다.print(results)#중요: 리턴 받은 결과값을 Pandas 데이터 프레임에 넣어 출력합니다.print(df)else:print('No results found')def main():scope = 'https://www.googleapis.com/auth/analytics.readonly'# Google Cloud Plaform에서 받은 인증서의 위치 및 인증서명 (.JSON)을 입력합니다.key_file_location = '인증서.JSON'service = get_service(api_name='analytics',api_version='v3',scopes=[scope],key_file_location=key_file_location)profile_id = 'GA 서비스 ID'#Profile_id는 Google analystic에 등록된 웹사이트의 서비스 ID입니다. UA Query Explorer에서도 확인 가능합니다.print_results(get_results(service, profile_id))if __name__ == '__main__':main()cs
코드에 "중요"로 달아놓은 주석부분만 잘 확인하시면 간단하게 테스트 및 응용이 가능하실 것입니다.
예제를 실행시키면 아래와 같이 리턴값과 Pandas 데이터 프레임을 출력합니다.
'IT > Python 데이터 분석 활용' 카테고리의 다른 글
[Python] 시각화 plot() (Matplotlib,Pandas) (1) | 2024.06.04 |
---|---|
[Python] Pandas[판다스] 활용하기(2) (0) | 2024.05.30 |
[Python] Pandas[판다스] 활용하기(1) (0) | 2024.05.29 |
[Python] Google Analytics API를 이용한 데이터 분석 (1) (0) | 2022.04.04 |
댓글