SSP Video AD. Request API

14 분 소요

Geonjin Mun

REQUEST

SSP DSP

메조미디어 SSP 는 HTTP POST 방식으로 아래 정의된 객체를 JSON 형태로 작성해 DSP 인터페이스를 호출합니다.
요청 객체 정의는 OPEN RTB 2.5 규격을 따릅니다.

request object
필드 유형 필수 설명
id string Y 요청 유니크 아이디
cur string array N ISO-4217-alpha 경매에 사용할 수 있는 통화 입니다. 예: “KRW”
test integer N 경매가 테스트 모드(1)건 실시간 모드(0)건, 테스트 경매에는 입찰할 수 없습니다
at integer Y 0 : fixed price, 1: first price, 2: second price
tmax integer Y 최대허용시간 (ms).
imp object array Y imp 객체를 참고하십시오.
app object Y app 객체를 참고하십시오.
device object Y device 객체를 참고하십시오.
user object Y user 객체를 참고하십시오.
bcat string array N IAB 카테고리 기준으로 광고주 카테고리를 차단합니다.
badv string array N 광고주의 도메인을 차단합니다.
bapp string array N App의 번들이나 패키지명을 차단합니다.
ext object Y ext 객체를 참고하십시오.
imp
필드 유형 필수 설명
id string Y 노출에 대한 유니크 아이디
bidfloor float Y 입찰로 인정받을 수 있는 최소 가격. 예) 4.12
bidfloorcur string Y 통화, 예) ‘KRW’
secure integer Y 0 : http, 1 : https
video object Y video 객체를 참고하십시오.
instl integer Y 전면광고 여부를 전달합니다. (default: 0)
* 1 = the ad is interstitial or full screen
* 0 = not interstitial.
displaymanager string Y SSP 플랫폼명 또는 SDK명을 의미합니다.
displaymanagerver string Y SSP 플랫폼 또는 SDK 버전을 의미합니다.
video

imp / video

필드 유형 필수 설명
mimes string array Y MIME 타입. 예) “video/mp4”
w integer Y 비디오의 가로 크기
h integer Y 비디오의 세로 크기
minduration integer Y 비디오가 재생되어야 하는 최소 시간(초)
maxduration integer Y 비디오가 재생될 수 있는 최대 시간(초)
protocols integer array Y VAST 버전. “3” 을 전달합니다.
startdelay integer Y 프리롤, 미드롤, 포스트롤 광고 구분값을 전달합니다.
* 0 = 프리롤
* -1 = 일반 미드롤
* -2 = 일반 포스트롤
linearity integer Y 1: in stream, 2: out stream
delivery integer array Y 2 (Progressive) 로 전달합니다.
placement integer Y 비디오 게재 위치
* 1 = 플레이어 내
* 2 = 배너 내
* 3 = 기사 내
* 4 = 피드 내
* 5 = 전면/슬라이드/플로팅
ext object N 표준 항목 외에 필요한 정보를 전달합니다.(ex, rewarded)
video / ext

imp / video / ext

Field Type Required Description
rewarded integer N Reward 광고 여부를 전달합니다.
* 0 = no(non-reward)
* 1 = yes(reward)
app
필드 유형 필수 설명
id string Y 퍼블리셔 ID
name string N 애플리케이션 이름
bundle string Y 번들 이름, 패키지 이름
storeurl string N 앱스토어 URL
cat string array N 카테고리
publisher object Y publisher 객체를 참고하십시오.
publisher

app / publisher

필드 유형 필수 설명
id string Y 퍼블리셔 ID
name string N 퍼블리셔 명
cat string array N 카테고리
device
필드 유형 필수 설명
ua string Y 디바이스의 User Agent 정보
dnt integer N 위치 추적 금지 활성화 여부. 0: 추적 가능, 1: 추적 금지.
ip string Y IPV4 주소
model string N 모델명
os string Y 운영체제. 예) iOS, Anroid
osv string Y 운영체제 버전. 예) 8.1, 9.2
js integer N RTB 프로토콜에 1로 정의되어 있습니다.
ifa string Y Apple IFA 또는 Google 의 ADID
user

RTB 프로토콜에는 없는 메조미디어의 확장 필드 입니다.

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

RTB 프로토콜에는 없는 메조미디어의 확장 필드 입니다.

필드 유형 필수 설명
Price_type integer N 0: CPM, 2: CPC
요청 예제 (APP)

{
  "id": "eb713f5a-3773-4ae7-9a33-884164172255$1277830896$KKHSVVWN",
  "test": 1,
  "cur": [
    "USD"
  ],
  "source": {
    "ext": {
      "schain": {
        "ver": "1.0",
        "nodes": [
          {
            "asi": "mman.kr",
            "sid": "31998",
            "rid": "eb713f5a-3773-4ae7-9a33-884164172255$1277830896$KKHSVVWN",
            "hp": 1
          }
        ],
        "complete": 1
      }
    }
  },
  "regs": {
    "ext": {
      "us_privacy": "1---"
    }
  },
  "tmax": 500,
  "at": 2,
  "imp": [
    {
      "tagid": "805010_com.test.mezzo",
      "secure": 0,
      "clickbrowser": 1,
      "displaymanager": "ManSDK",
      "displaymanagerver": "200",
      "instl": 0,
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "w": 1920,
        "h": 1080,
        "placement": 1,
        "skip": 1,
        "playbackmethod": [
          2
        ],
        "protocols": [
          2,
          3
        ],
        "delivery": [
          2
        ],
        "ext": {
          "rewarded": 0
        },
        "minduration": 7,
        "maxduration": 60,
        "startdelay": 1,
        "linearity": 1
      },
      "bidfloorcur": "USD",
      "bidfloor": 0.008411677387431964,
      "id": "166330732500"
    }
  ],
  "app": {
    "publisher": {
      "id": "31998",
      "name": "31998_%EC%9D%B4%EA%B2%83%EC%9D%B4 %ED%85%8C%EC%8A%A4%ED%8A%B8",
      "product_attr": 4
    },
    "id": "805010_com.test.mezzo",
    "name": "805010_%EC%9D%B4%EA%B2%83%EC%9D%B4 %ED%85%8C%EC%8A%A4%ED%8A%B8",
    "bundle": "com.test.mezzo",
    "storeurl": "https://play.google.com/store/apps/details?id=com.mz.mezzomediaapp",
    "cat": [
      "IAB9"
    ]
  },
  "user": {
    "id": "2d634ecd-c577-48bd-a76c-10ca1ad1abe1"
  },
  "device": {
    "geo": {
      "country": "KOR"
    },
    "adid": "2d634ecd-c577-48bd-a76c-10ca1ad1abe1",
    "ifa": "2d634ecd-c577-48bd-a76c-10ca1ad1abe1",
    "dnt": 0,
    "ua": "Mozilla/5.0 (Linux; Android 9; SM-G955N Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/105.0.5195.79 Mobile Safari/537.36",
    "ip": "58.231.40.30",
    "make": "samsung",
    "os": "Android",
    "osv": "9",
    "model": "SM-G955N",
    "language": "ko",
    "js": 1,
    "devicetype": 1,
    "ext": {
      "gain": "2d634ecd-c577-48bd-a76c-10ca1ad1abe1"
    }
  },
  "ext": {
    "limit_duration": 30,
    "price_type": 0
  }
}

요청 예제 (WEB)

{
  "id": "b051cef2-cc87-4c31-9288-c1c8faec3c58$1277830694$KKHSVVWN",
  "test": 1,
  "cur": [
    "USD"
  ],
  "source": {
    "ext": {
      "schain": {
        "ver": "1.0",
        "nodes": [
          {
            "asi": "mman.kr",
            "sid": "31998",
            "rid": "b051cef2-cc87-4c31-9288-c1c8faec3c58$1277830694$KKHSVVWN",
            "hp": 1
          }
        ],
        "complete": 1
      }
    }
  },
  "regs": {
    "ext": {
      "us_privacy": "1---"
    }
  },
  "tmax": 500,
  "at": 2,
  "imp": [
    {
      "tagid": "805010_com.test.mezzo",
      "secure": 0,
      "instl": 0,
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "w": 1080,
        "h": 1920,
        "placement": 1,
        "skip": 1,
        "playbackmethod": [
          2
        ],
        "protocols": [
          2,
          3
        ],
        "delivery": [
          2
        ],
        "ext": {
          "rewarded": 0
        },
        "minduration": 7,
        "maxduration": 60,
        "startdelay": 1,
        "linearity": 1
      },
      "bidfloorcur": "USD",
      "bidfloor": 0.008411677387431964,
      "id": "166330750000"
    }
  ],
  "site": {
    "publisher": {
      "id": "31998",
      "name": "31998_com.test.mezzo",
      "domain": "com.test.mezzo",
      "product_attr": 4
    },
    "id": "805010_com.test.mezzo",
    "name": "805010_com.test.mezzo",
    "domain": "com.test.mezzo",
    "page": "http://mtagdev.mman.kr:9300/V2/video_step2.html",
    "ref": "http://mtagdev.mman.kr:9300/",
    "mobile": 1,
    "cat": [
      "IAB9"
    ]
  },
  "user": {
    "id": "2ca990ef-7e72-4fc1-91bc-24cb11dc2b8d"
  },
  "device": {
    "geo": {
      "country": "KOR"
    },
    "adid": "2ca990ef-7e72-4fc1-91bc-24cb11dc2b8d",
    "ifa": "",
    "dnt": 0,
    "ua": "Mozilla/5.0 (Linux; Android 10; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Mobile Safari/537.36",
    "ip": "203.248.117.195",
    "make": "",
    "os": "Android",
    "osv": "",
    "model": "",
    "language": "ko",
    "js": 1,
    "devicetype": 1
  },
  "ext": {
    "limit_duration": 30,
    "price_type": 0
  }
}

RESPONSE

DSP SSP

DSP 는 아래 정의된 객체를 HTTP body 에 포함해 응답합니다.
객체 정의는 OPEN RTB 2.5 규격을 따릅니다.

Bid Response

JSON 형식의 응답 객체입니다.

필드 유형 필수 설명
id string Y Bid Request 의 ID
bidid string Y Bid 오브젝트의 ID
cur string array Y 입찰시 사용할 통화. 예) KRW
seatbid object array Y bid 객체 에 대한 배열
bid
필드 유형 필수 설명
id string Y 입찰 정보를 관리하는 ID
price float Y 입찰 가격
adm string (XML) Y adm 객체를 참고하십시오.
nurl string N 낙찰 알림 url (win URL)
낙찰가를 {AUCTION_PRICE} 매크로에 치환하여 전달합니다.
burl string N 낙찰 청구 알림 url (Billing notice URL)
낙찰가를 {AUCTION_PRICE} 매크로에 치환하여 전달합니다.
lurl string N 유찰 알림 url (Loss notice URL)
{AUCTION_LOSS} 매크로에 유찰 사유 코드를 치환하여 전달합니다.
adomain string array Y 광고주 도메인
cid string Y 광고주 캠페인명 / id
crid string Y 광고주 광고물명 / id
cat string array Y 카테고리
ext object Y ext 객체를 참고하십시오.
adm

XML 로 정의되는 객체입니다.
객체 정의는 VAST 3.0 규격을 따릅니다.

요소 / 속성 유형 필수 설명
VAST element Y VAST 정의를 참고하십시오.
VAST

adm / VAST

요소 / 속성 유형 필수 설명
version integer (속성) Y VAST 규약 버전. 3.0 인 경우, 3으로 작성합니다.
Ad element array Y Ad 정의를 참고하십시오.

adm / Ad

요소 / 속성 유형 필수 설명
id integer (속성) N 광고 ID
sequence integer (속성) N 광고의 sequence 번호
Inline element Y Inline 정의를 참고하십시오.
Inline

adm / Ad / Inline

요소 / 속성 유형 필수 설명
AdSystem integer N AdSystem 정의를 참고하십시오.
AdTitle integer N 광고 이름
Extensions element N Extensions 정의를 참고하십시오.
Error element N Player 에러 발생시 호출할 트래킹 URL
Impression element Y 동영상 시작시 호출할 트래킹 URL
Creatives element array Y Creative element 에 대한 배열
AdSystem

adm / Ad / Inline / AdSystem

요소 / 속성 유형 필수 설명
version integer (속성) N 광고 엔진 버전

요소 값은 광고 엔진 이름입니다.

Extensions

adm / Ad / Inline / Extensions

요소 / 속성 유형 필수 설명
requestID string N 광고 요청 고유 코드
Creative

adm / Ad / Inline / Creatives / Creative

요소 / 속성 유형 필수 설명
id integer (속성) N 광고 번호
sequence integer (속성) N 광고 시퀀스
Linear element Y Linear 정의를 참고하십시오.
Linear

adm / Ad / Inline / Creatives / Creative / Linear

요소 / 속성 유형 필수 설명
Duration string N 영상 길이 / 재생 시간. hh:mm:ss 형태로 지정합니다.
TrackingEvents element array N Tracking element 대한 배열
VideoClicks element N VideoClicks 정의를 참고하십시오.
MediaFiles element array Y MediaFile element 대한 배열
Tracking

adm / Ad / Inline / Creatives / Creative / Linear / TrackingEvents / Tracking

요소 값은 트래킹 이벤트 전달을 위한 HTTP(s) URL 입니다.

요소 / 속성 유형 필수 설명
event string (속성) Y 이벤트 이름을 지정합니다. 예) start, firstQuartile, midpoint
offset element array N 이벤트 발생 조건이 되는 재생 시간을 지정합니다. hh:mm:ss 형태로 지정.

요소 값은 트래킹 이벤트 전달을 위한 HTTP(s) URL 입니다.

이벤트 값 설명
start 동영상이 시작된 경우 호출하는 트래킹 URL
firstQuartile 동영상이 25% 재생된 경우 호출하는 트래킹 URL
midpoint 동영상이 50% 재생된 경우 호출하는 트래킹 URL
thirdQuartile 동영상이 75% 재생된 경우 호출하는 트래킹 URL
complete 동영상 재생이 완료된 경우 호출하는 트래킹 URL
progress 동영상이 지정된 offset 속성만큼 재생된 경우 호출하는 트래킹 URL

(이벤트 값과 offset 값이 같은) 동일한 이벤트에 서로 다른 트래킹 URL 을 지정할 수 있습니다.

VideoClicks

adm / Ad / Inline / Creative / Linear / VideoClicks

요소 값은 클릭 이벤트를 처리하기 위한 HTTP(s) URL 입니다.

요소 / 속성 유형 필수 설명
ClickThrough string Y 광고 랜딩 페이지 URL
ClickTracking string N 광고 클릭 이벤트 트래킹 URL
offset string N 지정된 시간까지 재생된 이후에 광고 클릭이 가능합니다.

ClickThrough : DSP 에서 클릭 이벤트를 처리한 뒤, 최종 광고 랜딩으로 리다이렉트 하도록 구성할 수 있습니다.

MediaFile

adm / Ad / Inline / Creatives / Creative / Linear / MediaFiles / MediaFile

요소 / 속성 유형 필수 설명
delivery string (속성) N 동영상 소재 재생 방식. progressive 를 지원합니다.
type string (속성) N 동영상 소재 타입. 예) video/mp4
width integer (속성) N 동영상 소재의 폭
height integer (속성) N 동영상 소재의 높이
bitrate integer (속성) N 동영상 소재의 비트레이트

요소 값은 비디오 콘텐츠의 경로입니다. (HTTP, HTTPS)

Bid response 예제

{
   "id": "req-12345-abcde",
   "bidid": "5508",
   "cur": "KRW",
   "seatbid": [
      {
         "bid": [
            {
               "id": "147704390800",
               "price": "60",
               "adm": "%3CVAST+version%3D%223.0%22%3E%0D%0A%3CAd+id%3D%2250096%22+sequence%3D%221%22%3E%0D%0A%3CInLine%3E%0D%0A%3CAdSystem+version%3D%222%22%3EMAN%3C%2FAdSystem%3E%0D%0A%3CAdTitle%3E%0D%0A%3C%21%5BCDATA%5B+20160217_%ED%99%88%ED%94%8C%EB%9F%AC%EC%8A%A4_%ED%99%88%ED%94%8C%EB%9F%AC%EC%8A%A4_%EB%8F%99%EC%98%81%EC%83%81_%ED%85%8C%EC%8A%A4%ED%8A%B8+%5D%5D%3E%0D%0A%3C%2FAdTitle%3E%0D%0A%3CExtensions%3E%0D%0A%3CrequestID%3E%0D%0A%3C%21%5BCDATA%5B+-+%5D%5D%3E%0D%0A%3C%2FrequestID%3E%0D%0A%3C%2FExtensions%3E%0D%0A%3CError%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fd_err%3D%5BERRORCODE%5D%5D%0D%0A%5D%5D%3E%0D%0A%3C%2FError%3E%0D%0A%3CImpression+id%3D%22man_server%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dimps_tracking%0D%0A%5D%5D%3E%0D%0A%3C%2FImpression%3E%0D%0A%3CCreatives%3E%0D%0A%3CCreative+id%3D%2225549%22+sequence%3D%221%22%3E%0D%0A%3CLinear%3E%0D%0A%3CDuration%3E00%3A00%3A30%3C%2FDuration%3E%0D%0A%3CTrackingEvents%3E%0D%0A%3CTracking+event%3D%22start%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dtrack_vast_q1%26e_version%3D2%0D%0A%5D%5D%3E%0D%0A%3C%2FTracking%3E%0D%0A%3CTracking+event%3D%22firstQuartile%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dtrack_vast_q2%26e_version%3D2%0D%0A%5D%5D%3E%0D%0A%3C%2FTracking%3E%0D%0A%3CTracking+event%3D%22midpoint%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dtrack_vast_q3%26e_version%3D2%0D%0A%5D%5D%3E%0D%0A%3C%2FTracking%3E%0D%0A%3CTracking+event%3D%22thirdQuartile%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dtrack_vast_q4%26e_version%3D2%5D%5D%3E%0D%0A%3C%2FTracking%3E%0D%0A%3CTracking+event%3D%22complete%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dtrack_vast_q5%26e_version%3D2%0D%0A%5D%5D%3E%0D%0A%3C%2FTracking%3E%0D%0A%3CTracking+event%3D%22progress%22+offset%3D%2200%3A00%3A05%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dimps_video_tracking%26e_version%3D2%0D%0A%5D%5D%3E%0D%0A%3C%2FTracking%3E%0D%0A%3CTracking+event%3D%22progress%22+offset%3D%2200%3A00%3A15%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dtrack_vast_view%26e_version%3D2%0D%0A%5D%5D%3E%0D%0A%3C%2FTracking%3E%0D%0A%3C%2FTrackingEvents%3E%0D%0A%3CVideoClicks%3E%0D%0A%3CClickThrough%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fad_tracking.mezzo%2F%3Fe_request_type%3Dclick%26e_version%3D2%0D%0A%5D%5D%3E%0D%0A%3C%2FClickThrough%3E%0D%0A%3CClickTracking%3E%3C%2FClickTracking%3E%0D%0A%3COffset%3E00%3A00%3A05%3C%2FOffset%3E%0D%0A%3C%2FVideoClicks%3E%0D%0A%3CMediaFiles%3E%0D%0A%3CMediaFile+delivery%3D%22progressive%22+type%3D%22video%2Fmp4%22+width%3D%22480%22+height%3D%22270%22+bitrate%3D%22350%22%3E%0D%0A%3C%21%5BCDATA%5B%0D%0Ahttp%3A%2F%2Fmtag.mman.kr%2Fvod.mezzo%2F%3Fe_version%3D2%26e_request_type%3Dvod%26i_video_name%3D20161014150027%26d_r%3D1%26i_rs_t%3D3%26d_p1%3D1%0D%0A%5D%5D%3E%0D%0A%3C%2FMediaFile%3E%0D%0A%3C%2FMediaFiles%3E%0D%0A%3C%2FLinear%3E%0D%0A%3C%2FCreative%3E%0D%0A%3C%2FCreatives%3E%0D%0A%3C%2FInLine%3E%0D%0A%3C%2FAd%3E%0D%0A%3C%2FVAST%3E",
               "nurl": "win url",
               "adomain": "http: //adver.co.kr",
               "cid": "2234",
               "crid": "2234",
               "cat": [
                  "IAB1"
               ]
            }
         ]
      }
   ]
}

adm 예제

<?xml version="1.0" encoding="UTF-8"?>
<VAST version="3.0">
   <Ad id="50096" sequence="1">
      <InLine>
         <AdSystem version="2">MAN</AdSystem>
         <AdTitle><![CDATA[ 20160217_홈플러스_홈플러스_동영상_테스트 ]]></AdTitle>
         <Extensions>
            <requestID><![CDATA[ - ]]></requestID>
         </Extensions>
         <Error><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?d_err=[ERRORCODE]]]]></Error>
         <Impression id="man_server"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=imps_tracking]]></Impression>
         <Creatives>
            <Creative id="25549" sequence="1">
               <Linear>
                  <Duration>00:00:30</Duration>
                  <TrackingEvents>
                     <Tracking event="start"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=track_vast_q1&e_version=2]]></Tracking>
                     <Tracking event="firstQuartile"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=track_vast_q2&e_version=2]]></Tracking>
                     <Tracking event="midpoint"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=track_vast_q3&e_version=2]]></Tracking>
                     <Tracking event="thirdQuartile"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=track_vast_q4&e_version=2]]></Tracking>
                     <Tracking event="complete"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=track_vast_q5&e_version=2]]></Tracking>
                     <Tracking event="progress" offset="00:00:05"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=imps_video_tracking&e_version=2]]></Tracking>
                     <Tracking event="progress" offset="00:00:15"><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=track_vast_view&e_version=2]]></Tracking>
                  </TrackingEvents>
                  <VideoClicks>
                     <ClickThrough><![CDATA[http://mtag.mman.kr/ad_tracking.mezzo/?e_request_type=click&e_version=2]]></ClickThrough>
                     <ClickTracking></ClickTracking>
                     <Offset>00:00:05</Offset>
                  </VideoClicks>
                  <MediaFiles>
                     <MediaFile delivery="progressive" type="video/mp4" width="480" height="270" bitrate="350"><![CDATA[http://mtag.mman.kr/vod.mezzo/?e_version=2&e_request_type=vod&i_video_name=20161014150027&d_r=1&i_rs_t=3&d_p1=1]]></MediaFile>
                  </MediaFiles>
               </Linear>
            </Creative>
         </Creatives>
      </InLine>
   </Ad>
</VAST>

SKAdNetwork 지원(iOS14 이상)

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

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

BidRequest / imp / banner / ext / skadn

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

1 DSP에서 제공하는 SKAdNetwork ID가 퍼블리셔의 info.plist에 등록되어 있어야 한다.
2 사용자 기기의 운영체제가 iOS14 혹은 그 이상이어야 한다.
3 SKAdNetwork를 지원하는 버전의 SDK를 설치해야한다.
4 DSP는 메조미디어의 Bid Request 규약을 준수해야한다.
필드 유형 필수 설명
version string Y 사용하는 SKadNetwork 버전. “2.0” 혹은 그 이상. “version”:”2.0”
sourceapp string Y Apple App 스토어에 등록된 퍼블리셔 App ID.
‘BidRequest.app.bundle’ 과 매칭
“sourceapp”:”000000000”
skadnetids string Y 퍼블리셔 App 내 info.plist에 입력된 SKAdNetwork IDs “skadnetids”:[“feyaarzu9v.skadnetwork”]
SKAdNetwork 광고 요청 예제
{
	"imp":[{
        "ext": {
          "skadn": {
            "version": "2.0",
			"sourceapp": "000000000",
			"skadnetids": ["feyaarzu9v.skadnetwork", "8sRFag4vVC.skadnetwork"]
			}
			}
		}]
}
광고응답 추가내용 (SKAdNetwork)

BidResponse / imp / banner / ext / skadn

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

업데이트: