Skip to content

Story: GA4 이벤트 트래킹

메타

항목
Story IDE-02-S-07
EpicE-02 Deep Layer
상태ready-for-dev
우선순위P1
규모S
담당 개발자수민 (FE)

사용자 스토리

As a PO,
I want Deep Layer 사용 행태를 GA4로 추적하고 싶다,
So that 기능의 효과를 측정하고 개선할 수 있다.


수락 기준 (Acceptance Criteria)

AC-01: 페이지 진입 이벤트

항목내용
GivenDeep Layer 페이지에 진입할 때
When캠페인 목록 또는 캠페인 상세 페이지 로드 시
Thenview_ad_dashboard 또는 view_campaign_detail 이벤트가 발생한다

AC-02: 탭/필터 상호작용 이벤트

항목내용
GivenDeep Layer에서 상호작용할 때
When검색/비검색 탭, 기간 필터, 정렬 옵션을 변경하면
Then각각의 이벤트가 발생한다

AC-03: 이벤트 파라미터 정확성

항목내용
Given이벤트가 발생할 때
WhenGA4에 전송되면
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

장사왕 Product Team