이 튜토리얼에서는 Google 애널리틱스 계정 액세스, 애널리틱스 API 쿼리, API 응답 처리, 결과 출력에 필요한 단계를 설명합니다. 이 튜토리얼에서는 Core Reporting API v3.0, Management API v3.0, OAuth2.0이 사용됩니다.
1단계: 애널리틱스 API 사용 설정
Google 애널리틱스 API를 사용하려면 먼저 설정 도구를 사용해야 합니다. 이 가이드에서는 Google API 콘솔에서 프로젝트 만들기, API 사용 설정, 사용자 인증 정보 생성 과정을 안내합니다.
클라이언트 ID 만들기
- 서비스 계정 페이지를 엽니다. 메시지가 표시되면 프로젝트를 선택합니다.
- 서비스 계정 만들기를 클릭한 다음 서비스 계정의 이름과 설명을 입력합니다. 기본 서비스 계정 ID를 사용하거나 다른 고유한 ID를 선택할 수도 있습니다. 완료하면 만들기를 클릭합니다.
- 이어지는 서비스 계정 권한(선택사항) 섹션은 선택하지 않아도 됩니다. 계속을 클릭합니다.
- 사용자에게 이 서비스 계정에 대한 액세스 권한 부여 화면에서 키 만들기 섹션이 나올 때까지 아래로 스크롤합니다. 키 만들기를 클릭합니다.
- 표시되는 측면 패널에서 키 형식을 선택합니다. JSON을 사용하는 것이 좋습니다.
- 만들기를 클릭합니다. 새로운 공개 키/비공개 키 쌍이 생성되어 기기에 다운로드됩니다. 생성된 파일은 이 키의 유일한 사본으로 사용됩니다. 키를 안전하게 보관하는 방법을 자세히 알아보려면 서비스 계정 키 관리를 참조하세요.
- 개인 키가 컴퓨터에 저장되었습니다 대화상자에서 닫기를 클릭한 다음 완료를 클릭하여 서비스 계정 표로 돌아갑니다.
Google 애널리틱스 계정에 서비스 계정 추가
새로 만든 서비스 계정에 이메일 주소(<projectId>-<uniqueId>@developer.gserviceaccount.com
)가 있습니다. 이 이메일 주소를 사용하여 API를 통해 액세스하려는 Google 애널리틱스 계정에 사용자를 추가하세요.
이 튜토리얼에서는 읽기 및 분석 권한만 있으면 됩니다.
2단계: Google 클라이언트 라이브러리 설치
패키지 관리자를 사용하거나 Python 클라이언트 라이브러리를 수동으로 다운로드하여 설치할 수 있습니다.
pip
Python 패키지 설치에 권장되는 도구인 pip를 사용합니다.
sudo pip install --upgrade google-api-python-client
설정 도구
setuptools 패키지에 포함된 easy_install 도구를 사용합니다.
sudo easy_install --upgrade google-api-python-client
수동 설치
최신 Python용 클라이언트 라이브러리를 다운로드하고 코드의 압축을 풀어 다음을 실행합니다.
sudo python setup.py install
시스템 Python에 설치하려면 수퍼유저(sudo
) 권한으로 명령어를 호출해야 할 수도 있습니다.
3단계: 샘플 설정
주어진 샘플 코드가 포함된 HelloAnalytics.py
이라는 단일 파일을 만들어야 합니다.
- 다음 소스 코드를 복사하거나
HelloAnalytics.py
에 다운로드합니다. - 이전에 다운로드한
client_secrets.json
을 샘플 코드와 같은 디렉터리 내에서 이동합니다. key_file_location
값을 Play Console에서 적절한 값으로 바꿉니다.
"""A simple example of how to access the Google Analytics API.""" from apiclient.discovery import build from oauth2client.service_account import ServiceAccountCredentials def get_service(api_name, api_version, scopes, key_file_location): """Get a service that communicates to a Google API. Args: api_name: The name of the api to connect to. api_version: The api version to connect to. scopes: A list auth scopes to authorize for the application. key_file_location: The path to a valid service account JSON key file. Returns: A service that is connected to the specified API. """ credentials = ServiceAccountCredentials.from_json_keyfile_name( key_file_location, scopes=scopes) # Build the service object. service = build(api_name, api_version, credentials=credentials) return service def get_first_profile_id(service): # Use the Analytics service object to get the first profile id. # Get a list of all Google Analytics accounts for this user accounts = service.management().accounts().list().execute() if accounts.get('items'): # Get the first Google Analytics account. account = accounts.get('items')[0].get('id') # Get a list of all the properties for the first account. properties = service.management().webproperties().list( accountId=account).execute() if properties.get('items'): # Get the first property id. property = properties.get('items')[0].get('id') # Get a list of all views (profiles) for the first property. profiles = service.management().profiles().list( accountId=account, webPropertyId=property).execute() if profiles.get('items'): # return the first view (profile) id. return profiles.get('items')[0].get('id') return None def get_results(service, profile_id): # Use the Analytics Service Object to query the Core Reporting API # for the number of sessions within the past seven days. return service.data().ga().get( ids='ga:' + profile_id, start_date='7daysAgo', end_date='today', metrics='ga:sessions').execute() def print_results(results): # Print data nicely for the user. if results: print 'View (Profile):', results.get('profileInfo').get('profileName') print 'Total Sessions:', results.get('rows')[0][0] else: print 'No results found' def main(): # Define the auth scopes to request. scope = 'https://www.googleapis.com/auth/analytics.readonly' key_file_location = '<REPLACE_WITH_JSON_FILE>' # Authenticate and construct service. service = get_service( api_name='analytics', api_version='v3', scopes=[scope], key_file_location=key_file_location) profile_id = get_first_profile_id(service) print_results(get_results(service, profile_id)) if __name__ == '__main__': main()
4단계: 샘플 실행
애널리틱스 API를 사용 설정한 후 Python용 Google API 클라이언트 라이브러리를 설치하고 샘플을 실행할 준비가 된 샘플 소스 코드를 설정합니다.
다음을 사용하여 샘플을 실행합니다.
python HelloAnalytics.py
이 단계를 완료하면 샘플에서는 승인된 사용자의 첫 번째 Google 애널리틱스 보기 (프로필)의 이름과 지난 7일 동안의 세션 수를 출력합니다.
이제 승인된 애널리틱스 서비스 객체를 사용하면 Management API 참조 문서에 있는 코드 샘플을 실행할 수 있습니다. 예를 들어 accountSummaries.list 메서드를 사용하도록 코드를 변경할 수 있습니다.
문제 해결
AttributeError: 'Module_six_moves_urllib_parse' 객체에 속성 #&93;urlparse'이 없습니다.
이 오류는 pip 설치 모듈보다 먼저 '6x' 모듈의 기본 설치 (이 라이브러리의 종속 항목)가 로드되는 Mac OSX에서 발생할 수 있습니다. 문제를 해결하려면 pip의 설치 위치를 PYTHONPATH
시스템 환경 변수에 추가합니다.
-
다음 명령어를 사용하여 pip의 설치 위치를 확인합니다.
pip show six | grep "Location:" | cut -d " " -f2
-
~/.bashrc
파일에 다음 줄을 추가하고<pip_install_path>
을 위에서 결정한 값으로 바꿉니다.export PYTHONPATH=$PYTHONPATH:<pip_install_path>
-
다음 명령어를 사용하여 열려 있는 터미널 창에서
~/.bashrc
파일을 다시 로드합니다.source ~/.bashrc