fix(analytics): 랜딩 이벤트 측정 및 중복 전송 수정 - #168
Conversation
- CTA 클릭과 섹션 노출 측정 계약 적용 - 동의·방문 기준 집계 및 GA 대기열의 Amplitude 중복 전송 방지
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (15)
📝 WalkthroughWalkthrough랜딩 페이지에 Changes랜딩 분석 이벤트
Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant LandingPage
participant LandingSectionTracker
participant trackAnalyticsEvent
participant Amplitude
participant GoogleAnalytics
LandingPage->>LandingSectionTracker: 랜딩 섹션 렌더링
LandingSectionTracker->>trackAnalyticsEvent: 1000ms 노출 후 section_view 전송
trackAnalyticsEvent->>Amplitude: 이벤트 최초 전달
trackAnalyticsEvent->>GoogleAnalytics: 동의 및 초기화 후 이벤트 전달
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. 토끼가 CTA를 톡 눌렀네 Comment |
|



변경 내용
QA 미완료 INCONCLUSIVE — validation-pending Draft 전용이며 제품 완료가 아닙니다. 병합·production 배포 승인은 없습니다. 기존 Vercel 자동화의 비production Preview 생성이 관찰되었으나 acceptance가 아닙니다.
변경 이유
테스트
아래 결과는 원본
t_27159e19/run449실제 로그를 재사용합니다. 승인된 diff와 바이트 및 SHA256 일치를 확인했으며 이번 publication에서는 새 테스트나 브라우저 QA를 수행하지 않았습니다.npm run lint— 원본 PASS, exit 0; 기존<img>경고 2개.npm test— 원본 PASS, exit 0; 98개 파일, 501개 테스트.npm run build— bare 실행은API_BASE_URL누락으로 FAIL, exit 1. 합성 loopback 값을 지정한 빌드만 원본 PASS, exit 0이며 실제 서비스 통합 검증이 아닙니다.npx tsc --noEmit— 원본 PASS, exit 0.git diff --check HEAD^ HEAD와git diff --checkexit 0.이벤트 계약, 검증 한계 및 인계 상세
이벤트는
cta_click,section_view두 가지이며page_type=landing을 사용합니다.page_version은 추가하지 않습니다. 기존 정규화된page_path,page_location을 재사용합니다.섹션 ID는
hero,problem,solution,features,devices,travel_steps,final_cta입니다. 헤더/푸터와 개별 카드는 제외합니다.문서 foreground 및 granted 동의 상태에서 세로 가시 영역이
0.5 × min(section 높이, viewport 높이)이상으로 연속 1000ms 유지되면 방문당 섹션별 한 번 집계합니다. 기준 미달, background, 동의 철회 시 진행 시간을 초기화합니다. pending/denied 시간은 저장하거나 소급 전송하지 않습니다. pathname 이탈 후 복귀 또는 새로고침은 새 방문이며 query/hash 변경, remount, StrictMode, 재스크롤은 같은 방문의 중복 집계를 만들지 않습니다. GA 대기열 flush는 GA에만 전달하므로 Amplitude replay를 방지합니다.Hermes가 확인한 최신
t_0ad194b3/run451done 인계(report131/comment337)에서는 데스크톱·모바일의 rAF 정지와 wheel 응답 실패가 제품 코드 없는 최소 loopback 문서에서도 재현되어 원래 랜딩 코드에만 국한되지 않음을 확인했습니다. 일반 foreground/viewport 변경으로는 지속적인 복구에 실패했으며 런타임·설정 변경은 없었습니다. 정확한 Chrome/런타임 원인은 여전히 미상이며 실제 앱/base A/B 비교는 수행하지 않았습니다. 원본 제품 QA는 계속 INCONCLUSIVE로 제품 정확성의 증거가 아니며, 원본t_27159e19는 계속 blocked입니다.t_0ad194b3독립 조사는 done 상태이며 이 PR publication의 의존성이 아닙니다.원본 합성 빌드 명령(실제 서비스 자격 증명 아님):
원본 검증 기준은
78a4c9031508df0a3f62e224076b6c3ca6acde3f위의 승인된 변경이며 patch SHA256은510c64a16bfcd5aa431a86668463cac35d5f1165f839a5632756534e29dd0262입니다. publication 커밋은96d44eb541416a948565ff70de3ede6bfe5a7650입니다.Hermes가 전달한 최신 fetched main
2a38ba37b315bdd016dcf7d3e8233bbfeb9316b2에는 이미지 변경 #167이 포함되어LandingHero.tsx,LandingDesignSections.tsx경로가 겹칩니다. Hermes는 게시된 PR #168을 독립 GET으로 확인했습니다: open,draft=true, basemain(2a38ba37b315bdd016dcf7d3e8233bbfeb9316b2), headhotfix/landing-analytics(96d44eb541416a948565ff70de3ede6bfe5a7650), 15개 파일·445 additions·17 deletions,mergeable=true,mergeable_state=clean. 관찰 시점의 GitHub 충돌 없음 상태이며, rebase/merge는 하지 않았습니다. 기존 테스트는 최신 main과 결합된 상태를 검증하지 않으며 이 readback은 결합 상태 테스트·브라우저 acceptance 또는 병합 승인이 아닙니다.Hermes의 checks readback: CodeRabbit은 Draft라 리뷰를 건너뛰었으며 pass로 보고되었습니다(코드 리뷰 완료가 아님). notify pass, Vercel pass(배포 완료), Vercel Preview Comments pass입니다. 정확한 head SHA의 deployments GET 결과는 ID
6391116065, environmentPreview,production_environment=false입니다. PR publication 시 기존 Vercel 자동화가 비production Preview를 생성했습니다. Preview 런타임과 analytics 수신은 검증하지 않았으며 이 자동화 결과는 QA PASS가 아닙니다.Codex는 로컬 커밋과 payload만 준비했으며, 승인된 hotfix 브랜치의 일반 push 및 main 대상 Draft PR publication은 Hermes가 수행했습니다. 병합·production 배포 승인은 없으며, 우리는 수동 배포 명령 실행, main 병합, production 배포를 수행하지 않았습니다. 위 자동 Preview는 기존 Vercel 자동화의 결과입니다. 이번 Codex payload 수정에서 시작한 런타임 리소스 없음:
runtime_cleanup=N/A.Summary by CodeRabbit
새 기능
문서