Skip to content

Story: E-12-S-04 GA4 이벤트 트래킹

메타

항목
Story IDE-12-S-04
EpicE-12 Keyword Analysis
상태backlog
우선순위P1
규모S (1pt)
담당FE (수민)
의존성E-12-S-02 (테이블 UI), E-12-S-06 (제외키워드 UI)

사용자 스토리

As a PO, I want 키워드 탭 사용 패턴을 GA4로 추적, So that 키워드 탭의 가치와 개선점을 파악할 수 있다.


수락 기준 (Acceptance Criteria)

AC-01: 키워드 탭 진입 이벤트

항목내용
Given셀러가 캠페인 상세 페이지에 있음
When"키워드" 탭 클릭
Thenview_keyword_tab 이벤트 발생

AC-02: 정렬 변경 이벤트

항목내용
Given키워드 테이블이 표시된 상태
When정렬 옵션 변경
Thensort_keyword_list 이벤트 발생 (sort_by, sort_order 파라미터)

AC-03: 제외키워드 등록 이벤트

항목내용
Given전체 키워드 탭에서 키워드 선택 상태
When"제외키워드 등록" 버튼 클릭
Thenadd_excluded_keyword 이벤트 발생 (campaign_id, keyword_count)

AC-04: 제외키워드 복사 이벤트

항목내용
Given제외 키워드 탭에서 키워드 선택 상태
When"복사하기" 버튼 클릭
Thencopy_excluded_keyword 이벤트 발생 (campaign_id, keyword_count)

AC-05: 제외키워드 해제 이벤트

항목내용
Given제외 키워드 탭에서 키워드 선택 상태
When"제외 해제" 버튼 클릭
Thenremove_excluded_keyword 이벤트 발생 (campaign_id, keyword_count)

AC-06: GA4 DebugView 확인

항목내용
Given이벤트가 구현됨
When개발 환경에서 테스트
ThenGA4 DebugView에서 이벤트 및 파라미터 확인 가능

태스크 분해

Task 1: 키워드 탭 이벤트 AC-01, AC-02

  • [ ] 1.1: view_keyword_tab 이벤트 구현
  • [ ] 1.2: sort_keyword_list 이벤트 구현

Task 2: 제외키워드 이벤트 AC-03, AC-04, AC-05

  • [ ] 2.1: add_excluded_keyword 이벤트 구현
  • [ ] 2.2: copy_excluded_keyword 이벤트 구현
  • [ ] 2.3: remove_excluded_keyword 이벤트 구현

Task 3: DataLayer 연동

  • [ ] 3.1: 기존 DataLayer 헬퍼 함수 활용
  • [ ] 3.2: 이벤트 발생 시점에 push 호출

Task 4: 테스트 AC-06

  • [ ] 4.1: GA4 DebugView에서 이벤트 확인
  • [ ] 4.2: 파라미터 정확성 검증

Dev Notes

이벤트 명세

view_keyword_tab

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "view_keyword_tab",
  params: {
    campaign_id: "camp_12345",
    keyword_count: 45,
    period: "7d",
    has_profit_data: "Y",      // 원가 입력 여부
    is_demo: "N"
  }
});

sort_keyword_list

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "sort_keyword_list",
  params: {
    campaign_id: "camp_12345",
    sort_by: "netProfit",      // netProfit | adCost | roas | impressions | clicks
    sort_order: "asc",         // asc | desc
    keyword_count: 45,
    is_demo: "N"
  }
});

add_excluded_keyword

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "add_excluded_keyword",
  params: {
    campaign_id: "camp_12345",
    keyword_count: 3,          // 등록한 키워드 수
    is_demo: "N"
  }
});

copy_excluded_keyword

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "copy_excluded_keyword",
  params: {
    campaign_id: "camp_12345",
    keyword_count: 5,          // 복사한 키워드 수
    is_demo: "N"
  }
});

remove_excluded_keyword

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "remove_excluded_keyword",
  params: {
    campaign_id: "camp_12345",
    keyword_count: 2,          // 해제한 키워드 수
    is_demo: "N"
  }
});

참고 구현

항목경로
기존 이벤트 패턴AdsAnalysis/hooks/useAdsAnalysis.ts
DataLayer 헬퍼src/utils/analytics.ts

충돌 감지

항목상태설명
기존 코드 충돌✅ 없음이벤트 추가만

References

출처경로/링크참조 섹션
Epic Specepic-specs/E-12-keyword-analysis.md5. 성공 지표 - GA4 이벤트 정의
E-02 이벤트 명세epic-specs/E-02-deep-layer.md6. 이벤트 트래킹 명세

핸드오프 전 체크리스트

  • [x] 이벤트명과 파라미터가 명확한가?
  • [x] 기존 이벤트 패턴과 일관성 있는가?
  • [x] 의존성 명시되었는가? (E-12-S-02)

검증 결과: ✅ PASS 검증일: 2026-01-28


생성일: 2026-01-28생성자: 📋 Penny

장사왕 Product Team