# 필수 이벤트 설정

&#x20;'회원가입', '로그인', '상품조회', '장바구니추가', '구매', '이벤트전 조회'는 많은 광고주들이 트래킹하는 대상입니다. 따라서 거의 대부분의 매체에서도 이들에 대한 데이터 수집과 분석 인사이트를 제공하고 있습니다. 지금 보고 계시는 이 가이드에서도 마찬가지로 여러분들께 "가장 많이 설정하는 데이터 트래킹"을 알려드리고자 합니다.

### 회원가입&#x20;

회원가입 트래킹은 회원가입완료 화면에 사용자가 도달했는지 여부를 확인합니다. 따라서 데이터 트래킹을 위한 아래 스크립트는 회원가입완료 페이지 하단에 작성하도록 합니다.&#x20;

<table><thead><tr><th width="161">key</th><th width="157">value</th><th width="150">type</th><th>설명</th></tr></thead><tbody><tr><td>signupTp </td><td>email(예시) </td><td>String </td><td>통합ID, 소셜계정, 이메일 가입 등 회원가입 유형 정보 </td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
// 앱에서 회원가입이 완료되는 시점에 삽입하십시오
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_signup_complete");
eventMap.put("signupTp", "email");
DOT.logEvent(eventMap);
```

{% endtab %}
{% endtabs %}

### 로그인&#x20;

로그인 트래킹은 로그인완료 화면에 사용자가 도달했는지 여부를 확인합니다. 따라서 데이터 트래킹을 위한 아래 스크립트는 로그인완료 페이지 하단에 작성하도록 합니다.&#x20;

<table><thead><tr><th width="176.87275242047025">key</th><th width="165">value</th><th width="158">type</th><th>설명</th></tr></thead><tbody><tr><td>loginTp </td><td>kakaotalk(예시) </td><td>String </td><td>가입 계정의 회원유형 </td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
// 앱에서 로그인이 완료되는 시점에 삽입하십시오
User user = new User.Builder()
// 성별, 연령, 고객등급을 아래와 같은 key, value로 더 추가 가능합니다
                    .setGender("male")
                    .setAge("20-29")
                    .setAttr1("platinum")
                    .build();
DOT.setUser(user);
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_login_complete");
eventMap.put("loginTp", "kakao");
DOT.logEvent(eventMap);
```

{% endtab %}
{% endtabs %}

### 상품조회

상품조회 트래킹은 해당 상품의 상세화면에 사용자가 도달했는지 여부를 확인합니다. 따라서 데이터 트래킹을 위한 아래 스크립트는 상품 상세 페이지 하단에 작성하도록 합니다.&#x20;

<table><thead><tr><th width="173.454802259887">key</th><th width="167">value</th><th width="159">type</th><th>설명</th></tr></thead><tbody><tr><td>product_id </td><td>2007291158(예시) </td><td>String </td><td>상품 고유코드 </td></tr><tr><td>product_name  </td><td>Leia Pleats Bag Black(예시) </td><td>String </td><td>상품명 </td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
...
// 상품 상세 화면에 삽입하십시오
Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_product");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "2007291158");
productMap.put("product_name", "Leia Pleats Bag Black");
pageMap.put("product", productMap);
DOT.logScreen(pageMap);
...
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
...
// 상품 상세 화면에 삽입하십시오
val pageMap: MutableMap<String, Any> = HashMap()
pageMap["event"] = "w_view_product"
val productMap: MutableMap<String, Any> = HashMap()
productMap["product_id"] = "2007291158"
productMap["product_name"] = "Leia Pleats Bag Black"
pageMap["product"] = productMap
DOT.logScreen(pageMap)
...
```

{% endtab %}
{% endtabs %}

### 장바구니추가

장바구니추가 트래킹은 해당 상품을 장바구니로 추가하는 버튼을 클릭했는지 여부를 확인합니다. 따라서 데이터 트래킹을 위한 아래 스크립트는 장바구니추가 클릭 이벤트 안에 작성하도록 합니다.&#x20;

<table><thead><tr><th width="171">key</th><th>value</th><th width="188">type</th><th>설명</th></tr></thead><tbody><tr><td>product_id </td><td>2007291158(예시) </td><td>String </td><td>상품 고유코드 </td></tr><tr><td>product_name </td><td>Leia Pleats Bag Black, 페이 스몰 숄더백 (FAYE)(예시) </td><td>String </td><td>상품명 </td></tr><tr><td>quantity </td><td>2(예시) </td><td>int </td><td>상품 개수 </td></tr></tbody></table>

#### 한가지 상품이 장바구니에 추가된 경우&#x20;

{% tabs %}
{% tab title="Java" %}

```java
// 상품이 장바구니에 추가되는 시점에 삽입하십시오
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_add_to_cart");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "2007291158");
productMap.put("product_name", "Leia Pleats Bag Black");
productMap.put("quantity", 2);
eventMap.put("product", productMap);
DOT.logEvent(eventMap);
```

{% endtab %}
{% endtabs %}

#### 두개 이상의 상품이 장바구니에 추가된 경우&#x20;

{% tabs %}
{% tab title="Java" %}

```java
// 상품이 장바구니에 추가되는 시점에 삽입하십시오
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_add_to_cart");
Map<String, Object> productMap1 = new HashMap<>();
productMap1.put("product_id", "2007291158");
productMap1.put("product_name", "Leia Pleats Bag Black");
productMap1.put("quantity", 2);
Map<String, Object> productMap2 = new HashMap<>();
productMap2.put("product_id", "2005268849");
productMap2.put("product_name", "페이 스몰 숄더백 (FAYE)");
productMap2.put("quantity", 1);
List<Map<String, Object>> productList = new ArrayList<>();
productList.add(productMap1);
productList.add(productMap2);
eventMap.put("product", productList);
DOT.logEvent(eventMap);
```

{% endtab %}
{% endtabs %}

### 구매&#x20;

구매 트래킹은 상품(들)에 대한 구매완료 화면에 사용자가 도달했는지 여부를 확인합니다. 따라서 데이터 트래킹을 위한 아래 스크립트는 구매완료 페이지 하단에 작성하도록 합니다.&#x20;

<table><thead><tr><th width="192">key</th><th width="187">value</th><th width="155">type</th><th>설명</th></tr></thead><tbody><tr><td>transaction_id </td><td>TR2020111129420(예시) </td><td>String </td><td>주문번호 </td></tr><tr><td>currency </td><td>KRW(예시) </td><td>String </td><td>결제 통화코드 </td></tr><tr><td>product_id </td><td>2007291158(예시) </td><td>String </td><td>상품 고유코드 </td></tr><tr><td>product_name </td><td>Leia Pleats Bag Black, 페이 스몰 숄더백 (FAYE)(예시) </td><td>String </td><td>상품명 </td></tr><tr><td>quantity </td><td>2(예시) </td><td>int </td><td>상품 개수 </td></tr><tr><td>revenue </td><td>283100(예시) </td><td>double </td><td>유저가 실 결제한 금액 </td></tr></tbody></table>

#### 한가지 상품이 구매된 경우&#x20;

{% tabs %}
{% tab title="Java" %}

```java
// 상품구매 완료 화면에 삽입하십시오
Map<String, Object> purchaseMap = new HashMap<>();
purchaseMap.put("transaction_id", "TR2020111129420");
purchaseMap.put("currency", "KRW");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "2007291158");
productMap.put("product_name", "Leia Pleats Bag Black");
productMap.put("quantity", 2);
productMap.put("revenue", 283100);
purchaseMap.put("product", productMap);
DOT.logPurchase(purchaseMap);
```

{% endtab %}
{% endtabs %}

#### 두가지 이상의 상품이 구매된 경우

{% tabs %}
{% tab title="Java" %}

```java
// 상품구매 완료 화면에 삽입하십시오
Map<String, Object> purchaseMap = new HashMap<>();
purchaseMap.put("transaction_id", "TR2020111129421");
purchaseMap.put("currency", "KRW");
Map<String, Object> productMap1 = new HashMap<>();
productMap1.put("product_id", "2007291158");
productMap1.put("product_name", "Leia Pleats Bag Black");
productMap1.put("quantity", 2);
productMap1.put("revenue", 566200);
Map<String, Object> productMap2 = new HashMap<>();
productMap2.put("product_id", "2005268849");
productMap2.put("product_name", "페이 스몰 숄더백 (FAYE)");
productMap2.put("quantity", 1);
productMap2.put("revenue", 1323000);
List<Map<String, Object>> productList = new ArrayList<>();
productList.add(productMap1);
productList.add(productMap2);
purchaseMap.put("product", productList);
DOT.logPurchase(purchaseMap);
```

{% endtab %}
{% endtabs %}

### 이벤트조회&#x20;

이벤트조회 트래킹은 해당 이벤트 상세 화면에 사용자가 도달했는지 여부를 확인합니다. 따라서 데이터 트래킹을 위한 아래 스크립트는 이벤트 상세(보기) 페이지 하단에 작성하도록 합니다.&#x20;

<table><thead><tr><th width="179">key</th><th width="167">value</th><th width="161">type</th><th>설명</th></tr></thead><tbody><tr><td>event_id </td><td>E200905605(예시) </td><td>String </td><td>이벤트 고유번호 </td></tr><tr><td>event_name </td><td>10월 COUPON PACK(예시) </td><td>String </td><td>이벤트 명칭 </td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
<!-- 이벤트 상세화면에 삽입하십시오 -->
Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_event");
pageMap.put("event_id", "E200905605");
pageMap.put("event_name", "10월 COUPON PACK");
DOT.logScreen(pageMap);
```

{% endtab %}
{% endtabs %}
