PA 교육 기본 가이드_20260602

Agenda

Product Analytics 기본 가이드

1. Custom Action 추적 (비즈니스 이벤트 수집)

RUM은 클릭을 자동 추적하지만, 비즈니스에 의미 있는 액션은 직접 정의해야 합니다.

// 방법 1: addAction() — 커스텀 액션 전송
datadogRum.addAction('checkout_completed', {
  order_id: 'ORD-12345',
  total_amount: 59000,
  payment_method: 'credit_card',
  items_count: 3
});

// 방법 2: data-dd-action-name HTML 속성 — 코드 수정 없이 클릭 추적
<button data-dd-action-name="Add to Cart">장바구니 담기</button>

활용 예시:

2. User 식별 (Segment / Retention 분석 필수)

datadogRum.setUser({
  id: 'user-12345',           // 필수! PA Funnel/Retention의 기준
  name: 'Gibaek Lee',
  email: 'gibaek@example.com',
  
  // ✅ 커스텀 속성 추가 → Segment 분류에 활용
  plan: 'enterprise',          // 요금제
  company: 'Acme Corp',        // 회사
  role: 'admin',               // 역할
  signup_date: '2024-01-15'    // 가입일
});

// 개별 속성 추가/변경
datadogRum.setUserProperty('subscription_tier', 'premium');

3. Global Context (비즈니스 데이터 세그먼트)

모든 RUM 이벤트에 비즈니스 컨텍스트를 추가하여, 대시보드/분석 시 필터/그룹핑에 활용합니다.

// 앱 전역에 비즈니스 속성 추가
datadogRum.setGlobalContextProperty('app_version', '2.3.1');
datadogRum.setGlobalContextProperty('region', 'asia-pacific');
datadogRum.setGlobalContextProperty('store_id', 'store-seoul-01');
datadogRum.setGlobalContextProperty('experiment_group', 'variant_b');

// 여러 속성을 한번에
datadogRum.setGlobalContext({
  business_unit: 'ecommerce',
  campaign: 'summer_sale_2025',
  locale: 'ko-KR'
});

실제 활용 사례:

4. Feature Flag 추적

A/B 테스트나 Feature Flag 사용 시, PA에서 플래그별 사용자 행동 비교가 가능합니다.

// init에 추가
datadogRum.init({
  ...existingConfig,
  enableExperimentalFeatures: ['feature_flags']
});

// 플래그 평가 시 호출
datadogRum.addFeatureFlagEvaluation('new_checkout_flow', true);
datadogRum.addFeatureFlagEvaluation('pricing_variant', 'plan_b');

⚠️ value에 null, undefined, NaN을 넣으면 데이터가 수집되지 않습니다.

5. beforeSend — 이벤트 가공/필터링

Datadog으로 전송되기 전에 데이터를 가공하거나, 불필요한 이벤트를 필터링합니다.

datadogRum.init({
  ...existingConfig,
  beforeSend: (event, context) => {
    // 민감 정보 제거
    if (event.type === 'resource' && event.resource.url.includes('/api/auth')) {
      return false; // 이벤트 드랍
    }
    
    // 커스텀 속성 추가
    if (event.type === 'action') {
      event.context.page_category = getPageCategory(event.view.url);
    }
    
    return true;
  }
});

6. Custom Timing (성능 측정)

주요 컴포넌트의 로딩 시간을 측정하여 UX 성능 모니터링을 강화합니다.

// 중요 컴포넌트 렌더링 완료 시
datadogRum.addTiming('product_list_loaded');
datadogRum.addTiming('search_results_rendered');
datadogRum.addTiming('hero_image_visible');

📋 요약: 설정 우선순위

우선순위 설정 효과
🔴 필수 setUser() + id Funnel, Retention, User Profile 분석 가능
🔴 필수 sessionSampleRate: 100 PA는 100% 수집 권장
🟠 강력 권장 addAction() / data-dd-action-name 비즈니스 이벤트 기반 Funnel 구성
🟠 강력 권장 setGlobalContext() 세그먼트 분류, BI 대시보드
🟡 권장 setUserProperty() (plan, role 등) 사용자 세그먼트 분석
🟡 권장 beforeSend() 데이터 품질 관리, 민감정보 필터
🟢 선택 addFeatureFlagEvaluation() A/B 테스트 분석
🟢 선택 addTiming() 커스텀 성능 측정

참고 실습