# 네이티브 광고

## 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="125">필드</th><th width="157">유형</th><th width="78">필수</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 경매에 사용할 수 있는 통화 입니다. 예: “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><code>ext</code> 객체를 참고하십시오.</td></tr></tbody></table>

### **Site**

<table><thead><tr><th width="138">필드</th><th width="145">유형</th><th width="80">필수</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="169">필드</th><th width="152">유형</th><th width="67">필수</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 / publisher\
> app / publisher

| 필드     | 유형     | 필수 | 설명      |
| ------ | ------ | -- | ------- |
| id     | string | Y  | 퍼블리셔 ID |
| name   | string | N  | 퍼블리셔 명  |
| domain | string | N  | 사이트 도메인 |

### **Device**

<table><thead><tr><th width="109">필드</th><th width="113">유형</th><th width="102">필수</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><p>위치 추적 금지 활성화 여부</p><p>0: 추적 가능, 1: 추적 금지.</p></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>

{% hint style="danger" %}

* UA(User Agent)의 경우, AD Exchange 거래를 위한 조건으로 <mark style="color:red;">**반드시 필수 제공**</mark>해주셔야 합니다.
* IP의 경우, <mark style="color:red;">**Private IP(가상IP)가 아닌 Public IP 기준으로 전달**</mark>주셔야 합니다.\
  공유기, 회사 내부망에 할당된 IP가 그대로 전달 될 경우 광고 거래가 제한적일 수 있습니다.
  {% endhint %}

### **User**

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

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

### **Imp**

<table><thead><tr><th width="194">필드</th><th width="103">유형</th><th width="55">필수</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 / native

<table><thead><tr><th width="128">필드</th><th width="145">유형</th><th width="69">필수</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 / native /

<table><thead><tr><th width="168">필드</th><th width="134">유형</th><th width="79">필수</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>eventtrackers</td><td>object array</td><td>Y</td><td>지원하는 이벤트 트래킹 유형<br><a href="#native_eventtracker"><code>native_eventtracker</code></a> 객체를 참고하십시오.</td></tr><tr><td>privacy</td><td>integer</td><td>-</td><td>0 : 미지원, 1 : 구매자의 개인 정보 보호정책을 지원</td></tr></tbody></table>

### **Native\_asset**

> imp / native / native\_request

<table><thead><tr><th width="123">필드</th><th width="97">유형</th><th width="67">필수</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 / native / native\_request / native\_asset

<table><thead><tr><th>필드</th><th width="183">유형</th><th width="74">필수</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 / native / native\_request / native\_asset

<table><thead><tr><th width="204">필드</th><th width="90">유형</th><th width="79">필수</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 / native / native\_request / native\_asset

<table><thead><tr><th width="189">필드</th><th width="148">유형</th><th width="66">필수</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 / native / native\_request / native\_asset

<table><thead><tr><th>필드</th><th width="152">유형</th><th width="75">필수</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>

### **Native\_eventtracker**

> imp / native / native\_request /

<table><thead><tr><th width="194">필드</th><th width="142">유형</th><th width="88">필수</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 array</td><td>Y</td><td>이벤트 발생 시 전달하는 트래킹 유형</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}}],\"eventtrackers\":[{\"event\":1,\"methods\":[1,2]}]}",
            "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": {
   }
}
```

{% 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="106">필드</th><th width="127">유형</th><th width="66">필수</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="110">필드</th><th width="124">유형</th><th width="64">필수</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="114">필드</th><th width="121">유형</th><th width="78">필수</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>Y</td><td>노출 URL</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>string</td><td>Y</td><td>광고 사이즈</td></tr><tr><td>h</td><td>string</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 / adm /

<table><thead><tr><th width="154">필드</th><th width="133">유형</th><th width="58">필수</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_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 / adm / native\_response

<table><thead><tr><th width="117">필드</th><th width="95">유형</th><th width="62">필수</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_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 / adm / native\_response / native\_response\_asset

| 필드   | 유형     | 필수 | 설명                |
| ---- | ------ | -- | ----------------- |
| text | string | Y  | Text 요소와 연관된 text |

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

> bid / adm / native\_response / native\_response\_asset

| 필드  | 유형      | 필수 | 설명               |
| --- | ------- | -- | ---------------- |
| url | string  | Y  | Image asset의 url |
| w   | integer | Y  | Image의 가로 픽셀     |
| h   | integer | Y  | Image의 세로 픽셀     |

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

> bid / adm / native\_response / native\_response\_asset

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

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

> bid / adm / native\_response / native\_response\_asset

<table><thead><tr><th width="207">필드</th><th width="99">유형</th><th width="106">필수</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 / adm / native\_response / native\_response\_asset

| 필드  | 유형     | 필수 | 설명            |
| --- | ------ | -- | ------------- |
| url | string | Y  | 클릭 가능한 랜딩 URL |

### **Native\_response\_eventtracker**

> bid / adm / native\_response /

| 필드      | 유형      | 필수 | 설명          |
| ------- | ------- | -- | ----------- |
| event   | integer | Y  | 트래킹할 이벤트 유형 |
| methods | integer | Y  | 요청된 트래킹 유형  |

#### **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}}],\"imptrackers\":[\"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="67"></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

해당 Object를 사용하기 위해서는 우선적으로 아래 사항들이 준비되어야 합니다.

<table data-header-hidden><thead><tr><th width="76">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>필드</th><th width="116">유형</th><th width="63">필수</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="147">필드</th><th width="88">유형</th><th width="61">필수</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 %}


---

# 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://docs.targetpick.io/for-ssp/native.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.
