Google Analytics API 사용법 ①

2022. 1. 5. 01:50구글 애널리틱스(GA)

반응형

출처 : https://www.optimizesmart.com/how-to-use-google-analytics-api-without-any-coding/

 

 

GA를 활용하여 행동데이터를 수집하고 대시보드를 통한 데이터 분석을 할 수 있다.

하지만 정형화된 솔루션이기 때문에 한계가 있다.

 

커머스 산업 중심으로 보여지는 전자상거래 대시보드들은 다른 산업에서 쓰기에는 무리가 있고

여러개의 필터링을 걸어서 비교할 수 있는 대시보드는 만들 수 없다.

또한 레거시 DB에 있는 데이터를 GA데이터와 합쳐서 분석하기에도 한계가 분명하다.

 

이 한계를 뛰어 넘기 위해 빅쿼리를 이용하는 방법이 있지만 비용 문제가 수반된다.

(GA4는 빅쿼리가 무료 연결되고 무료로 어느정도 쓸 수 있지만 제한이 있다)

 

이를 극복할 수 있는 방안이 API를 활용하는 것이다.

 

API 호출을 통해 전달받은 데이터로 대시보드에서는 나타낼 수 없는 표나 그래프를 작성할 수 있고

해당 데이터를 이용하여 수준높은 통계분석도 가능하다.

 

본 포스팅에서는 연동을 위한 설정 작업과 간단한 샘플 코드를 통해 API가 연동 되는지 확인하는

절차를 다룬다.

다음 글에서 실제 데이터를 필터링, 정렬, 타케팅 하는 법을 알아본다.

 

 

 

1. 서비스 계정 추가 및 API 키(JSON) 내려받기


일단 GA API를 사용하기 위해서는 GCP 콘솔에서 서비스 계정을 추가하고

API를 호출할 때 필요한 키를 JSON 형태로 다운로드 받아야 한다.

 

GCP 콘솔에 접속한다.  https://console.cloud.google.com/

 

프로젝트가 생성되어 있다면 기본 프로젝트 화면이 보일 것이고

프로젝트 생성을 안했다면 프로젝트 생성부터 해준다.

 

 

 

 

 

첫 화면에서 "프로젝트 설정으로 이동" 을 클릭한다.

 

 

 

 

 

이후 좌측 메뉴에서 "서비스 계정"을 선택하고 상단에 "서비스 계정 만들기"를 클릭한다.

 

 

 

 

 

 

이후 나타나는 입력 화면에서 필수사항들만 입력해준다.

원하는 대로 입력하면 된다. 그런 이후 완료를 누른다.

 

 

 

 

이후 생성된 서비스 계정에서 "키 관리"를 클릭해 준다.

 

 

 

"새 키 만들기"를 클릭해 준다.

 

 

 

 

이후 뜨는 모달창에서 JSON 형태로 만들기를 클릭한다.

그럼 JSON 파일 하나가 다운로드 될 것이다.

 

이 파일은 다시 받을 수가 없으므로 잘 보관해야 한다.

 

이제 다운받은 JSON 파일을 열어보자.

열면 키-값 형태로 여러 줄의 데이터가 보일 것이다.

이 중 client_email이라는 키의 값을 복사한다. 편의상 값을 aaabbbbccccc.iam.gserviceaccount.com이라 하겠다.

 

이제 API 호출을 이용할 GA 속성에 접속한다.

 

 

 

 

"관리" 메뉴에서 "계정 엑세스 관리"를 누르고 우측 상단에 있는 사용자 추가를 눌러준다.

이후 aaabbbbccccc.iam.gserviceaccount.com 이 값을 추가해 주고 표준역할을 "뷰어" 이상으로 설정해 준다.

 

 

이후 다시 GCP 콘솔에 접속해서 GA API 사용을 허용해 준다.

 

 

해당 메뉴로 들어간 후 API 라이브러리에서 GA API를 찾아서 사용을 클릭한다.

 

 

 

2. 샘플 코드


Google에서는 GA API로 활용할 수 있는 서비스 언어로 3가지를 제공하고 있다.

Python, PHP, Java 이다.

자세한 내용은 아래 링크를 참고하기 바란다.

 

 

What Is The Core Reporting API - Overview  |  Analytics Core Reporting API  |  Google Developers

Access Google Analytics report data to build custom dashboards, automate complex reporting tasks, and integrate your data with other applications.

developers.google.com

 

 

여기서는 편의를 위해 Python을 활용한다.

일단 .py 파일을 하나 생성하고 같은 위치에 다운로드한 JSON 파일을 둔다.

 

이후 API 호출에 필요한 라이브러리를 pip 명령어를 통해 다운로드 한다.

 

pip install --upgrade google-api-python-client
pip install oauth2client

 

 

이제 샘플 코드를 작성해 보자.

 

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
from pprint import pprint
 
def get_service(api_name, api_version, scopes, key_file_location):
 
 
    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
     
     
# Define the auth scopes to request.
scope = 'https://www.googleapis.com/auth/analytics.readonly'
 
# 다운로드 받은 JSON의 위치를 상대경로로 선언
key_file_location = './다운받은.json'
 
# Authenticate and construct service.
service = get_service(
        api_name='analytics',
        api_version='v3',
        scopes=[scope],
        key_file_location=key_file_location)
         
# 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()
     
     
     
# 일주일간 세션수와, 페이지뷰수 받아오기
# ids의 값은 GA의 보기의 ID 값이다.
result = service.data().ga().get(
            ids='ga:보기의id값',
            start_date='7daysAgo',
            end_date='today',
            metrics='ga:sessions,ga:pageviews').execute()

코드를 실행하면 결과가 오는 것을 볼 수 있다.

 

ids에 들어갈 ga보기 id 값은 아래와 같이 확인할 수 있다.

 

 

다음 글에서는 본격적으로 데이터를 가져와 보겠다.

 

 

 

Google Analytics API 사용법 ②

GA를 활용하여 행동데이터를 수집하고 대시보드를 통한 분석 이외에 API 호출을 통한 데이터를 전송받아 대시보드에서는 나타낼 수 없는 표나 그래프를 작성하거나 해당 데이터

bgradecoding.tistory.com

 

반응형