> For the complete documentation index, see [llms.txt](https://docs.dfinery.ai/developer-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dfinery.ai/developer-guide/platform/ios/event.md).

# 이벤트

DFINERY SDK를 사용하여 사용자 이벤트를 기록하는 방법입니다. [SDK 연동](/developer-guide/platform/ios/integration.md)이 선행되어야 합니다.

## 시작하기 전에

이벤트를 기록하기 전에 [DFINERY 콘솔](https://console.dfinery.ai/)에 이벤트를 등록 후 연동해 주세요. 이벤트 등록은 콘솔의 부가 설정 / 데이터 연동 / 이벤트 관리 / 이벤트 목록에서 할 수 있습니다.

{% hint style="danger" %}
등록되지 않은 이벤트, 이벤트 속성, 잘못된 타입의 이벤트 속성이 기록될 경우, 혹은 등록된 이벤트 속성 중 하나라도 누락될 경우 이벤트가 기록되지 않습니다.
{% endhint %}

## 이벤트 기록

다음의 `logEvent` 메소드 중 하나를 호출하여 이벤트를 기록합니다. [표준 이벤트](#predefinded_event)는 상수를 제공합니다.

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

```swift
func logEvent(_ name: String)
    
func logEvent(_ name: String, properties: [String: Any])
```

각각의 매개변수는 다음을 의미합니다.

* `name` : 이벤트 이름
* `properties` : 이벤트 속성

**사용 예시**

```swift
// 이벤트만 기록할 경록
Dfinery.shared().logEvent(DFEvent.LOGIN)

// 이벤트 속성과 함께 기록할 경우
Dfinery.shared().logEvent(
    "custom_event", 
    properties: ["custom_key": "custom_value"]
)

// 이벤트 속성, 아이템 모두 기록할 경우
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "apple",
    DFEventProperty.ITEM_PRICE: 1000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "b131901200",
    DFEventProperty.ITEM_NAME: "car",
    DFEventProperty.ITEM_PRICE: 1000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0
]

let properties: [String: Any] = [
    DFEventProperty.TOTAL_PURCHASE_AMOUNT: 2000.0,
    DFEventProperty.ORDER_ID: "a0b1c211",
    DFEventProperty.PAYMENT_METHOD: "credit_card",
    DFEventProperty.DELIVERY_CHARGE: 0.0,
    DFEventProperty.DISCOUNT: 0.0,
    DFEventProperty.ITEMS: [item1, item2]
]

Dfinery.shared().logEvent(DFEvent.PURCHASE, properties: properties)
```

{% endtab %}

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

```objective-c
logEvent:(NSString * _Nonnull)

logEvent:(NSString * _Nonnull) withProperties:(NSDictionary<NSString *,id> * _Nonnull)
```

각각의 매개변수는 다음을 의미합니다.

* `첫번 째 파라미터` : 이벤트 이름
* `properties` : 이벤트 속성

**사용 예시**

```objective-c
// 이벤트만 기록할 경우
[[Dfinery shared] logEvent:DFEvent.LOGIN];

// 이벤트 속성과 함께 기록할 경우
[[Dfinery shared] logEvent:@"custom_event" properties:@{
    @"custom_key": @"custom_value"
}];

// 이벤트 속성, 아이템 모두 기록할 경우
NSDictionary *item1 = @{
    DFEventProperty.ITEM_ID: @"b1319000",
    DFEventProperty.ITEM_NAME: @"apple",
    DFEventProperty.ITEM_PRICE: @1000.0,
    DFEventProperty.ITEM_QUANTITY: @1,
    DFEventProperty.ITEM_DISCOUNT: @0.0
};
NSDictionary *item2 = @{
    DFEventProperty.ITEM_ID: @"a8901200",
    DFEventProperty.ITEM_NAME: @"car",
    DFEventProperty.ITEM_PRICE: @600000.0,
    DFEventProperty.ITEM_QUANTITY: @2
    DFEventProperty.ITEM_DISCOUNT: @0.0
};
NSArray<NSDictionary *> *items = @[item1, item2];

NSDictionary *properties = @{
    DFEventProperty.TOTAL_PURCHASE_AMOUNT: @601000.0,
    DFEventProperty.ORDER_ID: @"a0b1c211",
    DFEventProperty.PAYMENT_METHOD: @"credit_card",
    DFEventProperty.DELIVERY_CHARGE: @0.0,
    DFEventProperty.DISCOUNT: @0.0,
    DFEventProperty.ITEMS: items
};

[[Dfinery shared] logEvent:DFEvent.PURCHASE properties: properties];
```

{% endtab %}
{% endtabs %}

## 표준 이벤트 & 상품 속성

표준 이벤트와 표준 이벤트 속성, 상품 속성은 아래와 같습니다. 이벤트 이름으로도 사용가능합니다.

### 표준 이벤트 <a href="#predefinded_event" id="predefinded_event"></a>

표준 이벤트의 이벤트와 이벤트 속성 이름의 경우 다음과 같이 사전 정의된 정적 상수로 제공됩니다.

| 상수                             | 이벤트명                       | 표기명      |
| ------------------------------ | -------------------------- | -------- |
| `DFEvent.LOGIN`                | df\_login                  | 로그인      |
| `DFEvent.LOGOUT`               | df\_logout                 | 로그아웃     |
| `DFEvent.SIGN_UP`              | df\_sign\_up               | 회원가입     |
| `DFEvent.PURCHASE`             | df\_purchase               | 구매       |
| `DFEvent.VIEW_HOME`            | df\_view\_home             | 홈 화면 조회  |
| `DFEvent.VIEW_PRODUCT_DETAILS` | df\_view\_product\_details | 상품 상세보기  |
| `DFEvent.ADD_TO_CART`          | df\_add\_to\_cart          | 장바구니 담기  |
| `DFEvent.ADD_TO_WISHLIST`      | df\_add\_to\_wishlist      | 관심상품 추가  |
| `DFEvent.REFUND`               | df\_refund                 | 주문취소하기   |
| `DFEvent.VIEW_SEARCH_RESULT`   | df\_view\_search\_result   | 상품 검색하기  |
| `DFEvent.SHARE_PRODUCT`        | df\_share\_product         | 상품 공유하기  |
| `DFEvent.VIEW_LIST`            | df\_view\_list             | 상품 목록 조회 |
| `DFEvent.VIEW_CART`            | df\_view\_cart             | 장바구니 조회  |
| `DFEvent.ADD_PAYMENT_INFO`     | df\_add\_payment\_info     | 구매 정보 입력 |
| `DFEvent.REMOVE_CART`          | df\_remove\_cart           | 장바구니 삭제  |

### 표준 이벤트 속성

| 상수                                      | 이벤트 속성명                     | 표기명       |
| --------------------------------------- | --------------------------- | --------- |
| `DFEventProperty.ITEMS`                 | df\_items                   | 상품        |
| `DFEventProperty.TOTAL_REFUND_AMOUNT`   | df\_total\_refund\_amount   | 환불(취소) 총액 |
| `DFEventProperty.ORDER_ID`              | df\_order\_id               | 주문 번호(ID) |
| `DFEventProperty.DELIVERY_CHARGE`       | df\_delivery\_charge        | 배송료       |
| `DFEventProperty.PAYMENT_METHOD`        | df\_payment\_method         | 결제 방법     |
| `DFEventProperty.TOTAL_PURCHASE_AMOUNT` | df\_total\_purchase\_amount | 주문 총액     |
| `DFEventProperty.SHARING_CHANNEL`       | df\_sharing\_channel        | 상품공유 채널   |
| `DFEventProperty.SIGN_CHANNEL`          | df\_sign\_channel           | 상품 할인가    |
| `DFEventProperty.KEYWORD`               | df\_keyword                 | 검색 키워드    |

### 상품 속성 <a href="#item_property" id="item_property"></a>

DFEventProperty.ITEMS 내에 배열로 적재되는 상품에 대한 기 정의된 속성 값에 대한 정보입니다. ITEM\_ID, ITEM\_NAME, ITEM\_PRICE, ITEM\_QUANTITY, ITEM\_DISCOUNT는 필수 값으로 반드시 포함해야 합니다.

| 상수                               | 이벤트 속성명        | 타입     | 설명        | 필수 |
| -------------------------------- | -------------- | ------ | --------- | -- |
| `DFEventProperty.ITEM_ID`        | df\_item\_id   | String | 상품 번호(ID) | ✅  |
| `DFEventProperty.ITEM_NAME`      | df\_item\_name | String | 상품 명      | ✅  |
| `DFEventProperty.ITEM_PRICE`     | df\_price      | Double | 상품 단가     | ✅  |
| `DFEventProperty.ITEM_QUANTITY`  | df\_quantity   | Int    | 상품 수량     | ✅  |
| `DFEventProperty.ITEM_DISCOUNT`  | df\_discount   | Double | 상품 할인가    | ✅  |
| `DFEventProperty.ITEM_CATEGORY1` | df\_category1  | String | 상품 카테고리1  |    |
| `DFEventProperty.ITEM_CATEGORY2` | df\_category2  | String | 상품 카테고리2  |    |
| `DFEventProperty.ITEM_CATEGORY3` | df\_category3  | String | 상품 카테고리3  |    |
| `DFEventProperty.ITEM_CATEGORY4` | df\_category4  | String | 상품 카테고리4  |    |
| `DFEventProperty.ITEM_CATEGORY5` | df\_category5  | String | 상품 카테고리5  |    |

{% hint style="info" %}
df\_start\_session, df\_end\_session 이벤트는 SDK를 통해 자동으로 수집되므로 호출할 필요가 없습니다.
{% endhint %}

## 표준 이벤트 사용 예시

### 로그인

유저가 서비스에 회원으로 가입하는 동작을 나타내는 이벤트입니다.

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

```swift
Dfinery.shared().logEvent(DFEvent.LOGIN)
```

{% endtab %}

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

```objective-c
[[Dfinery shared] logEvent:DFEvent.LOGIN];
```

{% endtab %}
{% endtabs %}

### 로그아웃

유저가 앱에서 로그아웃하는 동작을 나타내는 이벤트입니다.

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

```swift
Dfinery.shared().logEvent(DFEvent.LOGOUT)
```

{% endtab %}

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

```objective-c
[[Dfinery shared] logEvent:DFEvent.LOGOUT];
```

{% endtab %}
{% endtabs %}

### 회원가입

유저가 회원으로 가입하는 동작을 나타내는 이벤트입니다.

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

```swift
Dfinery.shared().logEvent(
    DFEvent.SIGN_UP,
    properties: [DFEventProperty.SIGN_CHANNEL: "Apple"]
)
```

{% endtab %}

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

```objective-c
NSDictionary *signUpProperties = @{
    @"DFEventProperty.SIGN_CHANNEL": @"Apple"
};

[[Dfinery shared] logEvent:@"DFEvent.SIGN_UP" properties:signUpProperties];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                             | 타입     | 설명      | 필수 |
| ------------------------------ | ------ | ------- | -- |
| `DFEventProperty.SIGN_CHANNEL` | String | 회원가입 채널 | ✅  |

### 구매

유저가 상품이나 서비스를 구매하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 1500000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

let properties: [String: Any] = [
    DFEventProperty.TOTAL_PURCHASE_AMOUNT: 1510000.0,
    DFEventProperty.ORDER_ID: "a001",
    DFEventProperty.PAYMENT_METHOD: "credit_card",
    DFEventProperty.DELIVERY_CHARGE: 0.0,
    DFEventProperty.DISCOUNT: 0,
    DFEventProperty.ITEMS: items
]

Dfinery.shared().logEvent(DFEvent.PURCHASE, properties: properties)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @150000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSDictionary *purchaseProperties = @{
    @"DFEventProperty.TOTAL_PURCHASE_AMOUNT": @1510000,
    @"DFEventProperty.ORDER_ID": @"a001",
    @"DFEventProperty.PAYMENT_METHOD": @"credit_card",
    @"DFEventProperty.DELIVERY_CHARGE": @0.0,
    @"DFEventProperty.DISCOUNT": @0.0,
    @"DFEventProperty.ITEMS": @[item1, item2]
};

[[Dfinery shared] logEvent:@"DFEvent.PURCHASE" properties:purchaseProperties];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                                      | 타입     | 설명                   | 필수 |
| --------------------------------------- | ------ | -------------------- | -- |
| `DFEventProperty.ITEMS`                 | Array  | [상품](#item_property) | ✅  |
| `DFEventProperty.ORDER_ID`              | String | 주문 번호(ID)            | ✅  |
| `DFEventProperty.PAYMENT_METHOD`        | String | 결제 방법                | ✅  |
| `DFEventProperty.TOTAL_PURCHASE_AMOUNT` | Double | 주문 총액                | ✅  |
| `DFEventProperty.DELIVERY_CHARGE`       | Double | 배송료                  | ✅  |
| `DFEventProperty.DISCOUNT`              | Double | 상품할인가                | ✅  |

### 홈 화면 조회

유저가 앱의 홈 화면을 조회하는 동작을 나타내는 이벤트입니다.

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

```swift
    Dfinery.shared().logEvent(DFEvent.VIEW_HOME)
```

{% endtab %}

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

```objective-c
[[Dfinery shared] logEvent:DFEvent.VIEW_HOME];
```

{% endtab %}
{% endtabs %}

### 상품 상세 보기

유저가 특정 상품의 상세 정보를 조회하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

Dfinery.shared().logEvent(
    DFEvent.VIEW_PRODUCT_DETAILS, 
    properties: [DFEventProperty.ITEMS: items]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.VIEW_PRODUCT_DETAILS withProperties:@{
    DFEventProperty.ITEMS: items
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                      | 타입    | 설명                   | 필수 |
| ----------------------- | ----- | -------------------- | -- |
| `DFEventProperty.ITEMS` | Array | [상품](#item_property) | ✅  |

### 장바구니 담기

유저가 상품을 장바구니에 담는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

Dfinery.shared().logEvent(
    DFEvent.ADD_TO_CART, 
    properties: [DFEventProperty.ITEMS: items]
)

```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.ADD_TO_CART withProperties:@{
    DFEventProperty.ITEMS: items
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                      | 타입    | 설명                   | 필수 |
| ----------------------- | ----- | -------------------- | -- |
| `DFEventProperty.ITEMS` | Array | [상품](#item_property) | ✅  |

### 관심 상품 추가

유저가 상품을 관심 목록에 추가하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

Dfinery.shared().logEvent(
    DFEvent.ADD_TO_WISHLIST, 
    properties: [DFEventProperty.ITEMS: items]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.ADD_TO_WISHLIST withProperties:@{
    DFEventProperty.ITEMS: items
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                      | 타입    | 설명                   | 필수 |
| ----------------------- | ----- | -------------------- | -- |
| `DFEventProperty.ITEMS` | Array | [상품](#item_property) | ✅  |

### 주문 취소하기

유저가 구매한 주문을 취소하고 환불하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 1500000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

Dfinery.shared().logEvent(
    DFEvent.REFUND,
    properties: [
        DFEventProperty.TOTAL_REFUND_AMOUNT: 1510000.0,
        DFEventProperty.ITEMS: [item1, item2]
    ]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

NSDictionary *refundProperties = @{
    @"DFEventProperty.TOTAL_REFUND_AMOUNT": @1510000.0,
    @"DFEventProperty.ITEMS": items
};

[[Dfinery shared] logEvent:@"DFEvent.REFUND" properties:refundProperties];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                                    | 타입     | 설명                   | 필수 |
| ------------------------------------- | ------ | -------------------- | -- |
| `DFEventProperty.ITEMS`               | Array  | [상품](#item_property) | ✅  |
| `DFEventProperty.TOTAL_REFUND_AMOUNT` | Double | 환불(취소) 총액            | ✅  |

### 상품 검색하기

유저가 상품을 검색하여 결과를 확인하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

Dfinery.shared().logEvent(
    DFEvent.VIEW_SEARCH_RESULT,
    properties: [
        DFEventProperty.KEYWORD: "keyword",
        DFEventProperty.ITEMS: items
    ]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.VIEW_SEARCH_RESULT withProperties:@{
    DFEventProperty.KEYWORD: @"keyword",
    DFEventProperty.ITEMS: items
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                        | 타입     | 설명                   | 필수 |
| ------------------------- | ------ | -------------------- | -- |
| `DFEventProperty.ITEMS`   | Array  | [상품](#item_property) | ✅  |
| `DFEventProperty.KEYWORD` | String | 검색 키워드               | ✅  |

### 상품 공유하기

유저가 상품을 공유하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

Dfinery.shared().logEvent(
    DFEvent.SHARE_PRODUCT,
    properties: [
        DFEventProperty.SHARING_CHANNEL: "sharing_channel",
        DFEventProperty.ITEMS: items
    ]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.SHARE_PRODUCT withProperties:@{
    DFEventProperty.SHARING_CHANNEL: @"sharing_channel",
    DFEventProperty.ITEMS: items
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                                | 타입     | 설명                   | 필수 |
| --------------------------------- | ------ | -------------------- | -- |
| `DFEventProperty.ITEMS`           | Array  | [상품](#item_property) | ✅  |
| `DFEventProperty.SHARING_CHANNEL` | String | 상품 공유 채널             | ✅  |

### 상품 목록 조회

유저가 상품 목록을 조회하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

Dfinery.shared().logEvent(
    DFEvent.VIEW_LIST, 
    properties: [DFEventProperty.ITEMS: items]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.VIEW_LIST withProperties:@{
    DFEventProperty.ITEMS: items
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                      | 타입    | 설명                   | 필수 |
| ----------------------- | ----- | -------------------- | -- |
| `DFEventProperty.ITEMS` | Array | [상품](#item_property) | ✅  |

### 장바구니 조회

유저가 장바구니를 조회하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]

Dfinery.shared().logEvent(
    DFEvent.VIEW_CART,
    properties: [DFEventProperty.ITEMS: items]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.VIEW_CART withProperties:@{
    DFEventProperty.ITEMS: item
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                      | 타입    | 설명                   | 필수 |
| ----------------------- | ----- | -------------------- | -- |
| `DFEventProperty.ITEMS` | Array | [상품](#item_property) | ✅  |

### 구매 정보 입력

유저가 구매 정보를 입력하는 동작을 나타내는 이벤트입니다.

```swift
Dfinery.shared().logEvent(DFEvent.ADD_PAYMENT_INFO)
```

```objective-c
[[Dfinery shared] logEvent:DFEvent.ADD_PAYMENT_INFO];
```

### 장바구니 삭제

유저가 장바구니에 담긴 상품을 제거하는 동작을 나타내는 이벤트입니다.

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

```swift
let item1: [String: Any] = [
    DFEventProperty.ITEM_ID: "b1319000",
    DFEventProperty.ITEM_NAME: "iPhone12",
    DFEventProperty.ITEM_PRICE: 15000000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "apple"
]
let item2: [String: Any] = [
    DFEventProperty.ITEM_ID: "a3219006",
    DFEventProperty.ITEM_NAME: "Charger",
    DFEventProperty.ITEM_PRICE: 10000.0,
    DFEventProperty.ITEM_QUANTITY: 1,
    DFEventProperty.ITEM_DISCOUNT: 0.0,
    DFEventProperty.ITEM_CATEGORY1: "디지털",
    DFEventProperty.ITEM_CATEGORY2: "가전",
    DFEventProperty.ITEM_CATEGORY3: "전화기",
    DFEventProperty.ITEM_CATEGORY4: "스마트폰",
    DFEventProperty.ITEM_CATEGORY5: "액세서리"
]

let items = [item1, item2]
Dfinery.shared().logEvent(
    DFEvent.REMOVE_CART,
    properties: [DFEventProperty.ITEMS: items]
)
```

{% endtab %}

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

```objective-c
NSDictionary *item1 = @{
    @"DFEventProperty.ITEM_ID": @"b1319000",
    @"DFEventProperty.ITEM_NAME": @"iPhone12",
    @"DFEventProperty.ITEM_PRICE": @1500000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"apple"
};

NSDictionary *item2 = @{
    @"DFEventProperty.ITEM_ID": @"a3219006",
    @"DFEventProperty.ITEM_NAME": @"Charger",
    @"DFEventProperty.ITEM_PRICE": @10000.0,
    @"DFEventProperty.ITEM_QUANTITY": @1,
    @"DFEventProperty.ITEM_DISCOUNT": @0.0,
    @"DFEventProperty.ITEM_CATEGORY1": @"디지털",
    @"DFEventProperty.ITEM_CATEGORY2": @"가전",
    @"DFEventProperty.ITEM_CATEGORY3": @"전화기",
    @"DFEventProperty.ITEM_CATEGORY4": @"스마트폰",
    @"DFEventProperty.ITEM_CATEGORY5": @"액세서리"
};

NSArray<NSDictionary *> *items = @[item1, item2];

[[Dfinery shared] logEvent:DFEvent.REMOVE_CART withProperties:@{
    DFEventProperty.ITEMS: items
}];
```

{% endtab %}
{% endtabs %}

#### 표준 이벤트 속성

| 이름                      | 타입    | 설명                   | 필수 |
| ----------------------- | ----- | -------------------- | -- |
| `DFEventProperty.ITEMS` | Array | [상품](#item_property) | ✅  |

## 커스텀 이벤트

DFINERY에서 미리 정의되지 않은, [DFINERY 콘솔](https://console.dfinery.ai/)에서 생성한 커스텀 이벤트 호출 예시입니다.

{% hint style="warning" %}
이벤트 호출 전 반드시 콘솔에 설정한 이벤트 이름, 속성과 데이터 타입이 일치하는지 확인해주세요.
{% endhint %}

{% tabs %}
{% tab title="Swift" %}
**이벤트 속성이 없는 경우**

```swift
Dfinery.shared().logEvent("YOUR_CUSTOM_EVENT")
```

**이벤트 속성이 있는 경우**

```swift
Dfinery.shared().logEvent(
    "CUSTOM_EVENT_WITH_PROPS", 
    properties: [
        "count": 42, 
        "name": "jimmy"
    ]
)
```

{% endtab %}

{% tab title="Objective-C" %}
**이벤트 속성이 없는 경우**

```objective-c
[[Dfinery shared] logEvent:@"YOUR_CUSTOM_EVENT"];
```

**이벤트 속성이 있는 경우**

```objective-c
[[Dfinery shared] logEvent:@"CUSTOM_EVENT_WITH_PROPS" withProperties:@{
    @"count": @42, 
    @"name": @"jimmy"
}];
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.dfinery.ai/developer-guide/platform/ios/event.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
