feat(analytics): GA4 UTM 캠페인 파라미터 수집 - #133
Conversation
- page_location에 표준 UTM 허용 목록 적용 - 라우트 트래커에서 현재 검색 문자열 전달 - 운영 문서 및 회귀 테스트 갱신
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughGA4 페이지뷰가 현재 URL의 검색 문자열을 받아 허용된 UTM 파라미터만 ChangesGA4 캠페인 추적
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Browser
participant AnalyticsRouteTracker
participant buildAnalyticsPageView
participant analyticsPageLocation
Browser->>AnalyticsRouteTracker: 현재 URL의 search 제공
AnalyticsRouteTracker->>buildAnalyticsPageView: search 전달
buildAnalyticsPageView->>analyticsPageLocation: origin, path, search 전달
analyticsPageLocation-->>buildAnalyticsPageView: UTM만 포함한 page_location 반환
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/lib/analytics/context.ts (1)
197-203: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win
page_location의 실제 전송을 통합 테스트로 확인하세요.
src/lib/analytics/context.test.ts:133-150은 정규화 결과를 확인합니다. 그러나src/lib/analytics/client.test.ts:114-159는page_view에서page_path만 확인합니다. 클라이언트가page_location을 누락해도 현재 테스트가 통과할 수 있습니다.정규화된 UTM이 포함된
page_location이 실제page_view명령에 도착하는지 확인하는 어서션을 추가하세요. 두 라우트 트래커의window.location.search전달도 통합 테스트에서 확인하세요.근거:
src/lib/analytics/client.test.ts:114-159의 현재 어서션은page_path만 검증합니다.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/lib/analytics/context.ts` around lines 197 - 203, AnalyticsPageViewParams의 page_location이 실제 page_view 전송 명령에 포함되는지 client 통합 테스트의 기존 page_path 검증에 어서션을 추가하세요. 정규화된 UTM 쿼리 문자열이 유지되는지 확인하고, 두 라우트 트래커가 window.location.search를 page-view 입력으로 전달하는 경우도 통합 테스트에서 검증하세요.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/lib/analytics/context.ts`:
- Around line 197-203: AnalyticsPageViewParams의 page_location이 실제 page_view 전송
명령에 포함되는지 client 통합 테스트의 기존 page_path 검증에 어서션을 추가하세요. 정규화된 UTM 쿼리 문자열이 유지되는지
확인하고, 두 라우트 트래커가 window.location.search를 page-view 입력으로 전달하는 경우도 통합 테스트에서 검증하세요.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: f5a48de0-a705-4235-bbdd-37cd41e0fc49
📒 Files selected for processing (5)
docs/analytics/ga4-operations.mdsrc/components/analytics/AnalyticsRouteTracker.tsxsrc/components/analytics/AnonymousAnalyticsRouteTracker.tsxsrc/lib/analytics/context.test.tssrc/lib/analytics/context.ts
변경 사항
page_location에 GA4 표준 UTM 캠페인 파라미터 허용 목록을 적용했습니다.window.location.search를 페이지뷰 생성에 전달하도록 변경했습니다.page_path와page_referrer에는 쿼리를 포함하지 않습니다.배경
기존 URL 정규화가 개인정보 보호를 위해 모든 쿼리를 제거하면서, 동의한 사용자의 UTM 캠페인 정보도
page_location에서 사라져 GA4 수동 캠페인 획득 분석에 사용할 수 없었습니다.영향
표준 UTM으로 태깅한 캠페인의 유입 정보는 GA4에 전달되며, 그 밖의 URL 식별 정보에 대한 기존 보호 정책은 유지됩니다.
검증
npm test: 55개 파일, 242개 테스트 통과npx tsc --noEmit: 통과git diff --check: 통과npm run lint: 저장소 기존 파일의 기준선 문제로 실패(34 errors, 20 warnings). 이번 변경 파일에는 오류가 없습니다.Summary by CodeRabbit
개선 사항
문서