Google Colab 으로 구글애널리틱스(GA4) 데이터 가져오기
파이썬 코드 모음집

Google Colab 으로 구글애널리틱스(GA4) 데이터 가져오기

Mr.Zee 2022. 9. 7.

코랩을 활용해서 마케팅 데이터를 갈무리하기 시작한 지는 얼마 안 되었지만, 확실히
그냥 파이썬을 활용할 때보다 코랩을 운영할 경우 GCP에서 제공하는 API부터 접근성이 급 좋아지는 것을 부정할 수가 없다.

구글 애널리틱스도 예외는 아니어서 그동안 GA4 API들이 가지고 있던 불편함 들을 단 20여 줄 내외의 코드로 연결부터 첫 보고서 임포트까지 마음대로 해낼 수 있다는 것은 큰 장점.

비전공자도 코알못도 가능한 구글 코랩에서 GA4 데이터 가져오기

아마 지금 이 글을 찾아온 대다수의 마케터(?)들의 고민은 어떻게든 GA4 데이터를 조금이라도 편하게 가져와서 이리저리 만져보고 싶은 마음이 굴뚝일 것이다. 하나 아주 조금 아쉽게도 여전히 GA4 데이터 임포트는 구글의 농간인지

데이터 정확도가 오락가락할 때가 있다. 이 때는 주저 없이 빅쿼리를 통해 Raw 데이터를 추출해주자.

일단 구글의 가이드 문서를 따라가야 한다.

내 문서를 바로 주면 좋겠지만, 아쉽게도 세상에 공짜는 없었다...

https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart-client-libraries#python_1

 

API Quickstart  |  Google Analytics Data API  |  Google Developers

API Quickstart 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. Enable the API Click this button to create a new Cloud Platform project, automatically ena

developers.google.com

 

친절하게도 구글은 항상 킥스타터 덕분에 스택오버플로우 부터 각종 나와 비슷한 고민과 처지의 사람들의 슬픈 하소연들을 고수들이 개떡같이 말해도 찰떡같이 알아듣고 해결해주는 (?) 특별한 곳이다.

물론 이것이 구글 프로덕트 상당수의 '진입 장벽'역할도 겸하기 때문에 이런 걸 처음 보는 분들은 마음을 단단히 먹으면 좋겠다.

1단계 API활성화는 별거 없다 진짜 저 버튼만 눌러주면 알아서 진행할 수 있다.

GA4 API Quickstarter

이제 저 파란색 버튼을 누르고 계속 진행하다 보면 credentials.json이라는 파일을 획득할 수 있고, 미리 내려받아 놓자.

이 파일이 필수적인 이유는 구글은 상호통신을 이해서 이 미리 할당받은 credentials.json 파일에 적힌 정보로 실제 API 통신에서 적격 사용자인지를 판별하는 근거로 활용하기 때문.

 

그리고 2단계 또한 똑같이 진행해주면 된다. 파일을 열어보면 "client email" 부분이 있을 거고, 여기 적힌 이메일 계정 (봇)에게 GA4 데이터를 읽을 수 있게 보고서를 공유해주는데 "읽기 권한"만 부여하면 된다.

 

자 이제 코랩에서 파이썬을 운영해줘야 하는데 일단 기본 파이썬 포맷은 똑같기 때문에 구글 가이드 상의 quickstart.py 파일을 복사하거나
아래의 코드를 복사해야 한다.

# [START analyticsdata_quickstart]
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange
from google.analytics.data_v1beta.types import Dimension
from google.analytics.data_v1beta.types import Metric
from google.analytics.data_v1beta.types import RunReportRequest


def sample_run_report(property_id="YOUR-GA4-PROPERTY-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="2020-03-31", 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)
        
if __name__ == "__main__":
    sample_run_report(property_id)


colab에서 진행할 때 생각보다 이 credentail 부분이 애를 많이 먹게 되는데 일단 코랩 자체는 어렵지 않으니 아래 코랩 문서를 복사해서 사용하자.

https://colab.research.google.com/drive/1vMosXCvi71EbSzaUXkZXwK0QGhCXn8OK?usp=sharing 

 

GA4코랩임포트.ipynb

Colaboratory notebook

colab.research.google.com

위 코랩 링크로 들어간 후 구글 드라이브로 사본을 생성해주자. 미리 구글 드라이브엔 폴더를 만들어두는 게 좋다.


그리고 또한 ipynb 파일이 위치한 폴더에 아까 다운로드 받았던 credentials 파일이 위치되어 있어야 한다. 그게 없으면 실행이 안되니 주의!

사본을 생성하고 나면 [    ] 로 되어 있는 부분에 생기는 재생 버튼을 하나씩 눌러주다 보면 첫 번째 셀의 경우 아래 같은 허용 창이 뜰 텐데 허용하고 넘어가 주자.

 

원래 로컬 파일로 이걸 지지고 복고해야 하는 것을 구글 드라이브로 간단하게 처리해주는 과정이다. 구글 드라이브가 연결되고 나면

이제 ls를 통해 목록을 확인해보고 파이썬 패키지를 총 2개를 설치를 해야 하는데 역시 실행 버튼 하나로 해결된다.

이후에 해야 할 일은 내 GA4의 G-ID 번호를 가져다가 Quickstarter.py 내의 property-id를 치환해주는 것.

참 쉽죠?

자주 경험하는 오류

credentials 파일 오류.
많이 없기는 하지만 문제가 생기는 경우, GCP 플랫폼에서 조치해야 한다.

Colab 실행 시 실패.
아마 가장 많이 보게 될 오류인데 아주 조금만 검색하면 대부분 해결 가능하다. 일단 저 위의 코드 자체가 문제가 있는 친구들은 없다. 끽해야 구글 드라이브 연결해주고, ga4를 위한 파이썬 패키지 2개 설치한 게 전부.

실행 시 데이터가 없거나 미조 회상태

이 가이드가 만들어진지는 좀 되어서 첫 데이터 시작일이 2020-03-31로 되어 있다. 또한 디멘션이나 메트릭스가 맞지 않을 수도 있으니 꼭 확인해보자.

 

Python과 GA4가 만나서 할 수 있는 것.

Pandas와 조합하면서 일별 주별 월별 보고서를 스프레드시트며, csv 파일이며 입맛에 맞게끔 재구성이 편리해진다.
일단 빅쿼리랑 다르게 무료다. 빅쿼리도 무료지만 60일 경과되는 데이터는 짤 없이 휘발되는 real DB (이 부분에 대해서는 나중에 한번 더 다룰 예정..)이냐를 봤었을 때 편의성 측면에서 python과 colab에서 별다른 코딩 없이 데이터를 임포트 해올 수 있는 것은 큰 장점이다.

현재 글을 쓰고 있는 22년 9월 기준으로 GA4 데이터를 자동으로 csv화 하려면 유료 툴을 쓰는 게 정신 건강에 이롭다.
그 전 UA버전은?

스프레드시트에서 부가기능으로 1만셀이건 10만셀이건 그 느려 터진 애널리틱스 360에서도 쿼리문까지 가지 않아도 만 건 이상의 데이터를 거뜬히 조회할 수 있었지만, 현재로서는 구글이 GA4 API를 딱히 더 개선해줄 것 같은 느낌은 없다.

있다 하더라도 현재 빅쿼리에서 구글 스프레드시트로 데이터 임포트 기능을 만들어놨는데 굳이? 만들어줄 것 같지도 않고

결국 목마른 자가 우물을 판다고, GA4에 관련한 보고서, RAW 데이터 추출, 데이터 분석 강화는 조금 더 기술적인 부분을 연구하고 공부해야 한다. 애널리틱스의 이벤트 데이터가 어떤 방식으로 추출되는지 어떻게 쌓이는지 구조를 이해하는 게 필요하단 것.

나 또한 SQL을 자격증을 아직 구비해두진 않았지만, 향후 마케팅 업계를 비롯해 GA4에 대한 데이터 수요가 높아지게 될 경우 간단한 쿼리문 정도는 작성하거나 외울 줄 알아야 할 필요가 점점 많아질 것 같다.

댓글

💲 추천 글