# 네이티브 광고

## 1. **REQUEST**

{% hint style="info" %}
SSP :arrow\_right: DSP
{% endhint %}

CJ 메조미디어 SSP 는 HTTP POST 방식으로 아래 정의된 객체를 JSON 형태로 작성해 DSP 인터페이스를 호출합니다.\
요청 객체 정의는 [OPEN RTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf)와 [OpenRTB Dynamic Native Ads API Specification Version 1.2](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf) 규격을 따릅니다.

### **Request object**

<table><thead><tr><th width="121">필드</th><th width="123">유형</th><th width="80">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>Y</td><td>요청 유니크 아이디</td></tr><tr><td>cur</td><td>string array</td><td>N</td><td>ISO-4217-alpha 경매에 사용할 수 있는 통화 입니다. <br>예: “KRW”</td></tr><tr><td>test</td><td>integer</td><td>N</td><td>경매가 테스트 모드(1)건 실시간 모드(0)건, 테스트 경매에는 입찰할 수 없습니다</td></tr><tr><td>site</td><td>object</td><td>Y</td><td><a href="#site"><code>Site</code></a> 객체를 참고하십시오.</td></tr><tr><td>app</td><td>object</td><td>Y</td><td><a href="#app"><code>App</code></a> 객체를 참고하십시오.</td></tr><tr><td>device</td><td>object</td><td>Y</td><td><a href="#device"><code>Device</code></a> 객체를 참고하십시오.</td></tr><tr><td>user</td><td>object</td><td>Y</td><td><a href="#user"><code>User</code></a> 객체를 참고하십시오.</td></tr><tr><td>imp</td><td>object array</td><td>Y</td><td><a href="#imp"><code>Imp</code></a> 객체를 참고하십시오.</td></tr><tr><td>at</td><td>integer</td><td>Y</td><td>0 : fixed price, 1: first price, 2: second price</td></tr><tr><td>tmax</td><td>integer</td><td>Y</td><td>최대허용시간 (ms).</td></tr><tr><td>bcat</td><td>string array</td><td>N</td><td>IAB 카테고리 기준으로 광고주 카테고리를 차단합니다.</td></tr><tr><td>badv</td><td>string array</td><td>N</td><td>광고주의 도메인을 차단합니다.</td></tr><tr><td>bapp</td><td>string array</td><td>N</td><td>App의 번들이나 패키지명을 차단합니다.</td></tr><tr><td>ext</td><td>object</td><td>N</td><td><a href="#ext"><code>Ext</code></a> 객체를 참고하십시오.</td></tr></tbody></table>

### **Site**

<table><thead><tr><th width="138">필드</th><th width="138">유형</th><th width="108">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>Y</td><td>퍼블리셔 ID</td></tr><tr><td>name</td><td>string</td><td>N</td><td>애플리케이션 이름</td></tr><tr><td>domain</td><td>string</td><td>N</td><td>사이트 도메인</td></tr><tr><td>page</td><td>string</td><td>N</td><td>페이지 url</td></tr><tr><td>ref</td><td>string</td><td>N</td><td>현재페이지로 이동해오기 바로 전 페이지의 주소</td></tr><tr><td>cat</td><td>string array</td><td>N</td><td>카테고리</td></tr><tr><td>publisher</td><td>object</td><td>Y</td><td><a href="#publisher"><code>Publisher</code></a> 객체를 참고하십시오.</td></tr></tbody></table>

### **App**

<table><thead><tr><th width="139">필드</th><th width="136">유형</th><th width="109">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>Y</td><td>퍼블리셔 ID</td></tr><tr><td>name</td><td>string</td><td>N</td><td>애플리케이션 이름</td></tr><tr><td>bundle</td><td>string</td><td>Y</td><td>번들 이름, 패키지 이름</td></tr><tr><td>storeurl</td><td>string</td><td>N</td><td>앱스토어 URL</td></tr><tr><td>cat</td><td>string array</td><td>N</td><td>카테고리</td></tr><tr><td>publisher</td><td>object</td><td>Y</td><td><a href="#publisher"><code>Publisher</code></a> 객체를 참고하십시오.</td></tr></tbody></table>

### **Publisher**

> [`Site`](#site) / publisher\
> [`App`](#app) / publisher

<table><thead><tr><th width="198">필드</th><th width="132">유형</th><th width="99">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>Y</td><td>퍼블리셔 ID</td></tr><tr><td>name</td><td>string</td><td>N</td><td>퍼블리셔 명</td></tr><tr><td>domain</td><td>string</td><td>N</td><td>사이트 도메인</td></tr><tr><td>product_attr</td><td>string</td><td>N</td><td>광고상품코드 1: 띠배너 2: 전면</td></tr></tbody></table>

### **Device**

<table><thead><tr><th width="132">필드</th><th width="114">유형</th><th width="94">필수</th><th>설명</th></tr></thead><tbody><tr><td>adid</td><td>string</td><td>Y</td><td>디바이스의 adid정보</td></tr><tr><td>make</td><td>string</td><td>Y</td><td>운영체제. 예) iOS, Anroid</td></tr><tr><td>ua</td><td>string</td><td>Y</td><td>디바이스의 User Agent 정보</td></tr><tr><td>dnt</td><td>integer</td><td>N</td><td>위치 추적 금지 활성화 여부. 0: 추적 가능, 1: 추적 금지.</td></tr><tr><td>ip</td><td>string</td><td>Y</td><td>IPV4 주소</td></tr><tr><td>model</td><td>string</td><td>N</td><td>모델명</td></tr><tr><td>os</td><td>string</td><td>Y</td><td>운영체제. 예) iOS, Anroid</td></tr><tr><td>osv</td><td>string</td><td>Y</td><td>운영체제 버전. 예) 8.1, 9.2</td></tr><tr><td>js</td><td>integer</td><td>N</td><td>RTB 프로토콜에 1로 정의되어 있습니다.</td></tr><tr><td>ifa</td><td>string</td><td>Y</td><td>Apple IFA 또는 Google 의 ADID</td></tr></tbody></table>

### **User**

{% hint style="info" %}
RTB 프로토콜에는 없는 CJ 메조미디어의 확장 필드 입니다.
{% endhint %}

| 필드 | 유형     | 필수 | 설명         |
| -- | ------ | -- | ---------- |
| id | string | Y  | 사용자의 고유 ID |

### **Imp**

<table><thead><tr><th width="207">필드</th><th width="112">유형</th><th width="70">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>Y</td><td>노출에 대한 유니크 아이디</td></tr><tr><td>bidfloor</td><td>float</td><td>Y</td><td>입찰로 인정받을 수 있는 최소 가격. 예) 4.12</td></tr><tr><td>bidfloorcur</td><td>string</td><td>Y</td><td>통화, 예) ‘KRW’</td></tr><tr><td>secure</td><td>integer</td><td>Y</td><td>0 : http, 1 : https</td></tr><tr><td>type</td><td>string</td><td>Y</td><td>Native</td></tr><tr><td>native</td><td>object</td><td>Y</td><td><a href="#native"><code>Native</code></a> 객체를 참고하십시오.</td></tr><tr><td>instl</td><td>integer</td><td>Y</td><td>전면광고 여부를 전달합니다. (default: 0)<br>* 1 = the ad is interstitial or full screen<br>* 0 = not interstitial.</td></tr><tr><td>displaymanager</td><td>string</td><td>Y</td><td>SSP 플랫폼명 또는 SDK명을 의미합니다.</td></tr><tr><td>displaymanagerver</td><td>string</td><td>Y</td><td>SSP 플랫폼 또는 SDK 버전을 의미합니다.</td></tr></tbody></table>

### **Native**

> [`Imp`](#imp) / native

<table><thead><tr><th width="129">필드</th><th width="147">유형</th><th width="85">필수</th><th>설명</th></tr></thead><tbody><tr><td>request</td><td>string</td><td>Y</td><td>Native 광고에 대한 유효 요청</td></tr><tr><td>ver</td><td>string</td><td>Y</td><td>사용하는 Dynamic Native Ads API 버전</td></tr><tr><td>battr</td><td>integer array</td><td>-</td><td>차단된 소재 속성</td></tr></tbody></table>

### **Native\_request**

> [`Imp`](#imp) / [`Native`](#native)

<table><thead><tr><th width="154">필드</th><th width="139">유형</th><th width="60">필수</th><th>설명</th></tr></thead><tbody><tr><td>ver</td><td>string</td><td>Y</td><td>사용하는 Native 마크업 버전</td></tr><tr><td>assets</td><td>object array</td><td>Y</td><td><a href="#native_asset"><code>Native_asset</code></a> 객체를 참고하십시오.</td></tr><tr><td>privacy</td><td>integer</td><td>-</td><td>0 : 미지원, 1 : 구매자의 개인 정보 보호정책을 지원</td></tr></tbody></table>

### **Native\_asset**

> [`Imp`](#imp) / [`Native`](#native) / [`Native_request`](#native_request)

<table><thead><tr><th width="126">필드</th><th width="109">유형</th><th width="113">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>integer</td><td>Y</td><td>Unique Asset ID</td></tr><tr><td>required</td><td>integer</td><td>Y</td><td>1: 해당 asset이 필수값인 경우 설정</td></tr><tr><td>title</td><td>object</td><td>-</td><td><a href="#native_asset-title"><code>Native_asset: Title</code></a> 객체를 참고하십시오.</td></tr><tr><td>img</td><td>object</td><td>-</td><td><a href="#native_asset-image"><code>Native_asset: Image</code></a> 객체를 참고하십시오.</td></tr><tr><td>video</td><td>object</td><td>-</td><td><a href="#native_asset-video"><code>Native_asset: Video</code></a> 객체를 참고하십시오.</td></tr><tr><td>data</td><td>object</td><td>-</td><td><a href="#native_asset-data"><code>Native_asset: Data</code></a> 객체를 참고하십시오.</td></tr></tbody></table>

### **Native\_asset: Title**

> [`Imp`](#imp) / [`Native`](#native) / [`Native_request`](#native_request) / [`Native_asset`](#native_asset)

<table><thead><tr><th width="191">필드</th><th width="167">유형</th><th width="111">필수</th><th>설명</th></tr></thead><tbody><tr><td>len</td><td>integer</td><td>Y</td><td>Title 요소 내 최대 문자 길이</td></tr></tbody></table>

### **Native\_asset: Image**

> [`Imp`](#imp) / [`Native`](#native) / [`Native_request`](#native_request) / [`Native_asset`](#native_asset)

<table><thead><tr><th width="112">필드</th><th width="112">유형</th><th width="121">필수</th><th>설명</th></tr></thead><tbody><tr><td>type</td><td>integer</td><td>Y</td><td>퍼블리셔가 지원하는 Image 요소의 유형 ID</td></tr><tr><td>w</td><td>integer</td><td>-</td><td>Image의 가로 픽셀</td></tr><tr><td>h</td><td>integer</td><td>-</td><td>Image의 세로 픽셀</td></tr><tr><td>wmin</td><td>integer</td><td>-</td><td>요청하는 Image의 가로 픽셀 최소값</td></tr><tr><td>hmin</td><td>integer</td><td>-</td><td>요청하는 Image의 세로 픽셀 최소값</td></tr></tbody></table>

### **Native\_asset: Video**

> [`Imp`](#imp) / [`Native`](#native) / [`Native_request`](#native_request) / [`Native_asset`](#native_asset)

<table><thead><tr><th width="163">필드</th><th width="142">유형</th><th width="79">필수</th><th>설명</th></tr></thead><tbody><tr><td>mimes</td><td>string array</td><td>Y</td><td>지원하는 콘텐츠 MIME 유형</td></tr><tr><td>minduration</td><td>integer</td><td>Y</td><td>동영상 광고의 최소 길이(초)</td></tr><tr><td>maxduration</td><td>integer</td><td>Y</td><td>동영상 광고의 최대 길이(초)</td></tr><tr><td>protocols</td><td>integer array</td><td>Y</td><td>퍼블리셔가 지원하는 동영상 프로토콜 유형</td></tr></tbody></table>

### **Native\_asset: Data**

> [`Imp`](#imp) / [`Native`](#native) / [`Native_request`](#native_request) / [`Native_asset`](#native_asset)

<table><thead><tr><th width="200">필드</th><th width="116">유형</th><th width="83">필수</th><th>설명</th></tr></thead><tbody><tr><td>type</td><td>integer</td><td>Y</td><td>퍼블리셔가 지원하는 Data 요소 ID</td></tr><tr><td>len</td><td>integer</td><td>-</td><td>Data 요소 응답 시 최대 문자 길이</td></tr></tbody></table>

### **Ext**

{% hint style="info" %}
RTB 프로토콜에는 없는 CJ 메조미디어의 확장 필드 입니다.
{% endhint %}

<table><thead><tr><th width="151">필드</th><th width="94">유형</th><th width="73">필수</th><th>설명</th></tr></thead><tbody><tr><td>price_type</td><td>integer</td><td>N</td><td>0:CPM, 1: CPC</td></tr><tr><td>click_macro</td><td>integer</td><td>N</td><td>1: DSP매체에서 ADM내부에 클릭 Tracking을 받을 수 있는 매크로${MEZZO_CLICK_URL}을 제공해야 합니다. DSP에서 click이 이루어질 때, 매크로로 치환된 click url를 발생시켜야 합니다.</td></tr></tbody></table>

#### **요청 예제 (APP)**

{% code lineNumbers="true" %}

```json
{
   "id": "cdc-7c6d-4029-dcd|1337",
   "test": 0,
   "cur": "KRW",
   "imp": [
      {
         "bidfloor":1.0,
         "bidfloorcur":"USD",
         "displaymanager":"SOMA",
         "displaymanagerver":"sdkandroid_9-1-6",
         "ext":{
 
         },
         "id":"1",
         "instl":0,
         "native":{
            "battr":[
               1,
               3,
               5,
               8,
               9
            ],
            "request":"{\"ver\":\"1.2\",\"plcmttype\":1,\"plcmtcnt\":1,\"seq\":0,\"aurlsupport\":0,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":90}},{\"id\":2,\"required\":1,\"img\":{\"type\":3,\"wmin\":1200,\"hmin\":627}},{\"id\":3,\"required\":1,\"img\":{\"type\":1,\"wmin\":50,\"hmin\":50}},{\"id\":5,\"required\":1,\"data\":{\"type\":2,\"len\":140}},{\"id\":6,\"required\":1,\"data\":{\"type\":12,\"len\":15}}]}",
            "ver":"1.2"
         },
         "secure":0,
         "tagid":"130700475"
      }
   ],
   "app": {
      "id": "test-pub-app-id",
      "name": "test-pub-app-name",
      "bundle": "com.mezzo.co.kr ",
      "storeurl": "https://itunes.apple.com/us/app/id1234567?mt=8",
      "cat": "IAB1",
      "publisher": {
         "id": "test-pub-app-id",
         "domain": "test-pub-domain",
         "product_attr": 1
      }
   },
   "device": {
      "adid": "test-ifa-gaid",
      "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141",
      "dnt": 0,
      "ip": "192.168.1.1",
      "make":"iOS",
      "model": "iPhone 7,2",
      "os": "iOS",
      "osv": "8.0",
      "js": 1,
      "ifa": "test-ifa-gaid"
   },
   "user": {
      "id": "923123"
   },
   "ext": {
      "price_type": 1,
      "click_macro": 1
   }
}
```

{% endcode %}

## **2. RESPONSE**

{% hint style="info" %}
DSP :arrow\_right: SSP
{% endhint %}

DSP 는 아래 정의된 객체를 HTTP body 에 포함해 응답합니다.

객체 정의는 [OPEN RTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf)와 [OpenRTB Dynamic Native Ads API Specification Version 1.2](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf) 규격을 따릅니다.

### **Bid Response**

{% hint style="info" %}
JSON 형식의 응답 객체입니다.
{% endhint %}

<table><thead><tr><th width="113">필드</th><th width="138">유형</th><th width="57">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>Y</td><td>Bid Request 의 ID</td></tr><tr><td>bidid</td><td>string</td><td>Y</td><td>Bid 오브젝트의 ID</td></tr><tr><td>cur</td><td>string</td><td>Y</td><td>입찰시 사용할 통화. 예) KRW</td></tr><tr><td>seatbid</td><td>object array</td><td>Y</td><td><a href="#seatbid"><code>Seatbid</code></a> 객체 배열입니다. 입찰이 이루어지려면 1+가 필요합니다.</td></tr></tbody></table>

### **Seatbid**

<table><thead><tr><th width="138">필드</th><th width="136">유형</th><th width="60">필수</th><th>설명</th></tr></thead><tbody><tr><td>seat</td><td>string</td><td>Y</td><td>입찰 정보를 관리하는 ID</td></tr><tr><td>bid</td><td>object array</td><td>Y</td><td><a href="#bid"><code>Bid</code></a> 객체 배열입니다. 입찰이 이루어지려면 1+가 필요합니다.</td></tr></tbody></table>

### **Bid**

<table><thead><tr><th width="119">필드</th><th width="125">유형</th><th width="66">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>Y</td><td>입찰 정보를 관리하는 ID</td></tr><tr><td>impid</td><td>string</td><td>Y</td><td>입찰 요청의 노출과 관련된 노출 ID입니다. 입찰 요청 노출 객체 ID와 반드시 일치해야 합니다.</td></tr><tr><td>price</td><td>float</td><td>Y</td><td>입찰 가격</td></tr><tr><td>cat</td><td>string array</td><td>Y</td><td>카테고리</td></tr><tr><td>nurl</td><td>string</td><td>N</td><td>낙찰 알림 url (win URL)<br>낙찰가를 {AUCTION_PRICE} 매크로에 치환하여 전달합니다.</td></tr><tr><td>burl</td><td>string</td><td>N</td><td>낙찰 청구 알림 url (Billing notice URL)<br>낙찰가를 {AUCTION_PRICE} 매크로에 치환하여 전달합니다.</td></tr><tr><td>lurl</td><td>string</td><td>N</td><td>유찰 알림 url (Loss notice URL)<br>{AUCTION_LOSS} 매크로에 유찰 사유 코드를 치환하여 전달합니다.</td></tr><tr><td>adm</td><td>string</td><td>Y</td><td><a href="#native_response"><code>Native_response</code></a> 객체를 참고하십시오.</td></tr><tr><td>iurl</td><td>string</td><td>Y</td><td>노출 image URL</td></tr><tr><td>adomain</td><td>string array</td><td>Y</td><td>블랙리스트를 검사하는 광고주 도메인</td></tr><tr><td>cid</td><td>string</td><td>Y</td><td>광고주 캠페인명 / id</td></tr><tr><td>crid</td><td>string</td><td>Y</td><td>광고주 광고물명 / id</td></tr><tr><td>w</td><td>integer</td><td>Y</td><td>광고 사이즈</td></tr><tr><td>h</td><td>integer</td><td>Y</td><td>광고 사이즈</td></tr><tr><td>ext</td><td>string</td><td>Y</td><td>확장 영역</td></tr></tbody></table>

### **Native\_response**

> [`Bid`](#bid) / adm

<table><thead><tr><th width="169">필드</th><th width="126">유형</th><th width="69">필수</th><th>설명</th></tr></thead><tbody><tr><td>ver</td><td>string</td><td>Y</td><td>사용하는 Native 마크업 버전</td></tr><tr><td>assets</td><td>object array</td><td>Y</td><td>Native 광고의 assets<br><a href="#native_response_asset"><code>Native_response_asset</code></a> 객체를 참고하십시오.</td></tr><tr><td>link</td><td>object</td><td>Y</td><td><a href="#native_response_asset-link"><code>Native_response_asset: Link</code> </a>객체를 참고하십시오.</td></tr><tr><td>eventtrackers</td><td>object array</td><td>Y</td><td><a href="#native_response_asset-eventtracker"><code>Native_response_asset: Eventtracker</code></a> 객체를 참고하십시오.</td></tr><tr><td>privacy</td><td>string</td><td>Y</td><td>개인 정보 보호 요청에 대한 응답 값.                        미전달 시 메조미디어 로고 송출.</td></tr></tbody></table>

### **Native\_response\_asset**

> [`Bid`](#bid) / adm / [`Native_response`](#native_response)

<table><thead><tr><th width="114">필드</th><th width="93">유형</th><th width="86">필수</th><th>설명</th></tr></thead><tbody><tr><td>id</td><td>integer</td><td>Y</td><td>Unique asset ID</td></tr><tr><td>required</td><td>integer</td><td>-</td><td>1: 해당 asset이 필수값인 경우 설정</td></tr><tr><td>title</td><td>object</td><td>-</td><td><a href="#native_response_asset-title"><code>Native_response_asset: Title</code></a> 객체를 참고하십시오.</td></tr><tr><td>img</td><td>object</td><td>-</td><td><a href="#native_response_asset-image"><code>Native_response_asset: Image</code></a> 객체를 참고하십시오.</td></tr><tr><td>video</td><td>object</td><td>-</td><td><a href="#native_response_asset-video"><code>Native_response_asset: Video</code></a> 객체를 참고하십시오.</td></tr><tr><td>data</td><td>object</td><td>-</td><td><a href="#native_response_asset-data"><code>Native_response_asset: Data</code></a> 객체를 참고하십시오.</td></tr></tbody></table>

### **Native\_response\_asset: Title**

> [`Bid`](#bid) / adm / [`Native_response`](#native_response) / [`Native_response_asset`](#native_response_asset)&#x20;

<table><thead><tr><th>필드</th><th>유형</th><th width="68">필수</th><th>설명</th></tr></thead><tbody><tr><td>text</td><td>string</td><td>Y</td><td>Text 요소와 연관된 text</td></tr></tbody></table>

### **Native\_response\_asset: Image**

> [`Bid`](#bid) / adm / [`Native_response`](#native_response) / [`Native_response_asset`](#native_response_asset)&#x20;

<table><thead><tr><th width="128">필드</th><th>유형</th><th width="76">필수</th><th>설명</th></tr></thead><tbody><tr><td>url</td><td>string</td><td>Y</td><td>Image asset의 url</td></tr><tr><td>w</td><td>integer</td><td>Y</td><td>Image의 가로 픽셀</td></tr><tr><td>h</td><td>integer</td><td>Y</td><td>Image의 세로 픽셀</td></tr></tbody></table>

### **Native\_response\_asset: Video**

> [`Bid`](#bid) / adm / [`Native_response`](#native_response) / [`Native_response_asset`](#native_response_asset)&#x20;

| 필드      | 유형     | 필수 | 설명       |
| ------- | ------ | -- | -------- |
| vasttag | string | Y  | vast xml |

### Native\_response\_asset: Data

> [`Bid`](#bid) / adm / [`Native_response`](#native_response) / [`Native_response_asset`](#native_response_asset)&#x20;

<table><thead><tr><th>필드</th><th width="115">유형</th><th width="78">필수</th><th>설명</th></tr></thead><tbody><tr><td>value</td><td>string</td><td>Y</td><td>Data asset에 노출될 형식화된 문자열</td></tr></tbody></table>

### **Native\_response\_asset: Link**

> [`Bid`](#bid) / adm / [`Native_response`](#native_response) / [`Native_response_asset`](#native_response_asset)&#x20;

<table><thead><tr><th>필드</th><th>유형</th><th width="118">필수</th><th>설명</th></tr></thead><tbody><tr><td>url</td><td>string</td><td>Y</td><td>클릭 가능한 랜딩 URL</td></tr></tbody></table>

### **Native\_response\_asset: Eventtracker**

> [`Bid`](#bid) / adm / [`Native_response`](#native_response) / [`Native_response_asset`](#native_response_asset)&#x20;

<table><thead><tr><th>필드</th><th>유형</th><th width="74">필수</th><th>설명</th></tr></thead><tbody><tr><td>event</td><td>integer</td><td>Y</td><td>트래킹할 이벤트 유형</td></tr><tr><td>methods</td><td>integer</td><td>Y</td><td>요청된 트래킹 유형</td></tr></tbody></table>

#### **Bid response 예제**

{% code lineNumbers="true" %}

```json
{
  "id": "ece5c105-dd24-468f-8392-d624b8d49953",
  "seatbid": [
    {
      "bid": [
            {
               "id":"5d7801c2be564c8100f00011-1062015",
               "price":2.0,
               "impid":"1",
               "nurl":"http://node-p2e-gie4ah.sitescout.com/smaato/win/aid:5d7801c2be564c8100f00011;c:${AUCTION_PRICE};s:;cid:1062015;ts:1568145858061;d:MzMzMTUwMi1uYXRpdmU",
               "adm":"{\"native\":{\"link\":{\"url\":\"http://clickserv.sitescout.com/clk/8cc00d7733a331ba/88e42568017fb609/0-0/0///~_aid_~5d7801c2be564c8100f00011//cidentLy8vLy8\",\"clicktrackers\":[\"https://adrta.com/c?clid=ss&paid=ss&cb=1568145858061&avid=112053&caid=1062015&publisherId=1100043642&kv5=&plid=3331502&segment=&kv4=100.10.38.5&kv14=&kv1=native&siteId=120207704&kv7=17&kv15=UNKNOWN&kv16=&kv17=&kv18=com.particlenews.newsbreak&kv24=MOBILE_APP&kv20=&kv21=eb6fe99843ff5310bd0cd40d267826fff05d8aa3&kv22=9863a35c-c598-4c80-b091-d7adf379bb26&kv11=5d7801c2be564c8100f00011&kv3=&kv2=\"]},\"ver\":\"1.2\",\"assets\":[{\"id\":5,\"required\":1,\"data\":{\"type\":2,\"value\":\"Lose 3 to 5 pounds per week. Keep it off with free support for life!\"}},{\"id\":2,\"required\":1,\"img\":{\"type\":3,\"url\":\"http://cdn01.basis.net/112100/112053/uhSvl5gEElOXwX0T.jpg\",\"w\":1200,\"h\":627}},{\"id\":1,\"required\":1,\"title\":{\"text\":\"Lose Weight For Life!\"}},{\"id\":6,\"required\":1,\"data\":{\"type\":12,\"value\":\"Learn more\"}},{\"id\":3,\"required\":1,\"img\":{\"type\":1,\"url\":\"http://cdn01.basis.net/112100/112053/5MkC88n4Mc8MdPa4.jpg\",\"w\":240,\"h\":240}}],\"eventtrackers\":[\"https://node-p2e-gie4ah.sitescout.com/smaato/px/aid:5d7801c2be564c8100f00011;c:${AUCTION_PRICE};s:;cid:1062015;ts:1568145858061\",\"https://pixel-sync.sitescout.com/dmp/pixelSync?nid=17&wb=1&hdid=0&id=9863a35c-c598-4c80-b091-d7adf379bb26&idType=4\",\"https://ad.doubleclick.net/ddm/trackimp/N428001.3027484BASISDSP/B22322261.248240382;dc_trk_aid=447774364;dc_trk_cid=119057854;u=210363%7C5d7801c2be564c8100f00011%7C%7Ccom.particlenews.newsbreak%7CAWAKEN002CP+%5BCPA%5D+GT+%28Zips%2B15+mi%29_Display%7CMOBILE_APP%7C1062015;ord=[timestamp];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=?\"],\"jstracker\":\"\"}}",
               "adomain":[
                  "awaken180weightloss.com"
               ],
               "iurl":"http://preview.sitescout.ad/preview?adOnly=1&amp;ad=8cc00d7733a331ba",
               "crid":"3331502",
               "cid":"1062015",
               "attr":[
 
               ],
               "cat":[
                  "IAB7-44",
                  "IAB7"
               ]
            }
         ],
         "seat":"18878"
      }
   ],
  "bidid": "dsp",
  "cur": "KRW"
}
```

{% endcode %}

#### **Bid response(noad) 예제**

{% code lineNumbers="true" %}

```json
{
  "id": "",
  "seatbid": [],
  "bidid": "mezzo",
  "cur": "KRW"
}
```

{% endcode %}

### **SKAdNetwork 지원(iOS14 이상)**

{% hint style="info" %}
해당 내용은 iOS14 버전 혹은 그 이상의 환경에서 SKAdNetwork가 활성화된 캠페인을 지원하기 위한 내용입니다.
{% endhint %}

<table data-header-hidden><thead><tr><th width="84"></th><th></th></tr></thead><tbody><tr><td>1</td><td>DSP는 Apple의 SKAdNetwork API에 Ad Network로 등록되어 있어야 한다.<br>(https://developer.apple.com/documentation/storekit/skadnetwork/registering_an_ad_network)</td></tr><tr><td>2</td><td>Apple로부터 Public key를 발급받고 Postback URL을 설정해야 한다.</td></tr><tr><td>3</td><td>Apple로부터 발급받은 SKAdNetwork ID를 CJ MezzoMedia 담당자에게 전달하고<br>CJ MezzoMedia는 전달받은 SKAdNetwork ID를 자사와 제휴된 퍼블리셔의 info.plist에 등록 요청한다.</td></tr><tr><td>4</td><td>DSP에서 SKAdNetwork가 활성화된 캠페인 Response를 전달할 때는 SKAdNetwork ID 및 관련된 모든 정보를 포함해야한다.</td></tr><tr><td>5</td><td>광고주 App은 registerAppForAdNetworkAttribution()를 통해 SKAdNetwork 사용자로 등록해야 한다.</td></tr><tr><td>6</td><td>DSP는 SKAdNetwork를 통해 설치 데이터를 제공 받을 수 있다.</td></tr></tbody></table>

#### **광고요청 추가내용 (SKAdNetwork)**

> BidRequest / imp / banner / ext / skadn

{% hint style="info" %}
해당 Object를 사용하기 위해서는 우선적으로 아래 사항들이 준비되어야 한다.
{% endhint %}

<table data-header-hidden><thead><tr><th width="127">1</th><th>DSP에서 제공하는 SKAdNetwork ID가 퍼블리셔의 info.plist에 등록되어 있어야 한다.</th></tr></thead><tbody><tr><td>1</td><td>DSP에서 제공하는 SKAdNetwork ID가 퍼블리셔의 info.plist에 등록되어 있어야 한다.</td></tr><tr><td>2</td><td>사용자 기기의 운영체제가 iOS14 혹은 그 이상이어야 한다.</td></tr><tr><td>3</td><td>SKAdNetwork를 지원하는 버전의 SDK를 설치해야한다.</td></tr><tr><td>4</td><td>DSP는 CJ 메조미디어의 Bid Request 규약을 준수해야한다.</td></tr></tbody></table>

<table><thead><tr><th width="130">필드</th><th width="104">유형</th><th width="72">필수</th><th>설명</th><th>예</th></tr></thead><tbody><tr><td>version</td><td>string</td><td>Y</td><td>사용하는 SKadNetwork 버전. “2.0” 혹은 그 이상.</td><td>“version”:”2.0”</td></tr><tr><td>sourceapp</td><td>string</td><td>Y</td><td>Apple App 스토어에 등록된 퍼블리셔 App ID.<br>‘BidRequest.app.bundle’ 과 매칭</td><td>“sourceapp”:”000000000”</td></tr><tr><td>skadnetids</td><td>string</td><td>Y</td><td>퍼블리셔 App 내 info.plist에 입력된 SKAdNetwork IDs</td><td>“skadnetids”:[“feyaarzu9v.skadnetwork”]</td></tr></tbody></table>

#### **SKAdNetwork 광고 요청 예제**

{% code lineNumbers="true" %}

```json
{
	"imp":[{
        "ext": {
          "skadn": {
            "version": "2.0",
			"sourceapp": "000000000",
			"skadnetids": ["feyaarzu9v.skadnetwork", "8sRFag4vVC.skadnetwork"]
			}
			}
		}]
}
```

{% endcode %}

#### **광고응답 추가내용 (SKAdNetwork)**

> BidResponse / imp / banner / ext / skadn

<table><thead><tr><th width="141">필드</th><th width="93">유형</th><th width="78">필수</th><th>설명</th><th>예</th></tr></thead><tbody><tr><td>version</td><td>string</td><td>Y</td><td>사용하는 SKadNetwork 버전. “2.0” 혹은 그 이상.</td><td>“version”:”2.0”</td></tr><tr><td>network</td><td>string</td><td>Y</td><td>광고 네트워크 식별자.<br>Request에 포함된 skadnetids와 최소 한 개는 매칭되어야 함</td><td>“network”:[“feyaarzu9v.skadnetwork”]</td></tr><tr><td>campaign</td><td>string</td><td>Y</td><td>Apple의 규격에 맞는 캠페인 ID.<br>1과 100 사이의 정수를 이용해서 표현해야함</td><td>“campaign”:”45”</td></tr><tr><td>itunesitem</td><td>string</td><td>Y</td><td>Apple App 스토어에 등록된 광고주 App ID. ‘Bidresponse.bid.bundle’과 매칭</td><td>“itunesitem”:”123456789”</td></tr><tr><td>nonce</td><td>string</td><td>Y</td><td>개별 광고 response의 유니크 ID</td><td>“nonce”:”123b1a78-b5ef-98ad-1234-ab-c4effa00b8”</td></tr><tr><td>sourceapp</td><td>string</td><td>Y</td><td>Apple App 스토어에 등록된 퍼블리셔 App ID.<br>‘BidRequest.imp.ext.skad.sourceapp’ 과 매칭</td><td>“sourceapp”:”000000000”</td></tr><tr><td>timestamp</td><td>string</td><td>Y</td><td>Unix time을 string 값으로 전달</td><td>“timestamp”:”1234567890”</td></tr><tr><td>signature</td><td>string</td><td>Y</td><td>Apple에서 제공하는 SKAdNetwork sigature 값</td><td>“signature”:”ABCDEFGHijkl-lmb…”</td></tr></tbody></table>

### **SKAdNetwork 광고 응답 예제**

{% code lineNumbers="true" %}

```json
{
	"seatbid": [{
		"bid": [{
			"ext": {
				"skadn": {
					"version": "2.0",
					"network": "feyaarzu9v.skadnetwork ",
					"campaign": "45",
					"itunesitem": "123456789",
					"nonce": "123b1a78-b5ef-98ad-1234-ab-c4effa00b8",
					"sourceapp": "000000000",
					"timestamp": "1234567890",
					"signature": "ABCDEFGHijkl-lmbKBSE8QnhLTIHZZZWCFgZpRqRxHss65KoFAiAJgJKjdrWdkLUOCCjuEx2RmFS7daRzSVZRVZ8RyMyUXg"
				}
			}
		}]
	}]
}
```

{% endcode %}
