# 필수 이벤트 설정

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

```objectivec
// 앱에서 회원가입이 완료되는 시점에 삽입하십시오
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_signup_complete" forKey:@"event"];
[event setValue:@"email" forKey:@"signupTp"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Swift" %}

```swift
// 앱에서 회원가입이 완료되는 시점에 삽입하십시오 
let event = NSMutableDictionary()
event["event"] = "w_signup_complete"
event["signupTp"] = "email"
DOT.logEvent(event)
```

{% 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="Objective-C" %}

```objectivec
// 앱에서 로그인이 완료되는 시점에 삽입하십시오
[DOT setUser:
    [User builder:^(User *user) {
        // 성별, 연령, 고객등급을 아래와 같은 key, value로 더 추가 가능합니다
        user.gender = "male"
        user.age = "20-29"
        user.attribute1 = "platinum"
    }]
];
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_login_complete" forKey:@"event"];
[event setValue:@"kakao" forKey:@"loginTp"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Swift" %}

```swift
// 앱에서 로그인이 완료되는 시점에 삽입하십시오
DOT.setUser(
    User.builder({ (builder) in
        let user = builder as! User
        // 성별, 연령, 고객등급을 아래와 같은 key, value로 더 추가 가능합니다
        user.gender = "male"
        user.age = "20-29"
        user.attribute1 = "platinum"
    })
)
let event = NSMutableDictionary() 
event["event"] = "w_login_complete"
event["loginTp"] = "kakao"
DOT.logEvent(event)
```

{% 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="Objective-C" %}

```objectivec
// 상품 상세 화면에 삽입하십시오
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_view_product" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"2007291158" forKey:@"product_id"];
[product setValue:@"Leia Pleats Bag Black" forKey:@"product_name"];
[screen setValue:product forKey:@"product"];
[DOT logScreen:screen];
```

{% endtab %}

{% tab title="Swift" %}

```swift
// 상품 상세 화면에 삽입하십시오
let screen = NSMutableDictionary()
screen["event"] = "w_view_product"
var product : [String: Any] = [:]
product["product_id"] = "2007291158"
product["product_name"] = "Leia Pleats Bag Black"
screen["product"] = product
DOT.logScreen(screen)
```

{% 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="Objective-C" %}

```objectivec
// 상품이 장바구니에 추가되는 시점에 삽입하십시오
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_add_to_cart" forKey:@"event"];
NSMutableDictionary *product1 = [[NSMutableDictionary alloc] init];
[product1 setValue:@"2007291158" forKey:@"product_id"];
[product1 setValue:@"Leia Pleats Bag Black" forKey:@"product_name"];
[product1 setValue:@2 forKey:@"quantity"];
NSMutableArray *product= [[NSMutableArray alloc] init];
[product addObject:product1];
[event setValue:product forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Swift" %}

```swift
// 상품이 장바구니에 추가되는 시점에 삽입하십시오
let event = NSMutableDictionary()
event["event"] = "w_add_to_cart"
var product1 : [String: Any] = [:]
product1["product_id"] = "2007291158"
product1["product_name"] = "Leia Pleats Bag Black"
product1["quantity"] = 2   
var product : [Any] = []
product.append(product1)
purchase["product"] = product
event["product"] = product
DOT.logEvent(event)
```

{% endtab %}
{% endtabs %}

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

{% tabs %}
{% tab title="Objective-C" %}

```objectivec
// 상품이 장바구니에 추가되는 시점에 삽입하십시오
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_add_to_cart" forKey:@"event"];
NSMutableDictionary *product1 = [[NSMutableDictionary alloc] init];
[product1 setValue:@"2007291158" forKey:@"product_id"];
[product1 setValue:@"Leia Pleats Bag Black" forKey:@"product_name"];
[product1 setValue:@2 forKey:@"quantity"];
NSMutableDictionary *product2 = [[NSMutableDictionary alloc] init];
[product2 setValue:@"2005268849" forKey:@"product_id"];
[product2 setValue:@"페이 스몰 숄더백 (FAYE)" forKey:@"product_name"];
[product2 setValue:@1 forKey:@"quantity"];
NSMutableArray *product= [[NSMutableArray alloc] init];
[product addObject:product1];
[product addObject:product2];
[event setValue:productArray forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Swift" %}

```swift
// 상품이 장바구니에 추가되는 시점에 삽입하십시오
let event = NSMutableDictionary()
event["event"] = "w_add_to_cart"
var product1 : [String: Any] = [:]
product1["product_id"] = "2007291158"
product1["product_name"] = "Leia Pleats Bag Black"
product1["quantity"] = 2
var product2 : [String: Any] = [:]
product2["product_id"] = "2005268849"
product2["product_name"] = "페이 스몰 숄더백 (FAYE)"
product2["quantity"] = 1
var product : [Any] = []
product.append(product1)
product.append(product2)
event["product"] = product
DOT.logEvent(event)
```

{% 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="Objective-C" %}

```objectivec
// 상품구매 완료 화면에 삽입하십시오
NSMutableDictionary *purchase = [[NSMutableDictionary alloc] init];
[purchase setValue:@"TR2020111129420" forKey:@"transaction_id"];
[purchase setValue:@"KRW" forKey:@"currency"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"2007291158" forKey:@"product_id"];
[product setValue:@"Leia Pleats Bag Black" forKey:@"product_name"];
[product setValue:[NSNumber numberWithInt:2] forKey:@"quantity"];
[product setValue:[NSNumber numberWithInt:566200] forKey:@"revenue"];
[purchase setValue:product forKey:@"product"];
[DOT logPurchase:purchase];
```

{% endtab %}

{% tab title="Swift" %}

```swift
// 상품구매 완료 화면에 삽입하십시오
let purchase = NSMutableDictionary()
purchase["transaction_id"] = "TR2020111129420"
purchase["currency"] = "KRW"
var product : [String: Any] = [:]
product["product_id"] = "2007291158"
product["product_name"] = "Leia Pleats Bag Black"
product["quantity"] = 2
product["revenue"] = 566200
purchase["product"] = product
DOT.logPurchase(purchase)
```

{% endtab %}
{% endtabs %}

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

{% tabs %}
{% tab title="Objective-C" %}

```objectivec
// 상품구매 완료 화면에 삽입하십시오
NSMutableDictionary *purchase = [[NSMutableDictionary alloc] init];
[purchase setValue:@"TR2020111129421" forKey:@"transaction_id"];
[purchase setValue:@"KRW" forKey:@"currency"];
NSMutableDictionary *product1 = [[NSMutableDictionary alloc] init];
[product1 setValue:@"2007291158" forKey:@"product_id"];
[product1 setValue:@"Leia Pleats Bag Black" forKey:@"product_name"];
[product1 setValue:[NSNumber numberWithInt:2] forKey:@"quantity"];
[product1 setValue:[NSNumber numberWithInt:566200] forKey:@"revenue"];
NSMutableDictionary *product2 = [[NSMutableDictionary alloc] init];
[product2 setValue:@"2005268849" forKey:@"product_id"];
[product2 setValue:@"페이 스몰 숄더백 (FAYE)" forKey:@"product_name"];
[product2 setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
[product2 setValue:[NSNumber numberWithInt:1323000] forKey:@"revenue"];
NSMutableArray *product = [[NSMutableArray alloc] init];
[product addObject:product1];
[product addObject:product2];
[purchase setValue:product forKey:@"product"];
[DOT logPurchase:purchase];
```

{% endtab %}

{% tab title="Swift" %}

```swift
// 상품구매 완료 화면에 삽입하십시오
let purchase = NSMutableDictionary()
purchase["transaction_id"] = "TR2020111129421"
purchase["currency"] = "KRW"
var product1 : [String: Any] = [:]
product1["product_id"] = "2007291158"
product1["product_name"] = "Leia Pleats Bag Black"
product1["quantity"] = 2
product1["revenue"] = 566200
var product2 : [String: Any] = [:]
product2["product_id"] = "2005268849"
product2["product_name"] = "페이 스몰 숄더백 (FAYE)"
product2["quantity"] = 1
product2["revenue"] = 1323000
var productArray : [Any] = []
productArray.append(product1)
productArray.append(product2)
purchase["product"] = productArray
DOT.logPurchase(purchase)
```

{% 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="Objective-C" %}

```objectivec
<!-- 이벤트 상세화면에 삽입하십시오 -->
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_view_event" forKey:@"event"];
[screen setValue:@"E200905605" forKey:@"event_id"];
[screen setValue:@"10월 COUPON PACK" forKey:@"event_name"];
[DOT logScreen:screen];
```

{% endtab %}

{% tab title="Swift" %}

```swift
<!-- 이벤트 상세화면에 삽입하십시오 -->
var screen = NSMutableDictionary()
screen["event"] = "w_view_event"
screen["event_id"] = "E200905605"
screen["event_name"] = "10월 COUPON PACK"
DOT.logScreen(screen)
```

{% 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/ios/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.
