# 구매

#### `trackPurchase/trackRevenue`

구매 이벤트를 기록합니다. trackPurchase의 경우 이벤트 이름이 자동으로 mkt\_purchase로 설정됩니다.&#x20;

trackRevenue의 경우 전달된 이벤트 이름을 사용합니다.

**매개변수**:

* name: 이벤트 이름
* properties?: 이벤트와 함께 기록할 속성.
* revenue: 매출 값

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

```javascript
mtap.trackPurchase(100.0, {
  payment_method: 'credit_card',
  mkt_items: [
    {
      mkt_product_id: 'P12345',
      mkt_product_name: 'T-shirt',
      mkt_product_price: 25.0,
      mkt_quantity: 2,
      mkt_discount: 5.0,
      mkt_category1: '의류',
      mkt_category2: '남성복',
    },
    {
      mkt_product_id: 'P67890',
      mkt_product_name: 'Sneakers',
      mkt_product_price: 50.0,
      mkt_quantity: 1,
      mkt_category1: '신발',
      mkt_category2: '운동화',
    },
  ],
});
// ...
mtap.trackRevenue('ad_click_revenue', 50.0, {
  ad_platform: 'Google',
});
```

{% endtab %}

{% tab title="Android - Kotlin" %}

```kotlin
Marketap.trackPurchase(
    revenue = 100.0,
    properties = mapOf(
        "payment_method" to "credit_card",
        "mkt_items" to listOf(
            mapOf(
                "mkt_product_id" to "P12345",
                "mkt_product_name" to "T-shirt",
                "mkt_product_price" to 25.0,
                "mkt_quantity" to 2,
                "mkt_discount" to 5.0,
                "mkt_category1" to "의류",
                "mkt_category2" to "남성복"
            ),
            mapOf(
                "mkt_product_id" to "P67890",
                "mkt_product_name" to "Sneakers",
                "mkt_product_price" to 50.0,
                "mkt_quantity" to 1,
                "mkt_category1" to "신발",
                "mkt_category2" to "운동화"
            )
        )
    )
)

Marketap.trackRevenue(
    name = "ad_click_revenue",
    revenue = 50.0,
    properties = mapOf(
        "ad_platform" to "Google"
    )
)
```

{% endtab %}

{% tab title="Android - Java" %}

```java
import java.util.*;

Marketap.trackPurchase(
    100.0,
    new HashMap<String, Object>() {{
        put("payment_method", "credit_card");
        put("mkt_items", Arrays.asList(
            new HashMap<String, Object>() {{
                put("mkt_product_id", "P12345");
                put("mkt_product_name", "T-shirt");
                put("mkt_product_price", 25.0);
                put("mkt_quantity", 2);
                put("mkt_discount", 5.0);
                put("mkt_category1", "의류");
                put("mkt_category2", "남성복");
            }},
            new HashMap<String, Object>() {{
                put("mkt_product_id", "P67890");
                put("mkt_product_name", "Sneakers");
                put("mkt_product_price", 50.0);
                put("mkt_quantity", 1);
                put("mkt_category1", "신발");
                put("mkt_category2", "운동화");
            }}
        ));
    }}
);

Marketap.trackRevenue(
    "ad_click_revenue",
    50.0,
    new HashMap<String, Object>() {{
        put("ad_platform", "Google");
    }}
);
```

{% endtab %}

{% tab title="IOS - Swift" %}

```swift
Marketap.trackPurchase(
  revenue: 50.0, 
  eventProperties: [
    "ad_platform": "Google",
    "mkt_items": [
      [
        "mkt_product_id": "P12345",
        "mkt_product_name": "T-shirt",
        "mkt_product_price": 25.0,
        "mkt_quantity": 2,
        "mkt_discount": 5.0,
        "mkt_category1": "의류",
        "mkt_category2": "남성복"
      ],
      [
        "mkt_product_id": "P67890",
        "mkt_product_name": "Sneakers",
        "mkt_product_price": 50.0,
        "mkt_quantity": 1,
        "mkt_category1": "신발",
        "mkt_category2": "운동화"
      ]
    ]
  ]
)

Marketap.trackRevenue(
  eventName: "ad_click_revenue", 
  revenue: 50.0, 
  eventProperties: [
    "ad_platform": "Google",
  ]
)
```

{% endtab %}

{% tab title="Flutter - Dart" %}

```dart
Marketap.trackPurchase(
  50.0, 
  eventProperties: {
    "ad_platform": "Google",
    "mkt_items": [
      {
        "mkt_product_id": "P12345",
        "mkt_product_name": "T-shirt",
        "mkt_product_price": 25.0,
        "mkt_quantity": 2,
        "mkt_discount": 5.0,
        "mkt_category1": "의류",
        "mkt_category2": "남성복",
      },
      {
        "mkt_product_id": "P67890",
        "mkt_product_name": "Sneakers",
        "mkt_product_price": 50.0,
        "mkt_quantity": 1,
        "mkt_category1": "신발",
        "mkt_category2": "운동화",
      },
    ],
  }
);

Marketap.trackRevenue(
  "ad_click_revenue", 
  50.0, 
  eventProperties: {
    "ad_platform": "Google",
  }
);
```

{% endtab %}
{% endtabs %}

## Best Practice

구매 측정은 모든 영역에서 중요한 요소입니다. 마켓탭은 구매 측정을 위해 아래와 같은 속성들을 기본으로 제공하고 있습니다. (`mkt_revenue`, `mkt_order_id`, `mkt_payment_method`, `mkt_currency`, `item` 속성들)

```javascript
mtap.track('mkt_purchase', {
  mkt_revenue: 50.0,
  mkt_order_id: 'MY_ORDER_1234',
  mkt_payment_method: 'NAVER_PAY',
  mkt_currency: 'KRW'
  mkt_items: [
    {
      mkt_product_id: 'P12345',
      mkt_product_name: 'T-shirt',
      mkt_product_price: 25.0,
      mkt_quantity: 2,
      mkt_discount: 20.0,
      mkt_category1: '의류',
      mkt_category2: '남성복',
      mkt_brand: 'MY_CUSTOM_BRAND'
    }
  ],
});
```

#### 1. `mkt_revenue`

`mkt_revenue` 값은 구매 이벤트에서 가장 핵심적인 속성입니다. 이 값은 플랫폼에서 구매 이벤트 매출을 계산하는 기준이 되며, 한눈에 보기 화면의 매출 지표와 마켓탭 자유 분석의 **이벤트 가치** 측정에 활용됩니다.

<figure><img src="https://260547158-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTQoY0rYrzNUQxhlUfYFm%2Fuploads%2FNDtNwk7kmxwCozZIFMlc%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202025-08-25%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.00.16.png?alt=media&#x26;token=bb647581-6523-46e1-9626-41db290708f6" alt=""><figcaption></figcaption></figure>

<figure><img src="https://260547158-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTQoY0rYrzNUQxhlUfYFm%2Fuploads%2FdCkEN80ZqC5kdAn7ellN%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202025-08-25%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.19.35.png?alt=media&#x26;token=f18e971a-3403-4a60-943c-44509f9f45c2" alt=""><figcaption></figcaption></figure>

#### 2. `mkt_order_id`

`mkt_order_id` 값은 자유 분석에서 주문 수치를 측정할 때 사용합니다. order\_id 값이 없는 경우, 주문 수를 측정할 때 값이 노출되지 않을 수 있습니다.

<figure><img src="https://260547158-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTQoY0rYrzNUQxhlUfYFm%2Fuploads%2F2vlmAI9UkIJyrXySMeod%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202025-08-25%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.21.14.png?alt=media&#x26;token=77269775-1d6b-4ffd-8d2e-d95a4ae0cc82" alt=""><figcaption></figcaption></figure>

#### 3. 상품 속성 (`mkt_product_name`, `mkt_product_id`, `mkt_quantity`)

`mkt_product_name`, `mkt_product_id`는 제품을 구분할 때 자주 사용되는 속성입니다. 한눈에 보기 화면에서 가장 많이 구매된 제품, 조회된 제품, 장바구니에 담긴 제품을 집계할 때 `mkt_product_name` 값을 기준으로 활용합니다. 따라서 이 값이 누락되면 해당 지표가 표시되지 않을 수 있습니다.

`mkt_quantity`는 제품이 구매된 횟수를 측정할 때 사용됩니다. 따라서 이 값이 누락되면, 제품이 판매된 횟수와 실제 횟수에 오차가 발생할 수 있습니다.

<figure><img src="https://260547158-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTQoY0rYrzNUQxhlUfYFm%2Fuploads%2FAfLe7fzk8QRQGxds2jQB%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202025-08-25%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.29.54.png?alt=media&#x26;token=dfd9d8ff-23a6-4492-b93a-6e6a2d1271af" alt=""><figcaption></figcaption></figure>

상품 조회와 장바구니 담기 이벤트에 대한 자세한 설명은 아래 카드를 통해 확인해주세요.

{% content-ref url="purchase/commerce" %}
[commerce](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/taxonomy/sdk/event/predefined/purchase/commerce)
{% endcontent-ref %}
