> For the complete documentation index, see [llms.txt](https://document.wisetracker.co.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://document.wisetracker.co.kr/v2-developer/sdk/ios/recommended-event.md).

# 필수 이벤트 설정

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