BigQuery 내보내기 설정과 원본 이벤트 표 구조 읽기
GA4 BigQuery 내보내기는 보고서로 가공되기 전의 원본 이벤트를 빅쿼리로 그대로 보내는 연동 설정입니다.
BigQuery 내보내기 설정과 원본 이벤트 표 구조 읽기, 무엇을 배우는지
GA4 보고서는 값의 종류가 많은 측정기준을 (other)로 묶고, 탐색은 기간이 길면 표본을 뽑습니다. 이런 제약 없이 원본을 그대로 보려면 빅쿼리로 내보내야 합니다. 다만 내보내기를 사용 설정하는 것만으로 끝나지 않습니다. 어느 방식으로 받는지에 따라 표 이름이 달라지고, 쿼리에서 이름을 잘못 쓰면 데이터가 없다고 나옵니다. 준이아빠블로그가 만든 GA4와 같은 모양의 관리 화면에서 두 방식을 비교해 보고, 원본 표가 어떤 모양인지도 함께 정리합니다.
일일 내보내기
일일 내보내기는 하루가 끝난 뒤 그날 데이터를 한 번에 보내는 방식입니다. events_20260813처럼 날짜가 붙은 표가 하루에 하나 만들어지고, 대개 다음 날 오전에 들어옵니다. GA4 표준 속성에서 추가 비용 없이 쓸 수 있습니다.
스트리밍 내보내기
스트리밍 내보내기는 이벤트가 들어오는 대로 몇 분 안에 보내는 방식입니다. events_intraday_20260813처럼 intraday가 붙은 표에 계속 쌓이고, 하루가 지나면 일일 표로 정리됩니다. 이 방식만 별도 비용이 붙습니다.
중첩 필드
중첩 필드는 한 칸 안에 여러 값이 배열로 들어 있는 구조입니다. GA4 원본 표의 event_params가 그렇습니다. 이벤트 하나에 매개변수가 여럿 붙기 때문인데, 그래서 매개변수 값을 꺼내려면 UNNEST로 배열을 펼친 뒤 이름으로 골라야 합니다.
STEPS
관리 > BigQuery 링크 화면에서 따라 하는 순서
실습에서 진행하는 순서를 글로 옮기면 아래와 같습니다. 실제 GA4 속성에서도 같은 순서로 하면 됩니다. 단계를 누르면 그 단계의 화면을 크게 볼 수 있습니다.
왼쪽 아이콘 줄 맨 아래 톱니를 누르고 속성 묶음에서 제품 링크를 누릅니다. 빅쿼리 링크가 여기 있습니다. 링크를 만들 때는 구글 클라우드 프로젝트와 데이터 위치를 함께 정하는데, 위치는 나중에 바꿀 수 없으므로 처음에 신중히 고릅니다.
지금은 일일 내보내기입니다. 하루가 끝난 뒤 events_20260813처럼 날짜가 붙은 표가 하나 만들어집니다. 여러 날을 한 번에 조회할 때는 표 이름에 와일드카드를 써서 events_* 형태로 묶고 _TABLE_SUFFIX로 기간을 좁힙니다.
스트리밍을 고르면 events_intraday_20260813처럼 intraday가 붙은 표가 나옵니다. 오늘 데이터를 바로 보려면 이 표를 읽어야 하고, 어제까지의 데이터는 일일 표에 있습니다. 두 표의 구조는 같지만 이름이 다르므로, 쿼리를 짤 때 어느 쪽을 읽는지 먼저 정합니다.
FAQ
자주 묻는 질문
실습을 마친 뒤 자주 나오는 질문을 정리했습니다. 질문을 누르면 답이 열립니다.
대부분은 일일로 충분합니다. 어제까지의 데이터를 분석하는 일에는 일일 내보내기면 되고 추가 비용도 없습니다. 스트리밍이 필요한 경우는 정해져 있습니다. 오늘 일어난 일을 몇 분 안에 확인해야 하거나, 실시간으로 다른 시스템에 값을 넘겨야 할 때입니다. 이벤트가 많은 서비스라면 스트리밍 비용이 만만치 않으므로, 정말 실시간이 필요한지 먼저 확인합니다. 둘을 함께 사용 설정할 수도 있습니다. 그러면 오늘 데이터는 intraday 표에서, 지난 데이터는 일일 표에서 읽습니다.
가공 단계가 다르기 때문입니다. 빅쿼리로 가는 것은 원본 이벤트라 GA4 보고서가 적용하는 처리가 들어가지 않습니다. 보고서 쪽은 세션을 묶고, 카디널리티가 높은 값을 (other)로 정리하고, 데이터 기준을 적용하고, 기여 분석 모델로 전환을 나눕니다. 원본에는 그런 것이 없어서 같은 지표를 직접 계산하면 값이 어긋납니다. 세션수를 예로 들면, 보고서와 맞추려면 session_start 이벤트를 세는 것이 아니라 사용자별 세션 식별자를 세야 합니다. 두 숫자가 다르다고 어느 한쪽이 틀린 것이 아니라, 무엇을 어떻게 세는지가 다릅니다.
event_params 배열을 펼친 뒤 이름으로 골라야 합니다. 이벤트 하나에 매개변수가 여럿 붙기 때문에 한 칸 안에 배열로 들어 있습니다. UNNEST로 배열을 행으로 펼치고 key가 원하는 매개변수 이름인 줄만 남긴 뒤, 값의 자료형에 맞는 칸에서 꺼냅니다. 값은 문자열, 정수, 실수 칸이 따로 있어서 어느 칸에 들어 있는지 확인해야 합니다. 페이지 주소는 문자열 칸, 매출 금액은 실수 칸에 들어가는 식입니다. 이 구조 때문에 GA4 원본 쿼리는 처음에 낯설게 느껴지지만, 매개변수를 꺼내는 형태 한 가지를 익혀 두면 대부분의 쿼리에 그대로 씁니다.
세 가지를 봅니다. 첫째로 데이터 위치입니다. 링크를 만들 때 고른 위치는 나중에 바꿀 수 없어서, 다른 시스템과 함께 쓸 계획이 있으면 그쪽에 맞춥니다. 둘째로 내보낼 스트림입니다. 웹과 앱 스트림을 모두 보낼지 골라야 하고, 나중에 바꿀 수는 있지만 지난 데이터는 소급되지 않습니다. 셋째로 비용입니다. 저장 비용은 데이터 양에, 조회 비용은 쿼리가 읽는 양에 붙습니다. 날짜 조건 없이 events_*를 통째로 읽는 쿼리를 습관처럼 쓰면 비용이 빠르게 늘어납니다. 처음부터 _TABLE_SUFFIX로 기간을 좁히는 습관을 들이는 편이 낫습니다.
3줄 요약
- 일일 내보내기는 날짜가 붙은 표를 하루에 하나 만들고, 스트리밍은 intraday 표에 계속 쌓습니다. 쿼리 전에 어느 쪽을 읽는지 정합니다.
- 빅쿼리로 가는 것은 원본이라 보고서의 가공이 들어가지 않습니다. 두 숫자가 다른 것은 세는 방법이 다르기 때문입니다.
- 매개변수는 event_params 배열에 들어 있습니다. UNNEST로 펼쳐 이름으로 고르고 자료형에 맞는 칸에서 꺼냅니다.
이어서 볼 튜토리얼
- GA4 분석데이터 기준 적용과 카디널리티 흔적 찾기GA4의 (other) 행은 한 측정기준의 값 종류가 표가 담을 수 있는 수를 넘겼을 때 나머지를 하나로 묶어 놓은 줄입니다.
- GA4 세팅맞춤 측정기준 등록해 매개변수를 보고서에 올리기GA4 맞춤 측정기준은 이벤트와 함께 들어오는 매개변수를 보고서의 측정기준으로 쓸 수 있게 등록하는 설정입니다.
- GA4 분석사용자, 세션, 이벤트 수를 구분해서 읽기GA4 사용자는 중복을 뺀 사람 수, 세션은 방문 묶음, 이벤트 수는 그 안에서 일어난 기록의 개수입니다.
- GA4 분석기여 분석 모델 바꿔 채널 평가 비교하기GA4 기여 분석 모델은 하나의 전환에 여러 채널이 관여했을 때 그 공을 어느 채널에 얼마나 나눠 줄지 정하는 규칙입니다.