AI는 BigQuery 쿼리도 할 수 있을까?

안녕하세요, 인트렌치 컨설팅 정소영입니다.

디지털 전환이 가속화되면서, 데이터 분석 역량은 모든 비즈니스의 핵심 경쟁력으로 부상했습니다.

특히 Google Analytics 4는 기존 세션 기반 분석에서 벗어나 이벤트 중심 데이터 구조를 도입함으로써, 사용자 행동을 더욱 세밀하게 파악할 수 있도록 변화하였는데요.

사실 GA4만으로는 얻을 수 있는 인사이트에 한계가 존재합니다.

또한, 더 깊이 있는 데이터 분석을 위해 BigQuery 활용에 대한 니즈가 있더라도, 데이터 추출 및 분석에 앞서 GA4 데이터와 스키마 구조에 대한 이해도가 필수적이므로 숙련된 개발자와의 협업 없이는 원하는 데이터를 추출하기 어려운 경우가 많습니다.

이런 문제를 해결하기 위해 Chat GPT와 같은 AI 도구를 활용할 수 있습니다.

본 글에서는 GA4 이벤트 데이터 스키마를 살펴보고, Chat GPT를 활용해 복잡한 SQL 쿼리를 더욱 쉽게 작성하는 방법에 대해 알아보겠습니다.

1. GA4 이벤트 데이터 스키마의 특징

GA4는 기본적으로 모든 사용자 행동을 이벤트 단위로 기록합니다.

데이터 분석 시 정확한 쿼리 구상과 목표 설정을 위해서는 이러한 GA4 데이터의 구조와 다양한 속성 값에 대한 이해가 필요합니다.

스키마 개요

대표적인 컬럼을 간단히 정리한 GA4 이벤트 데이터 BigQuery 스키마는 아래 표와 같습니다. (참고 공식 문서 링크)

예시 Raw 데이터


정제되지 않은 GA4 Raw 데이터는 다중 RECORD 구조로 다소 특이하게 구성되어 있다.

위 이미지 내 itemsevent_params 같이 중첩 구조를 갖는 컬럼의 데이터를 다루려면 BigQuery에서 UNNEST() 함수로 개별 행으로 분해하는 작업이 선행되어야 하는데요.

이와 같은 구성 때문에 초보자분들은 물론, GA4 데이터에 익숙하지 않은 개발자 분들에게도 원하는 정보를 한 번에 추출하기가 까다롭게 느껴질 수 있습니다.

2. 빅쿼리를 활용한 GA4 데이터 분석

GA4 데이터 분석의 핵심은 방대한 이벤트 정보에서 필요한 부분을 빠르게 선별하고, 목적에 맞게 집계/정렬하는 과정입니다.

빅쿼리에서 복잡한 스키마를 다룰 시, 활용 가능한 구문을 미리 파악하고 있는 것이 좋습니다.

GA4 데이터 추출 시 주로 사용되는 항목은 아래와 같습니다.

  • UNNEST() 사용: 중첩된 배열 구조(items)를 행 단위로 분해해 원하는 필드를 기준으로 분석
  • WHERE 조건 필터링: event_name이나 날짜 범위 등, 원하는 조건을 배치하여 필요한 데이터 필터링
  • GROUP BY와 집계 함수: ~별 (GROUP BY) 구매량, 페이지뷰, 세션 수 등 원하는 지표를 항목별로 집계

3. AI 도구를 활용한 쿼리 자동화

복잡한 GA4 스키마 및 SQL이 익숙지 않은 초심자거나, 반복적인 분석 업무를 처리해야 하는 경우 AI가 쿼리 작성 과정을 보조해 줄 수 있습니다.

이처럼 빠른 쿼리문 확보를 위해 GA4 데이터 구조와 원하는 결과물을 AI에게 설명하고, 원하는 데이터를 얻는 데 사용된 프롬프트와 결과물을 공유해보려고 합니다.

데이터 예시

아래 이미지는 event_date, event_name, user_pseudo_id, source, medium, items를 포함한 구매 데이터 (purchase 이벤트) 의 예시입니다.


가공 없이 일부 컬럼만 추출한 purchase 이벤트의 데이터 예시

해당 purchase 이벤트에서 특정 제품군 (‘건강식품’) 의 구매 수량을 사용자의 첫 트래픽 소스 (traffic_source) 별로 추출하고자 한다고 가정해보겠습니다.

우선 AI에게 데이터 스키마에 대한 설명을 제시합니다.

데이터 스키마 설명


데이터 스키마 설명 프롬프트

이 과정을 통해 AI는 GA4가 이벤트 기반이며 중첩된 RECORD 필드를 포함한다는 점을 인식하게 됩니다.

이후 추출 요건 및 원하는 결과 테이블에 대한 프롬프트를 작성, 전송합니다.

(BigQuery에는 사용량, 즉 할당량의 제한이 존재하므로 조회 기간에 대하여 적절한 조절이 필요할 수 있는 점에 유의가 필요합니다. 참고 링크)

분석 요청 프롬프트


분석 요건 및 결과물 요청 프롬프트

이같이 구체적인 요구사항을 제시함으로써, AI가 실제 데이터에 접근하지 않고도 스키마와 요구 사항을 조합하여 쿼리를 제공할 수 있습니다.


BigQuery 쿼리를 제공하는 AI 답변 화면, 꽤나 깔끔하게 정리되어 있음을 볼 수 있다.

상단 이미지 내 AI가 제공한 SQL 쿼리는 아래와 같습니다.

AI가 반환한 SQL 쿼리 예시

마지막으로 해당 쿼리를 직접 실행해보기 위해 FROM 절의 your_project_id와 analytics_your_dataset를 본인의 BigQuery 프로젝트 ID와 데이터 세트 ID (analytics_GA 속성 ID) 로 변경합니다.

해당 프로젝트/데이터 세트/테이블 ID를 확인하기 위해서는 우선 GA4 관리 메뉴에 접속합니다. (관리 -> 속성 설정 -> 속성 ID)


GA4 관리자 메뉴 내 GA 속성 ID

BigQuery 화면으로 이동, 앞서 확인한 GA4 속성 ID를 검색한 후,
옵션 내 “ID 복사” 시 쿼리에 사용할 BigQuery 프로젝트, 데이터 세트 ID 가 포함된 테이블 ID 를 가져올 수 있으며,
좌측 하단 정보창을 통해 프로젝트/데이터 세트/테이블 ID 등의 세부 정보를 확인할 수 있습니다.


BigQuery 화면 내에서 GA 속성 ID 검색 -> 프로젝트/데이터 세트/테이블 ID를 확인하고 가져오기

마지막으로, 직접 돌려본 쿼리 결과는 아래와 같습니다.

결과 예시


직접 돌려본 쿼리 결과

위와 같이 원본 데이터보다 원하는 요건을 한 눈에 확인하기 용이한 형태로 데이터를 추출할 수 있습니다.

이벤트 기반으로 기록된 데이터를 어떻게 가공하느냐에 따라 분석 결과의 질이 결정되기 마련인데, AI를 통한 이번 작업의 결과물은 활용 가능한 것을 확인할 수 있었습니다.

다만 아직 발전 중인 AI의 결과물은 무조건적으로 신뢰할 수 있는 수준은 아니라 생각되어 주의가 필요합니다.

4. 마무리하며

GA4 데이터의 BigQuery 분석을 위해서는 쿼리문에 대한 지식에 더불어 수집된 데이터와 스키마의 명확한 이해가 필수적입니다.

또한 실무에 활용될 만한 추출 요건을 위해 어떤 구조로 쿼리를 구상하고 추출해야 하는지 감이 잡히지 않을 수 있습니다.

이로 인해 BigQuery를 활용한 데이터 추출과 분석의 진입 장벽이 다소 높아 보일 수 있으나, AI 도구를 통해 전문 지식이 없는 초보자도 필요한 정보의 추출이 가능해지며 숙련도 및 활용도를 높이기 용이해질 것으로 생각됩니다.

이번 글이 진입 장벽으로 인해 BigQuery를 활용한 GA4 분석을 망설이고 계신 분들께 조금이나마 도움이 되었길 바라며, 오늘도 읽어주셔서 감사합니다.

Entrench Consulting
위로 스크롤