# Platform Event Mapping Reference

GA4, Google Ads, Meta Pixel, Kakao Pixel 간 이벤트 매핑.

## E-commerce Events

| User Action | GA4 | Meta | Kakao | Google Ads |
|-------------|-----|------|-------|------------|
| 상품 목록 조회 | view_item_list | ViewContent | viewContent | - |
| 상품 상세 조회 | view_item | ViewContent | viewContent | - |
| 상품 검색 | search | Search | search | - |
| 장바구니 담기 | add_to_cart | AddToCart | addToCart | - |
| 위시리스트 | add_to_wishlist | AddToWishlist | addToWishlist | - |
| 결제 시작 | begin_checkout | InitiateCheckout | beginCheckout | - |
| 배송정보 입력 | add_shipping_info | - | - | - |
| 결제정보 입력 | add_payment_info | AddPaymentInfo | addPaymentInfo | - |
| 구매 완료 | purchase | Purchase | purchase | purchase |

## Lead Gen Events

| User Action | GA4 | Meta | Kakao | Google Ads |
|-------------|-----|------|-------|------------|
| 회원가입 | sign_up | CompleteRegistration | completeRegistration | sign_up |
| 로그인 | login | - | login | - |
| 리드 생성 | generate_lead | Lead | participation | submit_lead_form |

## Engagement Events

| User Action | GA4 | Meta | Kakao | Google Ads |
|-------------|-----|------|-------|------------|
| 페이지 조회 | page_view | PageView | pageView | page_view |
| 검색 | search | Search | search | - |
| 공유 | share | - | - | - |

## Parameter Transformation

### GA4 → Meta
```javascript
// GA4 items[] → Meta content_ids[]
const contentIds = items.map(item => item.item_id);

// Meta Purchase
fbq('track', 'Purchase', {
  content_ids: contentIds,
  content_type: 'product',
  value: ecommerce.value,
  currency: 'KRW',
  num_items: items.length
});
```

### GA4 → Kakao
```javascript
// GA4 items[] → Kakao products[]
const products = items.map(item => ({
  id: item.item_id,
  name: item.item_name,
  price: item.price,
  quantity: item.quantity
}));

// Kakao purchase
kakaoPixel('PIXEL_ID').purchase({
  total_price: ecommerce.value,
  currency: 'KRW',
  products: products
});
```

## GTM Variables

### CJS - Item IDs for Meta
```javascript
function() {
  var items = {{DLV - ecommerce.items}} || [];
  return items.map(function(item) {
    return item.item_id;
  });
}
```

### CJS - Products for Kakao
```javascript
function() {
  var items = {{DLV - ecommerce.items}} || [];
  return items.map(function(item) {
    return {
      id: item.item_id,
      name: item.item_name,
      price: item.price,
      quantity: item.quantity
    };
  });
}
```

## Deduplication

### Event ID Pattern
```javascript
var eventId = 'evt_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);

// Client-side
fbq('track', 'Purchase', {...}, {eventID: eventId});

// Server-side (CAPI)
// 동일한 eventId 사용 → Meta 자동 중복 제거
```

## Platform-specific Notes

### Meta Pixel
- content_type: 'product' (상품) / 'product_group' (변형)
- currency: ISO 4217 필수
- value: 숫자 (소수점 가능)

### Kakao Pixel
- Server-side 미지원 (Client-only)
- products[]: 최대 10개 권장
- total_price: 숫자

### Google Ads
- Enhanced Conversions 권장
- transaction_id 필수 (중복 제거용)
- value: KRW 정수
