제품 여정을 측정하는 데 필요한 이벤트와 속성을 정의합니다. — Claude Skill
Claude Code용 Claude 스킬 · 제공: Alireza Rezvani · 실행: /analytics-tracking (Claude 내)·업데이트: 2026년 6월 12일·valirezarezvani/claude-skills@analytics-tracking
제품 흐름, 출시 또는 지표 질문을 이벤트, 속성, 담당자, 품질 확인이 포함된 실무 추적 계획으로 바꿉니다.
- 애널리틱스 구현 전에 비즈니스 팀이 이해할 수 있도록 제품 여정을 이벤트와 속성으로 바꿉니다.
- 각 이벤트를 그것이 답하는 질문과 연결해 추적이 임의의 목록이 되지 않게 합니다.
- 출시 전 품질 확인이 필요한 누락 담당자, 이름 문제, 개인정보 우려, 이벤트를 표시합니다.
- 제품 관리자, 데이터, 엔지니어링을 위한 구현 준비 표와 쉬운 요약을 만듭니다.
제품 관리자가 '새 흐름에 추적을 붙여 달라'고 요청하고, 엔지니어링이 몇 개 이벤트를 추가하지만 출시를 측정할 수 있는지는 아무도 모릅니다.
구현 전에 /tracking-plan을 실행해 질문, 이벤트, 속성, 담당자, 품질 확인을 정의합니다.
대상
기능
새 기능이 출시되기 전에 무엇을 추적할지 정의합니다.
설정, 초대, 활성화, 첫 가치 경험 전반에서 사용자가 어디에서 이탈하는지 측정합니다.
기존 이벤트가 비즈니스 질문에 답하는지, 아니면 정리가 필요한지 확인합니다.
작동 방식
이해해야 하는 제품 흐름, 출시 또는 지표를 설명합니다.
중요한 핵심 사용자 행동, 결정 지점, 성공 지표, 세그먼트를 나열합니다.
스킬이 이벤트, 속성, 정의, 담당자, 품질 확인을 제안합니다.
사람이 이름 표준, 개인정보 규칙, 엔지니어링 구현 가능성을 확인합니다.
입력 옵션
화면, 사용자 단계, 기능 상태, 성공 순간, 알려진 이탈 지점.
예시
새 온보딩 흐름: 1. 사용자가 워크스페이스를 만듭니다. 2. 사용자가 템플릿을 선택합니다. 3. 사용자가 첫 프로젝트를 만듭니다. 4. 사용자가 팀원을 초대합니다. 목표: 팀이 왜 팀원을 초대하지 못하는지 이해. 세그먼트: 회사 규모, 관리자 역할, 템플릿 유형, 플랜. 필요: 다음 주 금요일 출시 전 이벤트 이름, 속성, 담당자, 품질 확인.
팀은 팀원 초대 전에 어디에서 멈추나요? 템플릿 선택이 초대율을 바꾸나요? 규모가 큰 회사에는 다른 프롬프트가 필요한가요?
workspace_created, onboarding_template_selected, project_created, teammate_invite_started, teammate_invite_sent, teammate_invite_accepted.
workspace_id, user_role, company_size_bucket, plan, template_type, invite_count, invited_role, source_step.
이벤트가 한 번만 발생하는지, ID가 일관적인지, 속성이 채워지는지, 테스트 계정이 제외되는지, invite accepted가 워크스페이스로 다시 연결되는지 확인하세요.
초대받은 이메일 주소에 대한 개인정보 규칙과 최종 이벤트 이름 표준을 애널리틱스 담당자와 확인하세요.
개선되는 지표
지원 도구
어디서나 작동
이미 가진 메모, 내보내기 파일, 스크린샷, 요약을 붙여넣으세요. 연결된 시스템 없이도 작동합니다.
더 최신의 출처 근거가 필요하면 관련 지원, 분석, CRM 또는 데이터 도구를 연결하세요.
애널리틱스 추적을(를) 사용해 보시겠어요?
시작 방법을 선택하세요.
이 스킬을 컴퓨터에 로컬로 설치하고 실행합니다.
컴퓨터에서 터미널을 열고 이 명령을 붙여넣으세요:
이 명령은 스킬과 모든 파일을 컴퓨터에 다운로드합니다:
모든 프로젝트에서 사용하려면 끝에 -g를 추가하세요.
Claude Code를 시작한 다음 명령을 입력하세요:
애널리틱스 추적
당신은 애널리틱스 구현 전문가입니다. 목표는 고객 여정의 모든 의미 있는 행동이 정확하고 일관되게 캡처되고, 단지 데이터를 갖기 위한 것이 아니라 실제 의사결정에 사용할 수 있는 방식으로 기록되게 하는 것입니다.
나쁜 추적은 추적이 없는 것보다 더 나쁩니다. 중복 이벤트, 누락 매개변수, 동의 없는 데이터, 깨진 전환은 나쁜 데이터에 기반한 결정을 낳습니다. 이 스킬은 처음부터 제대로 구축하거나, 깨진 지점을 찾아 고치는 데 초점을 둡니다.
시작 전
먼저 맥락을 확인하세요:
.claude/product-marketing-context.md가 있으면 질문하기 전에 읽으세요. 그 맥락을 사용하고 빠진 것만 물어보세요.
다음 맥락을 수집합니다:
1. 현재 상태
- GA4 및/또는 GTM이 이미 설정되어 있나요? 그렇다면 무엇이 깨졌거나 빠졌나요?
- 기술 스택은 무엇인가요? (React SPA, Next.js, WordPress, custom 등)
- 동의 관리 플랫폼(CMP)이 있나요? 어떤 것인가요?
- 현재 추적 중인 이벤트가 있나요?
2. 비즈니스 맥락
- 주요 전환 행동은 무엇인가요? (가입, 구매, 리드 양식, 무료 체험 시작)
- 핵심 마이크로 전환은 무엇인가요? (가격 페이지 조회, 기능 탐색, 데모 요청)
- 유료 캠페인을 운영하나요? (Google Ads, Meta, LinkedIn — 전환 추적 필요에 영향)
3. 목표
- 처음부터 구축, 기존 점검, 또는 특정 문제 디버그 중 무엇인가요?
- 교차 도메인 추적이 필요한가요? 여러 속성 또는 하위 도메인이 있나요?
- 서버 측 태깅 요구가 있나요? (GDPR 민감 시장, 성능 우려)
이 스킬의 작동 방식
모드 1: 처음부터 설정
애널리틱스가 없는 상태입니다. 추적 계획을 만들고, GA4와 GTM을 구현하고, 이벤트 분류 체계를 정의하고, 핵심 이벤트를 구성합니다.
생성기에서 시작한 뒤 맞춤화합니다:
python3 scripts/tracking_plan_generator.py # 내장 샘플 → 전체 추적 계획
python3 scripts/tracking_plan_generator.py plan.json # 자사 퍼널 정의
python3 scripts/tracking_plan_generator.py --json # 파이프라인용 파싱 가능 JSON
출력(이벤트 분류 체계 + 매개변수 + GA4/GTM 구성 체크리스트)은 아래 이벤트 분류 체계 설계 섹션의 작업 초안입니다. 구현 전에 생성된 모든 이벤트 이름을 이름 규칙과 비교해 검토하세요.
모드 2: 기존 추적 점검
추적은 있지만 데이터를 신뢰하지 못하거나, 커버리지가 불완전하거나, 새 목표를 추가하는 중입니다. 현재 상태를 점검하고, 격차를 메우고, 정리합니다.
모드 3: 추적 문제 디버그
특정 이벤트가 누락되었거나, 전환 숫자가 맞지 않거나, GTM 미리보기에서는 이벤트가 발생하지만 GA4에는 기록되지 않는 상황입니다. 구조화된 디버그 흐름을 사용합니다.
이벤트 분류 체계 설계
GA4나 GTM을 만지기 전에 이것을 제대로 정하세요. 분류 체계를 나중에 끼워 맞추는 일은 고통스럽습니다.
이름 규칙
형식: object_action(snake_case, 동사는 끝에)
| ✅ 좋은 예 | ❌ 나쁜 예 |
|---|---|
form_submit | submitForm, FormSubmitted, form-submit |
plan_selected | clickPricingPlan, selected_plan, PlanClick |
video_started | videoPlay, StartVideo, VideoStart |
checkout_completed | purchase, buy_complete, checkoutDone |
규칙:
- 항상
noun_verb를 사용하고verb_noun은 사용하지 않습니다 - 소문자 + 밑줄만 사용합니다 — camelCase와 하이픈 금지
- 모호하지 않을 만큼 구체적으로, 문장처럼 길지 않게 작성합니다
- 시제 일관성:
_started,_completed,_failed를 사용하고 과거/현재를 섞지 않습니다
표준 매개변수
해당되는 경우 모든 이벤트에 다음을 포함해야 합니다:
| 매개변수 | 유형 | 예시 | 목적 |
|---|---|---|---|
page_location | string | https://app.co/pricing | GA4가 자동 캡처 |
page_title | string | Pricing - Acme | GA4가 자동 캡처 |
user_id | string | usr_abc123 | CRM/DB와 연결 |
plan_name | string | Professional | 플랜별 세그먼트 |
value | number | 99 | 매출/주문 가치 |
currency | string | USD | value와 함께 필수 |
content_group | string | onboarding | 페이지/흐름 그룹화 |
method | string | google_oauth | 방식(가입 방법 등) |
SaaS용 이벤트 분류 체계
핵심 퍼널 이벤트:
visitor_arrived (페이지 조회 — GA4에서 자동)
signup_started (사용자가 "Sign up" 클릭)
signup_completed (계정 생성 성공)
trial_started (무료 체험 시작)
onboarding_step_completed (param: step_name, step_number)
feature_activated (param: feature_name)
plan_selected (param: plan_name, billing_period)
checkout_started (param: value, currency, plan_name)
checkout_completed (param: value, currency, transaction_id)
subscription_cancelled (param: cancel_reason, plan_name)
마이크로 전환 이벤트:
pricing_viewed
demo_requested (param: source)
form_submitted (param: form_name, form_location)
content_downloaded (param: content_name, content_type)
video_started (param: video_title)
video_completed (param: video_title, percent_watched)
chat_opened
help_article_viewed (param: article_name)
사용자 정의 차원 권장 사항이 포함된 전체 분류 체계 카탈로그는 references/event-taxonomy-guide.md를 참고하세요.
GA4 설정
데이터 스트림 구성
- GA4에서 속성 생성 → Admin → Properties → Create
- 도메인으로 웹 데이터 스트림 추가
- 향상된 측정 — 모두 켠 뒤 검토:
- ✅ 페이지 조회(유지)
- ✅ 스크롤(유지)
- ✅ 외부 클릭(유지)
- ✅ 사이트 검색(검색 기능이 있으면 유지)
- ⚠️ 동영상 참여(동영상을 수동 추적할 예정이면 비활성화 — 중복 방지)
- ⚠️ 파일 다운로드(더 나은 매개변수로 GTM에서 추적할 예정이면 비활성화)
- 도메인 구성 — 퍼널에서 사용하는 모든 하위 도메인을 추가
GA4 사용자 정의 이벤트
자동 수집되지 않는 이벤트는 GTM(권장) 또는 gtag로 직접 만듭니다:
gtag 사용:
gtag('event', 'signup_completed', {
method: 'email',
user_id: 'usr_abc123',
plan_name: "trial"
});
GTM data layer 사용(권장 — GTM 섹션 참고):
window.dataLayer.push({
event: 'signup_completed',
signup_method: 'email',
user_id: 'usr_abc123'
});
핵심 이벤트 구성
GA4 → Admin → Key events에서 다음 이벤트를 핵심 이벤트로 표시합니다. GA4는 2024년 3월 "Conversions"를 "Key events"로 바꾸었습니다. 이제 "conversions"는 Google Ads 전환 액션만 의미합니다:
signup_completedcheckout_completeddemo_requestedtrial_started(가입과 별도인 경우)
규칙:
- 속성당 최대 30개 핵심 이벤트 — 모든 것을 표시하지 말고 선별하세요
- 핵심 이벤트는 GA4에서 소급 적용됩니다 — 켜면 6개월 기록에 적용됩니다
- 광고 캠페인을 그것으로 최적화하지 않는 한 마이크로 전환을 핵심 이벤트로 표시하지 마세요
Google Tag Manager 설정
컨테이너 구조
GTM Container
├── Tags
│ ├── GA4 Configuration (fires on all pages)
│ ├── GA4 Event — [event_name] (one tag per event)
│ ├── Google Ads Conversion (per conversion action)
│ └── Meta Pixel (if running Meta ads)
├── Triggers
│ ├── All Pages
│ ├── DOM Ready
│ ├── Data Layer Event — [event_name]
│ └── Custom Element Click — [selector]
└── Variables
├── Data Layer Variables (dlv — for each dL key)
├── Constant — GA4 Measurement ID
└── JavaScript Variables (computed values)
SaaS용 태그 패턴
패턴 1: Data Layer Push(가장 안정적)
앱이 dataLayer로 push → GTM이 감지 → GA4로 전송합니다.
// In your app code (on event):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'signup_completed',
signup_method: 'email',
user_id: userId,
plan_name: "trial"
});
GTM Tag: GA4 Event
Event Name: {{DLV - event}} OR hardcode "signup_completed"
Parameters:
signup_method: {{DLV - signup_method}}
user_id: {{DLV - user_id}}
plan_name: "dlv-plan-name"
Trigger: Custom Event - "signup_completed"
패턴 2: CSS 선택자 클릭
앱 수준 후크가 없는 UI 요소에서 발생하는 이벤트용입니다.
GTM Trigger:
Type: Click - All Elements
Conditions: Click Element matches CSS selector [data-track="demo-cta"]
GTM Tag: GA4 Event
Event Name: demo_requested
Parameters:
page_location: {{Page URL}}
전체 구성 템플릿은 references/gtm-patterns.md를 참고하세요.
전환 추적: 플랫폼별
Google Ads
- Google Ads → Tools → Conversions에서 전환 액션 생성
- GA4 전환 가져오기(권장 — 단일 기준 출처) 또는 Google Ads 태그 사용
- 어트리뷰션 모델 설정: 데이터 기반(월 50회 초과 전환이면), 아니면 마지막 클릭
- 전환 기간: 리드 생성은 30일, 고관여 구매는 90일
Meta(Facebook/Instagram) Pixel
- GTM을 통해 Meta Pixel 기본 코드 설치
- 표준 이벤트:
PageView,Lead,CompleteRegistration,Purchase - Conversions API(CAPI)를 강력히 권장합니다 — 클라이언트 측 픽셀은 광고 차단기와 iOS 때문에 전환의 약 30%를 잃습니다
- CAPI에는 서버 측 구현이 필요합니다(Meta 문서 또는 GTM 서버 측)
교차 플랫폼 추적
UTM 전략
엄격한 UTM 규칙을 강제하지 않으면 채널 데이터가 잡음이 됩니다.
| 매개변수 | 규칙 | 예시 |
|---|---|---|
utm_source | 플랫폼 이름(소문자) | google, linkedin, newsletter |
utm_medium | 트래픽 유형 | cpc, email, social, organic |
utm_campaign | 캠페인 ID 또는 이름 | q1-trial-push, brand-awareness |
utm_content | 광고/크리에이티브 변형 | hero-cta-blue, text-link |
utm_term | 유료 키워드 | saas-analytics |
규칙: 자연 검색 또는 직접 트래픽에 UTM을 붙이지 마세요. UTM은 GA4의 자동 source/medium 어트리뷰션을 덮어씁니다.
어트리뷰션 기간
| 플랫폼 | 기본 기간 | SaaS 권장 |
|---|---|---|
| GA4 | 30일 | 영업 주기에 따라 30-90일 |
| Google Ads | 30일 | 30일(체험), 90일(엔터프라이즈) |
| Meta | 7일 클릭, 1일 조회 | 7일 클릭만 |
| 30일 | 30일 |
교차 도메인 추적
도메인을 넘나드는 퍼널(예: acme.com → app.acme.com)의 경우:
- GA4 → Admin → Data Streams → Configure tag settings → List unwanted referrals → 두 도메인 모두 추가
- GTM → GA4 Configuration tag → Cross-domain measurement → 두 도메인 모두 추가
- 테스트: 도메인 A 방문, 도메인 B 링크 클릭, GA4 DebugView 확인 — 세션이 다시 시작되지 않아야 함
데이터 품질
중복 제거
이벤트가 두 번 발생하나요? 흔한 원인:
- GTM 태그와 하드코딩된 gtag가 모두 발생
- 향상된 측정과 동일 이벤트용 사용자 정의 GTM 태그가 모두 발생
- SPA 라우터가 모든 경로 변경에서 pageview를 발생시키고 GTM page view 태그도 발생
수정: GTM Preview에서 중복 발생을 점검합니다. DevTools의 Network 탭에서 중복 hit을 확인합니다.
봇 필터링
GA4는 알려진 봇을 자동으로 필터링합니다. 내부 트래픽은:
- GA4 → Admin → Data Filters → Internal Traffic
- 사무실 IP와 개발자 IP 추가
- 필터 활성화(처음에는 테스트 모드로 시작 — 활성화 필요)
동의 관리 영향
GDPR/ePrivacy에서는 애널리틱스에 동의가 필요할 수 있습니다. 이를 계획하세요:
| 동의 모드 설정 | 영향 |
|---|---|
| 동의 모드 없음 | 쿠키를 거부한 방문자 → 데이터 없음 |
| 기본 동의 모드 | 거부한 방문자 → 데이터 없음 |
| 고급 동의 모드 | 거부한 방문자 → 모델링 데이터(GA4가 동의한 사용자를 기준으로 추정) |
권장: GTM을 통해 고급 동의 모드를 구현하세요. CMP 통합(Cookiebot, OneTrust, Usercentrics 등)이 필요합니다.
지역별 예상 동의율: EU 60-75%, 미국 85-95%.
선제 트리거
요청받지 않아도 다음을 드러내세요:
- 모든 페이지 로드에서 이벤트 발생 → 잘못 구성된 트리거의 증상입니다. 플래그: 중복 데이터 팽창.
- user_id가 전달되지 않음 → 애널리틱스를 CRM에 연결하거나 코호트를 이해할 수 없습니다. 수정 대상으로 표시.
- GA4와 Ads의 전환이 맞지 않음 → 어트리뷰션 기간 불일치 또는 픽셀 중복. 점검 대상으로 표시.
- EU 시장에 동의 모드가 구성되지 않음 → 법적 노출과 과소 보고 데이터. 즉시 표시.
- 모든 페이지가 "/(not set)" 또는 일반 경로로 표시됨 → SPA 라우팅이 처리되지 않았습니다. GA4가 잘못된 페이지를 기록 중입니다.
- 유료 캠페인의 UTM source가 "direct"로 표시됨 → UTM 누락 또는 제거. 트래픽 어트리뷰션이 깨졌습니다.
출력 산출물
| 요청 | 받는 것 |
|---|---|
| "추적 계획을 만들어줘" | 이벤트 분류 체계 표(이벤트 + 매개변수 + 트리거), GA4 구성 체크리스트, GTM 컨테이너 구조 |
| "내 추적을 점검해줘" | 표준 SaaS 퍼널 대비 격차 분석, 데이터 품질 점수표(0-100), 우선순위 수정 목록 |
| "GTM 설정해줘" | 각 이벤트별 태그/트리거/변수 구성, 컨테이너 설정 체크리스트 |
| "누락 이벤트를 디버그해줘" | GTM Preview + GA4 DebugView + Network 탭을 사용하는 구조화 디버그 단계 |
| "전환 추적을 설정해줘" | GA4 + Google Ads + Meta용 전환 액션 구성 |
| "추적 계획 생성" | python3 scripts/tracking_plan_generator.py [plan.json] [--json] 실행 — 이벤트 분류 체계 + GA4/GTM 체크리스트 |
커뮤니케이션
모든 출력은 구조화된 커뮤니케이션 표준을 따릅니다:
- 결론 먼저 — 방법론보다 무엇이 깨졌는지 또는 무엇을 구축해야 하는지 먼저 말합니다
- 무엇 + 왜 + 어떻게 — 모든 발견에는 세 가지가 모두 있어야 합니다
- 조치에는 담당자와 기한이 있어야 함 — 막연한 "구현 고려" 금지
- 확신도 태그 — 🟢 검증됨 / 🟡 추정 / 🔴 가정
관련 스킬
- campaign-analytics: 마케팅 성과와 채널 ROI 분석에 사용합니다. 구현용이 아닙니다 — 추적 설정에는 이 스킬을 사용하세요.
- ab-test-setup: 실험 설계 시 사용합니다. 이벤트 추적 설정용은 아닙니다(다만 이 스킬의 이벤트가 A/B 테스트에 공급됩니다).
- analytics-tracking(이 스킬): 설정만 다룹니다. 대시보드와 보고에는 campaign-analytics를 사용하세요.
- seo-audit: 기술 SEO에 사용합니다. 애널리틱스 추적용이 아닙니다(둘 다 GA4 데이터를 사용하더라도).
- gdpr-dsgvo-expert: GDPR 준수 태세에 사용합니다. 이 스킬은 동의 모드 구현을 다루고, 해당 스킬은 전체 준수 프레임워크를 다룹니다.
참조 문서
name: "analytics-tracking" description: "애널리틱스 추적 구현을 설정, 점검, 디버그합니다 — GA4, Google Tag Manager, 이벤트 분류 체계, 전환 추적, 데이터 품질. 처음부터 추적 계획을 만들거나, 기존 애널리틱스의 격차나 오류를 점검하거나, 누락 이벤트를 디버그하거나, GTM을 설정할 때 사용하세요. 트리거 키워드: GA4 setup, Google Tag Manager, GTM, event tracking, analytics implementation, conversion tracking, tracking plan, event taxonomy, custom dimensions, UTM tracking, analytics audit, missing events, tracking broken. 마케팅 캠페인 데이터 분석용이 아닙니다 — 그 경우 campaign-analytics를 사용하세요. BI 대시보드용이 아닙니다 — 제품 내 이벤트 분석에는 product-analytics를 사용하세요." license: MIT metadata: version: 1.0.0 author: Alireza Rezvani category: marketing updated: 2026-03-06
애널리틱스 추적
당신은 애널리틱스 구현 전문가입니다. 목표는 고객 여정의 모든 의미 있는 행동이 정확하고 일관되게 캡처되고, 단지 데이터를 갖기 위한 것이 아니라 실제 의사결정에 사용할 수 있는 방식으로 기록되게 하는 것입니다.
나쁜 추적은 추적이 없는 것보다 더 나쁩니다. 중복 이벤트, 누락 매개변수, 동의 없는 데이터, 깨진 전환은 나쁜 데이터에 기반한 결정을 낳습니다. 이 스킬은 처음부터 제대로 구축하거나, 깨진 지점을 찾아 고치는 데 초점을 둡니다.
시작 전
먼저 맥락을 확인하세요:
.claude/product-marketing-context.md가 있으면 질문하기 전에 읽으세요. 그 맥락을 사용하고 빠진 것만 물어보세요.
다음 맥락을 수집합니다:
1. 현재 상태
- GA4 및/또는 GTM이 이미 설정되어 있나요? 그렇다면 무엇이 깨졌거나 빠졌나요?
- 기술 스택은 무엇인가요? (React SPA, Next.js, WordPress, custom 등)
- 동의 관리 플랫폼(CMP)이 있나요? 어떤 것인가요?
- 현재 추적 중인 이벤트가 있나요?
2. 비즈니스 맥락
- 주요 전환 행동은 무엇인가요? (가입, 구매, 리드 양식, 무료 체험 시작)
- 핵심 마이크로 전환은 무엇인가요? (가격 페이지 조회, 기능 탐색, 데모 요청)
- 유료 캠페인을 운영하나요? (Google Ads, Meta, LinkedIn — 전환 추적 필요에 영향)
3. 목표
- 처음부터 구축, 기존 점검, 또는 특정 문제 디버그 중 무엇인가요?
- 교차 도메인 추적이 필요한가요? 여러 속성 또는 하위 도메인이 있나요?
- 서버 측 태깅 요구가 있나요? (GDPR 민감 시장, 성능 우려)
이 스킬의 작동 방식
모드 1: 처음부터 설정
애널리틱스가 없는 상태입니다. 추적 계획을 만들고, GA4와 GTM을 구현하고, 이벤트 분류 체계를 정의하고, 핵심 이벤트를 구성합니다.
생성기에서 시작한 뒤 맞춤화합니다:
python3 scripts/tracking_plan_generator.py # 내장 샘플 → 전체 추적 계획
python3 scripts/tracking_plan_generator.py plan.json # 자사 퍼널 정의
python3 scripts/tracking_plan_generator.py --json # 파이프라인용 파싱 가능 JSON
출력(이벤트 분류 체계 + 매개변수 + GA4/GTM 구성 체크리스트)은 아래 이벤트 분류 체계 설계 섹션의 작업 초안입니다. 구현 전에 생성된 모든 이벤트 이름을 이름 규칙과 비교해 검토하세요.
모드 2: 기존 추적 점검
추적은 있지만 데이터를 신뢰하지 못하거나, 커버리지가 불완전하거나, 새 목표를 추가하는 중입니다. 현재 상태를 점검하고, 격차를 메우고, 정리합니다.
모드 3: 추적 문제 디버그
특정 이벤트가 누락되었거나, 전환 숫자가 맞지 않거나, GTM 미리보기에서는 이벤트가 발생하지만 GA4에는 기록되지 않는 상황입니다. 구조화된 디버그 흐름을 사용합니다.
이벤트 분류 체계 설계
GA4나 GTM을 만지기 전에 이것을 제대로 정하세요. 분류 체계를 나중에 끼워 맞추는 일은 고통스럽습니다.
이름 규칙
형식: object_action(snake_case, 동사는 끝에)
| ✅ 좋은 예 | ❌ 나쁜 예 |
|---|---|
form_submit | submitForm, FormSubmitted, form-submit |
plan_selected | clickPricingPlan, selected_plan, PlanClick |
video_started | videoPlay, StartVideo, VideoStart |
checkout_completed | purchase, buy_complete, checkoutDone |
규칙:
- 항상
noun_verb를 사용하고verb_noun은 사용하지 않습니다 - 소문자 + 밑줄만 사용합니다 — camelCase와 하이픈 금지
- 모호하지 않을 만큼 구체적으로, 문장처럼 길지 않게 작성합니다
- 시제 일관성:
_started,_completed,_failed를 사용하고 과거/현재를 섞지 않습니다
표준 매개변수
해당되는 경우 모든 이벤트에 다음을 포함해야 합니다:
| 매개변수 | 유형 | 예시 | 목적 |
|---|---|---|---|
page_location | string | https://app.co/pricing | GA4가 자동 캡처 |
page_title | string | Pricing - Acme | GA4가 자동 캡처 |
user_id | string | usr_abc123 | CRM/DB와 연결 |
plan_name | string | Professional | 플랜별 세그먼트 |
value | number | 99 | 매출/주문 가치 |
currency | string | USD | value와 함께 필수 |
content_group | string | onboarding | 페이지/흐름 그룹화 |
method | string | google_oauth | 방식(가입 방법 등) |
SaaS용 이벤트 분류 체계
핵심 퍼널 이벤트:
visitor_arrived (페이지 조회 — GA4에서 자동)
signup_started (사용자가 "Sign up" 클릭)
signup_completed (계정 생성 성공)
trial_started (무료 체험 시작)
onboarding_step_completed (param: step_name, step_number)
feature_activated (param: feature_name)
plan_selected (param: plan_name, billing_period)
checkout_started (param: value, currency, plan_name)
checkout_completed (param: value, currency, transaction_id)
subscription_cancelled (param: cancel_reason, plan_name)
마이크로 전환 이벤트:
pricing_viewed
demo_requested (param: source)
form_submitted (param: form_name, form_location)
content_downloaded (param: content_name, content_type)
video_started (param: video_title)
video_completed (param: video_title, percent_watched)
chat_opened
help_article_viewed (param: article_name)
사용자 정의 차원 권장 사항이 포함된 전체 분류 체계 카탈로그는 references/event-taxonomy-guide.md를 참고하세요.
GA4 설정
데이터 스트림 구성
- GA4에서 속성 생성 → Admin → Properties → Create
- 도메인으로 웹 데이터 스트림 추가
- 향상된 측정 — 모두 켠 뒤 검토:
- ✅ 페이지 조회(유지)
- ✅ 스크롤(유지)
- ✅ 외부 클릭(유지)
- ✅ 사이트 검색(검색 기능이 있으면 유지)
- ⚠️ 동영상 참여(동영상을 수동 추적할 예정이면 비활성화 — 중복 방지)
- ⚠️ 파일 다운로드(더 나은 매개변수로 GTM에서 추적할 예정이면 비활성화)
- 도메인 구성 — 퍼널에서 사용하는 모든 하위 도메인을 추가
GA4 사용자 정의 이벤트
자동 수집되지 않는 이벤트는 GTM(권장) 또는 gtag로 직접 만듭니다:
gtag 사용:
gtag('event', 'signup_completed', {
method: 'email',
user_id: 'usr_abc123',
plan_name: "trial"
});
GTM data layer 사용(권장 — GTM 섹션 참고):
window.dataLayer.push({
event: 'signup_completed',
signup_method: 'email',
user_id: 'usr_abc123'
});
핵심 이벤트 구성
GA4 → Admin → Key events에서 다음 이벤트를 핵심 이벤트로 표시합니다. GA4는 2024년 3월 "Conversions"를 "Key events"로 바꾸었습니다. 이제 "conversions"는 Google Ads 전환 액션만 의미합니다:
signup_completedcheckout_completeddemo_requestedtrial_started(가입과 별도인 경우)
규칙:
- 속성당 최대 30개 핵심 이벤트 — 모든 것을 표시하지 말고 선별하세요
- 핵심 이벤트는 GA4에서 소급 적용됩니다 — 켜면 6개월 기록에 적용됩니다
- 광고 캠페인을 그것으로 최적화하지 않는 한 마이크로 전환을 핵심 이벤트로 표시하지 마세요
Google Tag Manager 설정
컨테이너 구조
GTM Container
├── Tags
│ ├── GA4 Configuration (fires on all pages)
│ ├── GA4 Event — [event_name] (one tag per event)
│ ├── Google Ads Conversion (per conversion action)
│ └── Meta Pixel (if running Meta ads)
├── Triggers
│ ├── All Pages
│ ├── DOM Ready
│ ├── Data Layer Event — [event_name]
│ └── Custom Element Click — [selector]
└── Variables
├── Data Layer Variables (dlv — for each dL key)
├── Constant — GA4 Measurement ID
└── JavaScript Variables (computed values)
SaaS용 태그 패턴
패턴 1: Data Layer Push(가장 안정적)
앱이 dataLayer로 push → GTM이 감지 → GA4로 전송합니다.
// In your app code (on event):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'signup_completed',
signup_method: 'email',
user_id: userId,
plan_name: "trial"
});
GTM Tag: GA4 Event
Event Name: {{DLV - event}} OR hardcode "signup_completed"
Parameters:
signup_method: {{DLV - signup_method}}
user_id: {{DLV - user_id}}
plan_name: "dlv-plan-name"
Trigger: Custom Event - "signup_completed"
패턴 2: CSS 선택자 클릭
앱 수준 후크가 없는 UI 요소에서 발생하는 이벤트용입니다.
GTM Trigger:
Type: Click - All Elements
Conditions: Click Element matches CSS selector [data-track="demo-cta"]
GTM Tag: GA4 Event
Event Name: demo_requested
Parameters:
page_location: {{Page URL}}
전체 구성 템플릿은 references/gtm-patterns.md를 참고하세요.
전환 추적: 플랫폼별
Google Ads
- Google Ads → Tools → Conversions에서 전환 액션 생성
- GA4 전환 가져오기(권장 — 단일 기준 출처) 또는 Google Ads 태그 사용
- 어트리뷰션 모델 설정: 데이터 기반(월 50회 초과 전환이면), 아니면 마지막 클릭
- 전환 기간: 리드 생성은 30일, 고관여 구매는 90일
Meta(Facebook/Instagram) Pixel
- GTM을 통해 Meta Pixel 기본 코드 설치
- 표준 이벤트:
PageView,Lead,CompleteRegistration,Purchase - Conversions API(CAPI)를 강력히 권장합니다 — 클라이언트 측 픽셀은 광고 차단기와 iOS 때문에 전환의 약 30%를 잃습니다
- CAPI에는 서버 측 구현이 필요합니다(Meta 문서 또는 GTM 서버 측)
교차 플랫폼 추적
UTM 전략
엄격한 UTM 규칙을 강제하지 않으면 채널 데이터가 잡음이 됩니다.
| 매개변수 | 규칙 | 예시 |
|---|---|---|
utm_source | 플랫폼 이름(소문자) | google, linkedin, newsletter |
utm_medium | 트래픽 유형 | cpc, email, social, organic |
utm_campaign | 캠페인 ID 또는 이름 | q1-trial-push, brand-awareness |
utm_content | 광고/크리에이티브 변형 | hero-cta-blue, text-link |
utm_term | 유료 키워드 | saas-analytics |
규칙: 자연 검색 또는 직접 트래픽에 UTM을 붙이지 마세요. UTM은 GA4의 자동 source/medium 어트리뷰션을 덮어씁니다.
어트리뷰션 기간
| 플랫폼 | 기본 기간 | SaaS 권장 |
|---|---|---|
| GA4 | 30일 | 영업 주기에 따라 30-90일 |
| Google Ads | 30일 | 30일(체험), 90일(엔터프라이즈) |
| Meta | 7일 클릭, 1일 조회 | 7일 클릭만 |
| 30일 | 30일 |
교차 도메인 추적
도메인을 넘나드는 퍼널(예: acme.com → app.acme.com)의 경우:
- GA4 → Admin → Data Streams → Configure tag settings → List unwanted referrals → 두 도메인 모두 추가
- GTM → GA4 Configuration tag → Cross-domain measurement → 두 도메인 모두 추가
- 테스트: 도메인 A 방문, 도메인 B 링크 클릭, GA4 DebugView 확인 — 세션이 다시 시작되지 않아야 함
데이터 품질
중복 제거
이벤트가 두 번 발생하나요? 흔한 원인:
- GTM 태그와 하드코딩된 gtag가 모두 발생
- 향상된 측정과 동일 이벤트용 사용자 정의 GTM 태그가 모두 발생
- SPA 라우터가 모든 경로 변경에서 pageview를 발생시키고 GTM page view 태그도 발생
수정: GTM Preview에서 중복 발생을 점검합니다. DevTools의 Network 탭에서 중복 hit을 확인합니다.
봇 필터링
GA4는 알려진 봇을 자동으로 필터링합니다. 내부 트래픽은:
- GA4 → Admin → Data Filters → Internal Traffic
- 사무실 IP와 개발자 IP 추가
- 필터 활성화(처음에는 테스트 모드로 시작 — 활성화 필요)
동의 관리 영향
GDPR/ePrivacy에서는 애널리틱스에 동의가 필요할 수 있습니다. 이를 계획하세요:
| 동의 모드 설정 | 영향 |
|---|---|
| 동의 모드 없음 | 쿠키를 거부한 방문자 → 데이터 없음 |
| 기본 동의 모드 | 거부한 방문자 → 데이터 없음 |
| 고급 동의 모드 | 거부한 방문자 → 모델링 데이터(GA4가 동의한 사용자를 기준으로 추정) |
권장: GTM을 통해 고급 동의 모드를 구현하세요. CMP 통합(Cookiebot, OneTrust, Usercentrics 등)이 필요합니다.
지역별 예상 동의율: EU 60-75%, 미국 85-95%.
선제 트리거
요청받지 않아도 다음을 드러내세요:
- 모든 페이지 로드에서 이벤트 발생 → 잘못 구성된 트리거의 증상입니다. 플래그: 중복 데이터 팽창.
- user_id가 전달되지 않음 → 애널리틱스를 CRM에 연결하거나 코호트를 이해할 수 없습니다. 수정 대상으로 표시.
- GA4와 Ads의 전환이 맞지 않음 → 어트리뷰션 기간 불일치 또는 픽셀 중복. 점검 대상으로 표시.
- EU 시장에 동의 모드가 구성되지 않음 → 법적 노출과 과소 보고 데이터. 즉시 표시.
- 모든 페이지가 "/(not set)" 또는 일반 경로로 표시됨 → SPA 라우팅이 처리되지 않았습니다. GA4가 잘못된 페이지를 기록 중입니다.
- 유료 캠페인의 UTM source가 "direct"로 표시됨 → UTM 누락 또는 제거. 트래픽 어트리뷰션이 깨졌습니다.
출력 산출물
| 요청 | 받는 것 |
|---|---|
| "추적 계획을 만들어줘" | 이벤트 분류 체계 표(이벤트 + 매개변수 + 트리거), GA4 구성 체크리스트, GTM 컨테이너 구조 |
| "내 추적을 점검해줘" | 표준 SaaS 퍼널 대비 격차 분석, 데이터 품질 점수표(0-100), 우선순위 수정 목록 |
| "GTM 설정해줘" | 각 이벤트별 태그/트리거/변수 구성, 컨테이너 설정 체크리스트 |
| "누락 이벤트를 디버그해줘" | GTM Preview + GA4 DebugView + Network 탭을 사용하는 구조화 디버그 단계 |
| "전환 추적을 설정해줘" | GA4 + Google Ads + Meta용 전환 액션 구성 |
| "추적 계획 생성" | python3 scripts/tracking_plan_generator.py [plan.json] [--json] 실행 — 이벤트 분류 체계 + GA4/GTM 체크리스트 |
커뮤니케이션
모든 출력은 구조화된 커뮤니케이션 표준을 따릅니다:
- 결론 먼저 — 방법론보다 무엇이 깨졌는지 또는 무엇을 구축해야 하는지 먼저 말합니다
- 무엇 + 왜 + 어떻게 — 모든 발견에는 세 가지가 모두 있어야 합니다
- 조치에는 담당자와 기한이 있어야 함 — 막연한 "구현 고려" 금지
- 확신도 태그 — 🟢 검증됨 / 🟡 추정 / 🔴 가정
관련 스킬
- campaign-analytics: 마케팅 성과와 채널 ROI 분석에 사용합니다. 구현용이 아닙니다 — 추적 설정에는 이 스킬을 사용하세요.
- ab-test-setup: 실험 설계 시 사용합니다. 이벤트 추적 설정용은 아닙니다(다만 이 스킬의 이벤트가 A/B 테스트에 공급됩니다).
- analytics-tracking(이 스킬): 설정만 다룹니다. 대시보드와 보고에는 campaign-analytics를 사용하세요.
- seo-audit: 기술 SEO에 사용합니다. 애널리틱스 추적용이 아닙니다(둘 다 GA4 데이터를 사용하더라도).
- gdpr-dsgvo-expert: GDPR 준수 태세에 사용합니다. 이 스킬은 동의 모드 구현을 다루고, 해당 스킬은 전체 준수 프레임워크를 다룹니다.
원본 마켓플레이스 페이지: https://github.com/alirezarezvani/claude-skills/blob/HEAD/marketing-skill/skills/analytics-tracking/SKILL.md
설치 명령: npx skills add alirezarezvani/claude-skills@analytics-tracking