
Claude Code를 활용해 GA4의 이상치를 감지하고 원인 가설까지 출력하게 만드는 프롬프트 설계
요약
Claude Code를 활용하여 GA4 BigQuery 데이터를 분석하고, 데이터의 이상치를 자동으로 감지하며 그 원인에 대한 가설까지 도출하는 프롬프트 설계 방법을 소개합니다.
핵심 포인트
- BigQuery의 중첩 데이터를 처리하기 위한 SQL 설계 방법 제시
- 이상치 판정 기준과 가설 카테고리를 명시한 프롬프트 템플릿 제공
- 데이터 분석부터 원인 가설 도출까지의 업무 자동화 워크플로우 구축
서론
"지난주 세션 수가 갑자기 떨어졌는데 원인을 모르겠다", "전환율(Conversion Rate)이 급상승했는데 무엇이 요인인지 특정하는 데 반나절이 걸렸다"——이런 경험은 없으신가요?
GA4 데이터를 매일 체크하는 습관이 있더라도, 이상치를 발견한 후 "왜 발생했는가"를 밝혀내는 작업은 생각보다 많은 수고와 시간이 소요됩니다. 특히 중소 규모의 EC(이커머스)를 운영하는 분들의 경우, 분석 전문 스태프를 두기 어려워 경영자나 컨설턴트가 직접 데이터를 추적하는 사례도 적지 않습니다.
이 기사에서는 Claude Code를 활용하여, GA4의 BigQuery 에스포트(Export) 데이터로부터 이상치를 자동 감지하고, 나아가 그 원인 가설까지 출력하게 만드는 프롬프트 설계 방법을 소개합니다. SQL을 포함하는 부분도 있지만, 복사해서 바로 사용할 수 있도록 정리했으므로 BigQuery에 익숙하지 않은 분들도 참고하실 수 있습니다.
GA4 × BigQuery에서 이상 감지가 필요한 이유
GA4 관리 화면에도 비교 기능이나 알림(Alert) 기능은 존재하지만, 세밀한 입도(Granularity)에서의 이상 감지나 여러 지표의 동시 모니터링에는 한계가 있습니다. BigQuery로 GA4 데이터를 에스포트함으로써 다음과 같은 유연한 분석이 가능해집니다.
- 유입 경로별, 디바이스별, 랜딩 페이지별 등 다차원적인 이상 감지
- 일별, 시간대별, 세그먼트별 전주 대비·전월 대비 자동 산출
- 전환율뿐만 아니라 장바구니 추가율이나 이탈률 등 독자적인 지표 모니터링
이러한 분석을 매번 수동으로 SQL을 작성하여 실행하는 것은 비효율적입니다. Claude Code에 프롬프트를 전달하여 "SQL 생성 → BigQuery 질의 → 이상치 판정 → 원인 가설 출력"까지 자동화함으로써, 일일 모니터링 업무를 대폭 효율화할 수 있습니다.
이상치를 취득하는 BigQuery 쿼리 설계
먼저, Claude Code에 전달하기 위한 전제 조건인 SQL을 설계합니다. GA4의 BigQuery 에스포트 테이블에서는 세션 ID나 이벤트 파라미터가 중첩(Nested)된 형식으로 저장되어 있기 때문에, UNNEST를 사용한 전개가 필요합니다.
다음은 일별 세션 수와 구매 전환 수를 유입 경로(medium/source)별로 집계하는 쿼리의 예시입니다.
WITH session_base AS (
SELECT
PARSE_DATE('%Y%m%d', event_date) AS date,
...
ga_session_id는 UNNEST(event_params)를 통해 취득하고 있다는 점과, 유입 경로 특정에 collected_traffic_source.manual_medium / manual_source를 사용하고 있다는 점이 포인트입니다. 이 SQL을 CSV 등으로 출력해 두면, 다음 단계에서 Claude Code의 입력 데이터로 활용할 수 있습니다.
Claude Code에 전달할 프롬프트 설계
취득한 CSV 데이터를 Claude Code에 전달할 때의 프롬프트 설계가 높은 정밀도의 이상 감지와 가설 생성의 핵심입니다. 다음 템플릿을 참고해 주세요.
다음은 GA4의 BigQuery 에스포트 데이터에서 취득한, 지난 30일간의 유입 경로별 세션 수·전환 수·CVR의 일별 데이터입니다.
[CSV 데이터를 여기에 붙여넣기]
위 데이터를 분석하여 다음 순서로 답변해 주세요.
...
이 프롬프트의 포인트는 세 가지입니다. 판정 기준(±20%)을 수치로 명시할 것, 가설을 3가지 카테고리로 나누어 망라성(Comprehensiveness)을 확보할 것, 그리고 확인 방법까지 출력하게 하여 다음 액션으로 직결시키는 것입니다.
출력 결과의 활용과 운용 플로우
Claude Code로부터 출력을 받은 후의 운용 플로우도 설계해 둠으로써, 지속적인 모니터링 체제를 구축할 수 있습니다.
주간 리포트 통합
Claude Code의 출력을 Slack이나 이메일로 전송하는 메커니즘을 결합하면, 매주 월요일 아침에 지난주의 이상치 요약(Summary)을 받는 운용도 실현할 수 있습니다. 자동화 파이프라인의 예로, BigQuery 스케줄 쿼리(Scheduled Query)로 CSV를 출력하고, Python 스크립트로 Claude API를 호출하여 Slack에 통지하는 구성을 들 수 있습니다.
import anthropic
import csv
def load_csv(path: str) -> str:
...
가설 검증의 우선순위 정하기
Claude Code가 출력한 가설을 그대로 모든 건에 대해 추적하는 것은 비효율적입니다. 다음과 같은 관점에서 우선순위를 정하면 실무에 적용하기 쉬워집니다.
- 변동 폭이 큰 것을 우선: ±20%를 기준으로 하더라도, ±50% 이상의 변동은 최우선으로 조사
- 세션 수가 많은 유입원을 우선: 영향 규모가 클수록 매출 임팩트도 큼
- CVR(전환율)과 세션 수가 동시에 변동하는 케이스: 복합적인 문제일 가능성이 높아 조기 대응이 중요
프롬프트 설계 시 빠지기 쉬운 함정
Claude Code를 위한 프롬프트 설계 시, 실제 운영에서 자주 발생하는 과제 몇 가지를 소개합니다.
데이터가 너무 많아 컨텍스트(Context)를 초과하는 문제
30일 치의 유입원별 데이터를 그대로 붙여넣으면 토큰(Token) 수의 상한에 도달할 수 있습니다. 대책으로, 미리 SQL을 통해 상위 10개 유입원으로 좁히거나, 집계 단위(Granularity)를 주 단위로 변경하여 전달하면 안정적입니다.
판단 기준을 모호하게 하면 가설이 분산되는 문제
"이상치를 찾아주세요"라고만 하면, Claude Code가 무엇을 이상치로 간주할지 정해지지 않아 출력이 들쭉날쭉해집니다. "±20% 이상", "절대값으로 100 세션 이상의 변화" 등 수치 기준을 명시함으로써 출력의 일관성을 높일 수 있습니다.
가설 출력만으로 끝내지 말 것
원인 가설이 나와도 "다음에 무엇을 할지"가 프롬프트에 포함되어 있지 않으면 액션(Action)으로 이어지기 어렵습니다. 앞서 언급한 것처럼 확인 방법까지 함께 출력하도록 만드는 것이 실무 활용도를 높이는 비결입니다.
요약
본 기사에서는 Claude Code와 GA4의 BigQuery 익스포트(Export) 데이터를 조합하여, 이상치 탐지부터 원인 가설 출력까지 자동화하는 프롬프트 설계에 대해 소개했습니다.
요점을 정리하면 다음과 같습니다.
- GA4의 BigQuery 데이터에서는
UNNEST(event_params)를 통한 세션 ID 획득과collected_traffic_source를 통한 유입원 획득이 기본임 - 프롬프트에는 판단 기준, 가설 카테고리, 확인 방법의 3가지를 명시함으로써 출력 정밀도를 높일 수 있음
- Python 스크립트를 사용하면 BigQuery 출력 → Claude API 호출까지 자동화할 수 있음
- 가설은 모든 건을 추적하지 말고, 변동 폭과 영향 규모를 기준으로 우선순위를 정해 대응함
우선 가지고 있는 GA4 데이터로 30일 치 CSV를 추출하여, 본 기사의 프롬프트 템플릿을 그대로 테스트해 보시는 것을 권장합니다. 데이터와 씨름하는 시간이 대폭 단축되어, "이상치를 발견하고 끝내는 것"에서 "원인을 가설화하여 다음 수를 두는" 사이클로 전환하실 수 있을 것입니다.
코코나라(coconala)를 통한 의뢰는 이쪽으로 → GA4×BigQuery 기반 구축 서비스
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기