# 필수 이벤트 설정

&#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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://document.wisetracker.co.kr/v2-developer/sdk/android/recommended-event.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
