테마
Story: GA4 이벤트 트래킹
메타
| 항목 | 값 |
|---|---|
| Story ID | E-02-S-07 |
| Epic | E-02 Deep Layer |
| 상태 | ready-for-dev |
| 우선순위 | P1 |
| 규모 | S |
| 담당 개발자 | 수민 (FE) |
사용자 스토리
As a PO,
I want Deep Layer 사용 행태를 GA4로 추적하고 싶다,
So that 기능의 효과를 측정하고 개선할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 페이지 진입 이벤트
| 항목 | 내용 |
|---|---|
| Given | Deep Layer 페이지에 진입할 때 |
| When | 캠페인 목록 또는 캠페인 상세 페이지 로드 시 |
| Then | view_ad_dashboard 또는 view_campaign_detail 이벤트가 발생한다 |
AC-02: 탭/필터 상호작용 이벤트
| 항목 | 내용 |
|---|---|
| Given | Deep Layer에서 상호작용할 때 |
| When | 검색/비검색 탭, 기간 필터, 정렬 옵션을 변경하면 |
| Then | 각각의 이벤트가 발생한다 |
AC-03: 이벤트 파라미터 정확성
| 항목 | 내용 |
|---|---|
| Given | 이벤트가 발생할 때 |
| When | GA4에 전송되면 |
| Then | 모든 필수 파라미터가 정확한 값으로 포함된다 |
태스크 분해
Task 1: 페이지 뷰 이벤트 AC-01
- [ ] 1.1:
view_ad_dashboard이벤트 구현 (캠페인 목록) - [ ] 1.2:
view_campaign_detail이벤트 구현 (캠페인 상세)
Task 2: 상호작용 이벤트 AC-02
- [ ] 2.1:
click_ad_type_tab이벤트 구현 (검색/비검색 탭) - [ ] 2.2:
change_period_filter이벤트 구현 (기간 필터) - [ ] 2.3:
change_sort_option이벤트 구현 (정렬) - [ ] 2.4:
click_campaign_item이벤트 구현 (캠페인 클릭)
Task 3: 이벤트 검증 AC-03
- [ ] 3.1: GA4 DebugView에서 이벤트 확인
- [ ] 3.2: 파라미터 검증 (source, period, tab 등)
이벤트 목록
| 이벤트명 | 트리거 | 파라미터 | 우선순위 |
|---|---|---|---|
view_ad_dashboard | 캠페인 목록 진입 | {source, campaign_count, period, has_search_data, has_nonsearch_data} | P0 |
view_campaign_detail | 캠페인 상세 진입 | {campaign_id, campaign_name, source, period, total_spend, total_revenue, roas} | P0 |
click_ad_type_tab | 검색/비검색 탭 클릭 | {campaign_id, tab, previous_tab, period} | P0 |
change_period_filter | 기간 필터 변경 | {page, previous_period, new_period} | P0 |
change_sort_option | 정렬 옵션 변경 | {sort_by, sort_order, campaign_count} | P1 |
click_campaign_item | 캠페인 클릭 | {campaign_id, position, roas, profit_status} | P1 |
이벤트 상세 명세
view_ad_dashboard
javascript
dataLayer.push({
event: "ad_analysis",
event_name: "view_ad_dashboard",
params: {
source: "gnb", // gnb | surface_layer | direct
campaign_count: 5, // 표시된 캠페인 수
period: "7d", // 7d | 14d | 30d | custom
has_search_data: "Y",
has_nonsearch_data: "Y",
is_demo: "N"
}
});view_campaign_detail
javascript
dataLayer.push({
event: "ad_analysis",
event_name: "view_campaign_detail",
params: {
campaign_id: "camp_12345",
campaign_name: "봄 신상품",
source: "campaign_list", // campaign_list | surface_layer
period: "7d",
total_spend: 234567,
total_revenue: 1220000,
roas: 520,
is_demo: "N"
}
});click_ad_type_tab
javascript
dataLayer.push({
event: "ad_analysis",
event_name: "click_ad_type_tab",
params: {
campaign_id: "camp_12345",
tab: "non_search", // all | search | non_search
previous_tab: "all",
period: "7d",
is_demo: "N"
}
});Dev Notes
파라미터 규칙
is_demo: 데모 데이터 여부 (Y/N)source: 진입 경로 추적period: 선택된 기간 (7d/14d/30d/custom)campaign_id: 캠페인 고유 ID
의존성
- E-02-S-03: 캠페인 상세 검색/비검색 탭 UI
- E-02-S-05: 기간 필터 기능
- E-02-S-06: 정렬/필터 옵션
변경 이력
| 날짜 | 변경 내용 |
|---|---|
| 2026-01-26 | 스토리 생성 |
생성일: 2026-01-26
최종 수정: 2026-01-26
