DSP Video AD. Delivery API
REQUEST
SSP DSP
메조미디어 DSP 는 HTTP POST 방식으로 아래 정의된 객체를 JSON 형태로 구성한 뒤, 위의 URL 을 POST 방식으로 호출합니다.
요청 객체 정의는 OPEN RTB 2.5 규격을 따릅니다.
request object
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
id | string | Y | 요청 유니크 아이디 |
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: Linear / In-Stream 2: Non-Linear / Overlay |
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 |
요청 예제 (APP)
{
"id": "cdc-7c6d-4029-dcd|1337",
"at": 0,
"tmax": 250,
"imp": [
{
"id": "150226007700",
"bidfloorcur": "KRW",
"bidfloor": 0,
"secure": 0,
"video": {
"mimes": [
"video\\/mp4"
],
"w": 1080,
"h": 1920,
"minduration": 5,
"maxduration": 30,
"protocols": [
3
],
"startdelay": 0,
"linearity": 1,
"delivery": [
2
],
"ext": {
"rewarded": 1
}
},
"instl": 0
}
],
"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",
"name": "test-pub-app-name",
"cat": [
"IAB1"
]
}
},
"device": {
"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",
"model": "iPhone 7,2",
"os": "iOS",
"osv": "8.0",
"js": 1,
"ifa": "test-ifa-gaid"
},
"user": {
"id": "923123"
},
"ext": {
}
}
요청 예제 (WEB)
{
"id": "cdc-7c6d-4029-dcd|1337",
"at": 0,
"tmax": 250,
"imp": [
{
"id": "150226007700",
"bidfloorcur": "KRW",
"bidfloor": 0,
"secure": 0,
"video": {
"mimes": [
"video\\/mp4"
],
"w": 1080,
"h": 1920,
"minduration": 5,
"maxduration": 30,
"protocols": [
3
],
"startdelay": 0,
"linearity": 1,
"delivery": [
2
],
"ext": {
"rewarded": 1
}
},
"instl": 0
}
],
"site": {
"id": "test-pub-app-id",
"domain": "test-pub-web-domain",
"ref": " test-pub-web-ref",
"cat": [
"IAB1"
],
"publisher": {
"id": "test-pub-app-id",
"name": "test-pub-app-name",
"cat": [
"IAB1"
]
}
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141",
"ip": "192.168.1.1"
},
"user": {
"id": "923123"
},
"ext": {
"price_type": 1,
"tracking_type": 0
}
}
RESPONSE
SSP DSP
DSP 는 아래 정의된 객체를 HTTP body 에 포함해 응답합니다.
객체 정의는 OPEN RTB 2.3 규격을 따릅니다.
Bid Response
JSON 형식의 응답 객체입니다.
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
id | string | Y | Bid Request 의 ID |
bidid | string | Y | Bid 오브젝트의 ID |
cur | string | Y | 입찰시 사용할 통화. 예) KRW |
seatbid | object array | Y | bid 객체 에 대한 배열 |
bid
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
id | string | Y | 입찰 정보를 관리하는 ID |
price | float | Y | 입찰 가격 |
adm | string (XML) | Y | adm 객체를 참고하십시오. |
nurl | string | Y | 노출 URL |
adomain | string array | Y | 광고주 도메인 |
cid | string | Y | 광고주 캠페인명 / id |
crid | string | Y | 광고주 광고물명 / id |
cat | string array | Y | 카테고리 |
ext | object | Y | ext 객체를 참고하십시오. |
ext
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
clickurl | string | Y | 클릭 트래킹 URL |
viewable | string | Y | 광고 영역이 20% 이상 노출되면서 2초 이상 유지된 경우에 대한 트래킹 URL |
breakaway | string | Y | 광고 재생이 완료되지 않고 이탈한 이벤트에 대한 트래킹 URL. |
breakaway URL 에 {m_sec} 이 포함된 경우, {m_sec} 을 광고 재생 시간으로 치환하여 URL 호출을 합니다.
예를 들어 breakaway 값을 http://breakaway.tracking.com/tracking.do?time={m_sec} 지정했고, 20초 재생 후 이탈 한 경우, http://breakaway.tracking.com/tracking.do?time=20 을 호출합니다.
adm
XML 로 정의되는 객체입니다.
객체 정의는 VAST 3.0 규격을 따릅니다.
요소 / 속성 | 유형 | 필수 | 설명 |
---|---|---|---|
VAST | element | Y | VAST 정의를 참고하십시오. |
VAST
adm / VAST
요소 / 속성 | 유형 | 필수 | 설명 |
---|---|---|---|
version | integer (속성) | Y | VAST 규약 버전. 3.0 인 경우, 3으로 작성합니다. |
Ad | element array | Y | Ad 정의를 참고하십시오. |
Ad
adm / Ad
요소 / 속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id | integer (속성) | N | 광고 ID |
sequence | integer (속성) | N | 광고의 sequence 번호 |
Inline | element | Y | Inline 정의를 참고하십시오. |
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
요소 / 속성 | 유형 | 필수 | 설명 |
---|---|---|---|
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": "http://abc.com/ad_tracking.mezzo/?e_request_type=imps_tracking",
"adomain": "http: //adver.co.kr",
"cid": "2234",
"crid": "2234",
"cat": [
"IAB1"
],
"ext": {
"clickurl": "http://abc.com/ad_tracking.mezzo/?e_request_type=click",
"viewable": "http://abc.com/ad_tracking.mezzo/?e_request_type=viewable",
"breakaway": "http://abc.com/ad_tracking.mezzo/?e_request_type=breakaway&sec={m_sec}"
}
}
]
}
]
}
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"
}
}
}]
}]
}