데이터 수집 기반
Google tag, GTM, Enhanced Measurement, cross-domain, internal traffic 기준을 정리하는 장
데이터 수집 기반은 분석 설계의 인프라입니다. 태그가 여러 번 발화하거나, 스테이징과 프로덕션이 섞이거나, 결제 도메인에서 세션이 끊기면 이벤트 사전이 좋아도 분석 결과를 믿기 어렵습니다.
수집 방식 선택
| 방식 | 적합한 상황 | 장점 | 주의 |
|---|---|---|---|
| CMS native integration | Shopify, HubSpot, WordPress 등 | 빠른 설치 | 커스텀 이벤트 확장성 확인 필요 |
| Google tag 직접 설치 | 단순 웹사이트, 개발팀 관리 | 코드 기반 버전 관리 | 이벤트 추가마다 배포 필요 |
| Google Tag Manager | 마케팅/데이터팀이 이벤트 운영 | preview, version, rollback | dataLayer 계약을 엄격히 관리 |
| Server-side tagging | 고급 개인정보·성능·광고 측정 요구 | 제어력과 내구성 | 운영 비용과 복잡도 증가 |
웹/SaaS에서는 GTM + 명시적 dataLayer 계약을 기본값으로 두는 편이 운영상 안정적입니다. 단, 핵심 제품 이벤트는 프론트엔드/백엔드 코드의 이벤트 스펙과 함께 관리해야 합니다.
Enhanced Measurement 검토
Enhanced Measurement는 웹 스트림 설정에서 켤 수 있고, page views, scroll, outbound click, site search, video engagement, file download, form interactions 같은 이벤트를 자동으로 수집합니다. Google 문서는 이 기능을 코드 변경 없이 웹 콘텐츠 상호작용을 측정하는 방식으로 설명하지만, 켜기 전에 수집 범위와 PII 리스크를 이해하라고 명시합니다.
| 항목 | 이벤트 | 설계 판단 |
|---|---|---|
| Page views | page_view | SPA 라우팅과 browser history 이벤트 중복 확인 |
| Scrolls | scroll | 90% 도달만 기본 수집되므로 상세 scroll depth가 필요하면 별도 설계 |
| Outbound clicks | click | cross-domain 대상은 outbound로 보지 않게 설정 |
| Site search | view_search_results | 검색 query parameter 이름 확인 |
| File downloads | file_download | 다운로드형 lead magnet 분석에 유용 |
| Form interactions | form_start, form_submit | form_id/name에 PII가 들어가지 않게 점검 |
Cross-domain 기준
결제, 인증, 문서, 앱 서브도메인이 분리된 SaaS에서는 cross-domain measurement를 초기에 정해야 합니다.
| 상황 | 설정 |
|---|---|
www.example.com에서 app.example.com 가입 | 같은 property + cross-domain 대상 등록 |
| 외부 checkout 도메인 사용 | checkout 도메인이 linker parameter를 유지하는지 확인 |
| docs/help center가 제품 여정에 중요 | 같은 property로 볼지 별도 property로 볼지 목적에 따라 결정 |
| 파트너/광고 랜딩 도메인 | 소유·관리 가능한 도메인만 연결 |
Internal traffic과 unwanted referrals
| 오염 원천 | 대응 |
|---|---|
| 직원/개발자 트래픽 | internal traffic rule + filter 또는 별도 debug/staging property |
| 결제/인증 리다이렉트 | unwanted referrals 검토 |
| QA 자동화 | developer traffic 또는 별도 property |
| iframe/embedded flow | referrer와 session attribution 확인 |
DataLayer 계약 예시
window.dataLayer.push({
event: 'ga4_event',
ga4_event_name: 'activation_complete',
account_id_hash: 'acct_7f3a',
plan: 'pro',
activation_type: 'first_project_created',
source_surface: 'onboarding',
})| 필드 | 의미 |
|---|---|
event | GTM trigger용 dataLayer 이벤트명 |
ga4_event_name | GA4에 보낼 실제 이벤트명 |
account_id_hash | 식별 가능한 원문 ID가 아닌 조인용 해시/내부 surrogate |
plan | 보고서에서 쓸 낮은 cardinality 값 |
activation_type | activation 정의를 구분하는 문맥 |
source_surface | 이벤트가 발생한 화면/맥락 |
PII 금지
Google Analytics에는 이메일, 전화번호, 이름처럼 개인을 직접 식별할 수 있는 정보를 보내지 않습니다. form tracking, URL query, page title, search term, custom parameter에 PII가 들어갈 수 있으므로 QA 체크리스트에 반드시 포함하세요.