본문 바로가기

파이썬으로 구글 애널리틱스 데이터 가져오기

|||||||||||||| 2023. 1. 18.

블로그를 운영하시는 분들을 대부분 구글 애널리틱스를 사용하실 것입니다. 저도 당연히 구글 애널리틱스를 사용하고 있습니다. 구글 애널리틱스를 사용하면 블로그에 대한 다양한 분석자료를 얻을 수 있기 때문에 블로그를 사용하시는 분들은 꼭 사용해야 한다고 생각됩니다.

아무튼 그래서 이번에는 파이썬으로 구글 애널리틱스 데이터를 가져오는 것을 한번 해보려고 합니다. 참고로 저는 코딩의 코자도 모르는 코린이입니다. 정말 코딩에 대한 지식수준이 낮기 때문에 제가 하는 방법이 정답이 아닐 수도 있습니다. 다만 제가 직접 시도를 해서 성공을 한 후기라고 생각해 주시면 감사하겠습니다.

 

여기에 작성된 내용은 아래 링크를 기반으로 작성되었습니다.

 

 

API Quickstart  |  Google Analytics Data API  |  Google Developers

API Quickstart Stay organized with collections Save and categorize content based on your preferences. This page shows you how to get started with the Google Analytics Data API v1 in your favorite programming language using the client Libraries. Step 1. Ena

developers.google.com

사실 위 링크의 설명대로 그대로 진행하면 됩니다. 하지만 영어로 되어있고 제가 코린이기 때문에 몇 번의 실패를 하고 성공을 했습니다. 저 같은 분이 있을 수도 있기 때문에 좀 자세하게 설명을 해보도록 하겠습니다.

 

 

0 단계 - 애널리틱스 API 간단 설명

구글 애널리틱스의 데이터를 가져오기 위해서는 Google Cloud를 활용해야 합니다. Google Cloud는 구글에서 서비스하는 클라우드 플랫폼입니다. 구글의 데이터센터 인프라를 기반으로 컴퓨팅, 스토리지, 네트워킹, 빅데이터, 머신 러닝등의 다양한 서비스를 제공하고 있습니다. 이런 서비스들 중에 제가 하려는 구글 애널리틱스 API도 제공을 하고 있습니다. 이 API를 이용해서 구글 애널리틱스 데이터를 가져오려고 합니다.

 

Google Cloud에서 구글 애널리틱스 API는 여러 가지가 있는데 어떤 것을 사용해야 할지 몰라서 좀 찾아보니 "Reporting API v4"를 사용하는 블로그와 예제를 볼 수 있었습니다. 그래서 "Reporting API v4"문서를 찾아보니 이 API는 구글 애널리틱스 4(GA4) 속성을 지원하지 않는 것을 볼 수 있었습니다.

"Reporting API v4"는 유니버설 애널리틱스만 지원을 하는 것입니다. 하지만 유니버설 애널리틱스는 2023년 7월 1일부터 신규 데이터를 더 이상 처리하지 않는 것으로 알고 있습니다.

 

즉, 2023년 7월 1일부터 유니버설 애널리틱스는 사용할 수 없다는 뜻이고 2023년 7월 1일부터는 구글 애널리틱스 4(GA4)를 사용해야 합니다. 유니버설 애널리틱스 지원에 관한 내용을 아래 링크에 자세하게 나와있습니다.

 

 

유니버설 애널리틱스 기능 지원 중단 예정 - 애널리틱스 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

 

"Reporting API v4"를 사용하게 되면 2023년 7월 1일부터 사용할 수 없을 확률이 매우 크기 때문에 이 API를 사용할 수 없었습니다.

 

 

그래서 GA4 속성을 지원하는 API를 사용해야 하는데 그것은 바로  "Google Analytics Data API (GA4)"입니다. "Google Analytics Data API (GA4)" GA4속성을 지원하기 때문에 2023년 7월 1일 이후에도 문제없이 사용이 가능할 것으로 예상이 됩니다. 

그렇기 때문이 "Google Analytics Data API (GA4)"를 파이썬에서 이용해서 구글 애널리틱스 데이터를 가져와봤습니다. 그럼 단계별로 설명을 해보도록 하겠습니다.

 

그리고 새로운 구글계정을 생성해소 진행하는 것을 추천드립니다. 혹시나 계정에 문제가 생긴다면 기존의 계정에 지장이 없도록 하기 위함입니다.

 

1단계: 프로젝트 생성 및 API 활성화, 서비스계정 생성

우선 구글에 로그인을 합니다. Google Cloud에서 직접 프로젝트를 생성하고 API를 활성화하고 서비스계정을 생성해야 합니다. 하지만 아래 링크에 있는 버튼을 클릭만 하면 알아서 프로젝트가 생성이 되고 API가 활성화되고 서비스계정도 자동으로 생성이 됩니다.

그렇기 때문에 간단하게 진행할 수 있도록 아래 링크에서 진행해 보도록 하겠습니다.

 

API Quickstart  |  Google Analytics Data API  |  Google Developers

API Quickstart Stay organized with collections Save and categorize content based on your preferences. This page shows you how to get started with the Google Analytics Data API v1 in your favorite programming language using the client Libraries. Step 1. Ena

developers.google.com

접속을 하면 "API Quickstart"라는 페이지를 확인할 수 있습니다. 

 

 

이 페이지에서 파란색으로 된 "Enable the Google Analytics Data API v1" 버튼을 클릭합니다.

 

위 사진과 같은 창이 뜨게 되고 여기에 프로젝트 이름을 입력하고 "NEXT"버튼을 클릭합니다.

 

약간의 로딩시간이 지난 후 위와 같은 창이 뜹니다. 프로젝트와 서비스 계정이 성공적으로 생성이 됐다는 메시지입니다. 그리고 "DOWNLOAD PRIVATE KEY AS JSON" 버튼을 눌러서 json 파일을 다운로드합니다. 이 파일은 생성된 서비스계정을 인증하는 데 사용되는 비공개 키이기 때문에 관리를 잘하시기를 바랍니다. 이 키가 유출이 된다면 아무나 여러분의 프로젝트에 접근을 할 수 있습니다. 

이 json 파일을 나중에 파이썬 코드를 작성할 때 필요합니다. 작성할 파이썬 코드와 같은 폴더에 저장해 두시기를 바랍니다.

 

다운로드가 되었다면 "DONE"버튼을 클릭합니다.

 

그리고 아래 링크를 클릭해서 Google Cloud 콘솔 사이트로 접속을 합니다.

 

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

 

Google Cloud 콘솔 사이트에 접속을 하면 위와 같습니다. 위 사진에서 빨간 박스를 보면 방금 여러분이 생성을 했던 프로젝트가 보일 것입니다. 이제 여기에서 API가 활성화 됐는지 확인을 하고 서비스계정을 확인하면 됩니다. 먼저 API가 활성화되었는지 확인해 보겠습니다.

 

위 사진과 같이 왼쪽 상단의 3줄 버튼을 클릭하고 "API 및 서비스"에 마우스를 올려놓으면 새로운 메뉴가 나오고 여기에서 "사용 설정된 API 및 서비스"버튼을 클릭합니다.

 

그러면 위와 같은 페이지가 나오고 "Google Analytics Data API"가 보입니다. "Google Analytics Data API"가 보이는 것 자체만으로도 활성화가 되었다는 것을 확인할 수 있습니다. 혹시나 몰라서 클릭을 해 봤습니다.

 

위 사진과 같이 상태에 "사용 설정됨"이라는 메시지를 확인할 수 있습니다.

 

이제 서비스 계정을 확인해 보겠습니다.

 

다시 왼쪽 위의 3줄을 클릭하고 "IAM 및 관리자"버튼에 마우스를 올려놓으면 메뉴가 나오는데 여기에서 "서비스 계정"을 클릭합니다.

 

위 사진과 같이 나올 것입니다. 제 계정의 정보가 있기 때문에 모자이크 처리 했습니다. 여기에서 빨간색 박스로 표시한 이메일을 클릭합니다.

 

위 사진과 같은 화면을 볼 수 있습니다. 이 서비스 계정의 이메일을 확인할 수 있습니다. 이 이메일을 복사를 해서 메모장이나 본인이 편한 곳에 붙여 넣기 합니다. 이 이메일을 주소를 구글 애널리틱스의 액세스 계정에 추가해야 합니다.

 

위 내용대로 정상적으로 따라 하셨다면 1단계는 마무리입니다.  우리는 1단계에서 프로젝트 생성, API 키 다운로드(json), 서비스 계정 이메일 복사를 진행했습니다.

 

 

2단계: 구글 애널리틱스 4(GA4) 속성에 액세스 계정 추가 및 속성 ID 확인

2단계에서는 구글 애널리틱스에 1단계에서 생성된 서비스 계정을 액세스 계정에 추가하고 GA4의 속성 ID를 확인하는 과정입니다. 우선 본인의 구글 애널리틱스에 접속을 합니다.

 

애널리틱스 페이지에서 왼쪽 아래에 있는 톱니바퀴 버튼을 클릭합니다.

 

와 사진과 같은 화면에서 "계정 액세스 관리"버튼을 클릭합니다.

 

위 사진같이 애널리틱스에 액세스가 가능하 계정들의 목록이 보입니다. 저 같은 경우는 기본적인 관리자 계정 1개와 애널리스트로 2개의 계정을 등록을 했습니다. 일반적인 상황이라면 관리자 계정 1개만 있는 것이 정상입니다.

 

여기에서 오른쪽 위에 "+"버튼을 클릭하고 "사용자 추가"를 클릭합니다.

 

위와 같은 창이 뜨는데 여기에 위에서 생성했던 Google Cloud의 서비스 계정 이메일을 입력해야 합니다. 그리고 표준 역할은 "뷰어"이상의 역할만 할당하면 됩니다. Google Cloud의 서비스 계정 이메일을 입력하고 뷰어 이상의 표준 역할을 선택하고 "추가"버튼을 클릭합니다.

위 사진과 같이 서비스 계정의 이메일이 추가된 것을 확인할 수 있습니다.

 

그리고 GA4 속성 ID를 확인해야 합니다.

위 사진과 같은 화면에서 "속성 설정" 버튼을 클릭합니다.

 

위 사진과 같은 화면이 보이고 오른쪽 위에 속성 ID 글자 옆에 숫자로 속성 ID를 확인할 수 있습니다. 이 속성 ID를 복사해서 어딘가 메모를 해놓습니다.

 

이제 모든 준비가 끝났습니다. 이제 파이썬에서 패키지를 설치하고 코드를 작성하면 됩니다.

 

 

3단계: 패키지 설치 및 코드 작성

우선 python-analytics-data라는 패키지를 설치해야 합니다. 이 패키지의 github는 아래 링크를 클릭하면 확인할 수 있습니다. 

 

 

GitHub - googleapis/python-analytics-data

Contribute to googleapis/python-analytics-data development by creating an account on GitHub.

github.com

 

파이썬 터미널창을 열어서 본인의 가사환경에 아래 명령어를 입력합니다.

pip install google-analytics-data

위 와 같이 입력을 하고 엔터키를 누르면 python-analytics-data 패키지가 설치가 진행됩니다.

 

그리고 이제 코드를 작성하면 됩니다. 제가 이글에서 가장 처음에 걸었던 Quickstart 링크에 예제코드도 있습니다.

 

 Quickstart 링크에 있는 코드를 참고해서 위와 같이 코드를 작성했습니다. 이 코드파일과 json파일은 동일한 폴더에 넣고 진행을 해야 하고 스크립트가 json 파일의 위치를 알아야 하기 때문에 2~3줄이 추가되었습니다. 모자이크 된 부분에 파일의 이름을 넣으면 됩니다. 그리고 14줄에 모자이크 된 부분에 GA4의 속성 ID를 입력하면 됩니다. 

 

위 코드를 실행한 결과입니다. 7일 전부터 오늘까지 제 블로그에 접속한 사람들의 지역과 숫자가 나옵니다. 이 코드를 응용을 한다면 구글 애널리틱스에서 다양한 데이터를 가져올 수 있을 것 같습니다.

 

코드는 아래에 공유하겠습니다.

# https://developers.google.com/analytics/devguides/reporting/data/v1
import os
os.environ ['GOOGLE_APPLICATION_CREDENTIALS'] = './json 파일 이름.json'

from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
    DateRange,
    Dimension,
    Metric,
    RunReportRequest,
)


def sample_run_report(property_id="GA 속성 ID"):
    """Runs a simple report on a Google Analytics 4 property."""
    # TODO(developer): Uncomment this variable and replace with your
    #  Google Analytics 4 property ID before running the sample.
    # property_id = "YOUR-GA4-PROPERTY-ID"

    # Using a default constructor instructs the client to use the credentials
    # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    client = BetaAnalyticsDataClient()

    request = RunReportRequest(
        property=f"properties/{property_id}",
        dimensions=[Dimension(name="city")],
        metrics=[Metric(name="activeUsers")],
        date_ranges=[DateRange(start_date="7daysAgo", end_date="today")],
    )
    response = client.run_report(request)

    print("Report result:")
    for row in response.rows:
        print(row.dimension_values[0].value, row.metric_values[0].value)

sample_run_report()

"json 파일 이름"과 "GA 속성 ID"만 본인의 것으로 입력을 한다면 정상적으로 동작을 할 것입니다.

 

 

이상으로 파이썬으로 구글 애널리틱스 데이터를 가져오는 방법에 대한 글을 마치도록 하겠습니다. 많은 분들에게 도움이 되기를 바랍니다. 감사합니다.