모바일 마케팅용어

OpenRTB 입찰 응답 파트

Ms_Tony 2016. 10. 7. 17:52

4. 입찰 응답 사양.                                                                          



 RTB 응답은 입찰 요청 내의 특정 노출을 참조하는 입찰(bid)이 포함되어 있습니다. 입찰은 본질적으로 매수 청약 방식입니다. 입찰 응답은 최상위 입찰 응답 객체와 특정 입찰을 묘사하는 Option 객체로 구성되어 있습니다. 

 빈 HTTP 응답은 Bid를 구성하지 않고, 사실상 신호의 가장 친화적인 대역폭 응답과 "No-bid reason"을 반환하는 형태를 권장합니다. 잘못된 응답 또는 응답에 실제 bid가 포함이 안되 있을 경우 또한 bid가 아닌 것으로 해석한다.






4.1 Object Model                                                                          


 최상위 레벨 객체는 BidResponse 객체이다. 입찰 응답은 입찰에 다수의 "seats"를 포함 할 수 있다. 실제로 응답은 한 "seat"가 다수의 입찰들을 포함할 수 있다. 하지만 일반적으로 반드시 다른 캠페인에서 행해져야한다. 최상위 Exchange가 publisher를 대신하여 다양한 차단 목록을 적용하기 떄문에 seat의 승리 기회를 향상 시킬 수 있다.


 실제 응답 객체는 입찰 응답 최상위의 입찰 객체의 특정 seat의 특정 SeatBid 컬렉션의 왼쪽에 표시됩니다. 다른 객체들도 입찰 요청의 객체들과 연관지어져 있음을 확인 할 수 있습니다. 특히, 입찰 응답은 긍정적인 트래킹을  목적으로 입찰 요청의 ID를 포함하고, 요청이 여러 노출을 포함할 수 있게 때문에 입찰은 입찰 구매의 청약 인에 대한 Imp의 ID도 포함한다. 입찰이 PMP의 거래 조건에 따라 이루어지게 되면, 입찰은 또한 Deal 객체의 ID도 포함하게된다.


BidResponse - 최상위 객체

SeatBid - 입찰자(bidder)를 대신하는 특정 seat의 입찰 컬렉션(모임)

Bid - 특정 비즈니스 조건에 따라 노출을 구매하는 행위.



4.2 Object Specifications                                                                 


 - 객체의 조건 -


1. "required" 속성을 생략할 경우 기술적으로 프로토콜이 break가 일어납니다.

2. "recommended" 라고 포함되어있는 속성들은 비즈니스를 함에 있어 강력히 추천되는 속성입니다.

3. default 값을 따로 지정하지 않거나, 테이블에 표현이 안되있는데 생략할 경우, 값은 "unknown"으로 처리



4.2.1 Object:BidResponse                                                                


 id 속성은 로깅을 목적으로 입찰 요청 ID를 반영한다. 비슷한 이유로 bidid도 bidder를 트래킹하기 위해 사용된다.

bidid를 지정해놨을 경우, 입찰자가 입찰되면, 이후 win notice 호출에 포함될 수 있다. 입찰 객체가 최소한 하나의

노출을 포함할 경우, 최소한 하나의 seatbid 객체가 요구된다. 다른 속성은 모두 옵션이다.


 "no-bid"를 표현할 경우 빈 응답과 HTTP code 204를 반환한다. 입찰자가 Exchange에 입찰하지 않는 이유를 전달하고자 하는 경우, 입찰 응답 객체의 nbr 속성에서 reason code를 넣어서 반환하면 된다.


id (str, req) - 이 응답에 대한 입찰 요청에 들어있는 ID값


seatbid(obj array) - seatbid 객체의 배열, bid가 만들어지면 +1되야함


bidid (string) - 입찰 응답의 ID로 입찰자가 응답을 추적하기 위해 사용함. 이 값은 상호참조를 위해

입찰자가 선택합니다.


cur (str, default "USD") - ISO-4217 알파코드를 사용해 표현하는 bid의 통화


customdata (str) - 옵션 기능은 입찰자가 exchange의 쿠키 데이터를 설정할 수 있습니다. 문자열은 반드시

base85로 인코딩 된 쿠키 값을 사용하는 것이 안전합니다. JSON 인코딩을 사용할 경우 ""를 포함시켜 줘야합니다.


nbr (int) - 입찰을 하지 않는 이유,  Reason code( 5.22)


ext (obj)



4.2.2 Object:SeatBid                                                                       


 입찰 응답은 여러 개의 SeatBid 객체를 포함할 수 있고, 각각의 객체는 다른 입찰자격 코드(bidder seat)를 표현하고, 하나 이상의 개별 입찰(bid obj)에 포함될 수 있다. 만약 요청에 다수의 노출 있을 경우, group 속성을 사용해서 노출들 중 입찰된 것만 하거나, 그룹단위로 설정할 수 있다.


bid (obj array, req) - 입찰 객체는 노출과 연관되서 추가된다. 여러개의 bid 객체는 하나의 노출과 연관될 수도있다.


seat (str) - 입찰을 이루어주는 구매자의 seat ID(e.g 광고주, 대행사)


group (int, default 0) - 0=한 입찰에 다수의 노출이 있을 경우, 노출을 각각 하나씩 보고 입찰할 수 있다.

                         1=노출은 무조건 그룹 단위로 입찰을 성공 또는 실패한다.


ext (obj)



4.2.3 Object:Bid                                                                            


 Seatbid 객체는 impId 속성을 통해 입찰 요청에서 특정 노출에 관한 각각의 하나 이상의 Bid 객체를 포함하고, 주어진 가격이 노출의 매수 청약을 구성한다. 만약 입찰자가 광고를 낙찰 받으면 Exchange에 의해 nurl에 저장한 URL을 통해 특정 치환 매크로를 이용해 몇몇 정보를 추가적으로 실어 보내올 수 있습니다. 몇 가지 다른 속성은 광고의 품질 검사 또는 퍼블리셔를 강제로 제한하는 데 사용됩니다.


id (str, req) - 입찰자를 bid ID로 로깅 / 추적과 디버깅을 할 때 사용합니다.


impid (str, req) - 관련 입찰 요청의 Imp 객체의 ID (입찰이 적용되는 Imp 객체의 ID)


price (float, req) - 입찰 가격은 CPM으로 표시. 타입에 float 형을 적어놨지만, 정산 처리할 때는 integer 형을

적극 추천.(반올림 오차를 피하기 위해서)


adid (str) - 낙찰이 되는 경우에 전송될 광고 ID.


nurl (str) - 낙찰이 됬을 경우 Exchange에 의해 Win Notice를 호출 받을 URL.옵션은 광고 마크업 리턴을 의미합니다.


adm (str) - 낙찰이 됬을 경우 광고 markup을 전달하는 옵션을 의미. markup이 모두 포함된 경우 win notice를

대체합니다.


adomain (str array) - 광고주의 도메인이 차단 목록에 있는지 체크하는 용도로 사용. Exchange는 하나의 도메인만

허용되도록 강제할 수 있다. 광고주의 최상위 도메인.


bundle (str) - 안드로이드는 어플리케이션 번들이나 패키지명(com.foo.mygame). iOS는 번호 ID.

exchange와 통신해 unique한 Id가 되야함.


iurl (str) - 광고 품질/안전 검사를 위한 캠페인의 내용의 cache-busting이 안된 샘플 이미지 URL


cid (str) - 광고 마크업에 나타난 캠페인 ID는 광고 품질 확인을 지원합니다. iurl을 대표하기위한 광고의 컬렉션.


crid (str) - 이슈나 문제점을 보고하기 위한 광고물 ID. 이 속성은 Exchange에서 게시한 광고물 ID의 참조로

활용될 수 있습니다.


cat (str array) - 광고 소재를 IAB 컨텐츠 카테고리를 통해 표현(5.1)


attr (int array) - 광고를 기술하는 속성을 설정합니다. (5.3)


api (int) - markup이 요구하는 API 기술(5.6)


protocol (int) - Video 응답 프로토콜 - 지원할 경우만 기술 (5.8)


qagmediarating (int) - IQG 가이드라인에 따른 광고 미디어 평가 (5.17)


dealid (str) - 입찰이 PMP에서 하는 직접 거래일 경우 입찰 요청에서 deal.id 를 참고(레퍼런스). 거래 방식이

PMP 일 경우 필수 조건.


w (int) - 광고의 가로 폭(DIPS)


h (int) - 광고의 세로 길이(DIPS)


exp (int) - 입찰자는 경매와 실제 노출 사이에 값(sec) 동안 대기할 것을 권고


ext (obj)



4.3. Ad Serving Options                                                                  


 OpenRTB 사양의 범위 내에서 RTB 트랜잭션의 목표는 Markup의 전달에 있다. 노출과 다른 광고 유형 제약에 따라 마크업은 XHTML, 임베디드 자바 스크립트와 XHTML, 비디오에 대한 VAST 문서, 네이티브 광고 단위 구조, 그리고 미래에 잠재적으로 다른 형식이 될 수도 있습니다. OpenRTB 사양은 공급 측면과 전달 치환 매크로 이외의 교환에 의해 광고 markup의 처리를 필요로 하지 않습니다. Exchange는 입찰자로부터 markup을 전송하기 위한 여러 방법이 있다.



4.3.1 Markup Served on the Win Notice                                             


 이 방법은, 광고 markup에 낙찰 통지를 포함시켜 반환하는 것이다. 이 경우, 낙츨 공지의 응답 body는 광고 markup만 광고 markup을 포함한다(i.e bid.nurl을 호출해서), 이 방법을 사용할 경우, bid.adm 속성은 반드시 생략해야한다.



4.3.2 Markup Served in the Bid                                                         


 이 방법은, 광고 markup이 bid 에게 곧장 반환해준다. 이것은 bid.adm 속성을 통해 가능하다. adm과 낙찰 통지가 모두 리턴됬을 경우, adm 내용이 우선시 됩니다.



4.3.3 Comparison of Ad Serving Approaches                                       


 광고 제공 방법의 각 Exchange 또는 입찰자 중 하나에 대해 변화나 장점이 있다.


 - 낙찰 통지에 광고를 제공한다.

  * 대역폭 비용 감소

  * bidder 추가 확장성


 - Bid 안에 광고를 제공한다.

  * 손실 리스크 감소 : 손실은 광고 markup을 보낼 때 발생하므로, Bid에 넣을 경우 손실에 대한 리스크가 줄어든다.

  또한 이 방법을 사용할 경우 HTTP 통신 실패로 인한 리스크도 줄어든다.

  * 잠재적인 동시성 : exchange는 markup과 낙찰 공지를 동시에 보내는 것이 가능해진다.



4.4 치환 매크로(substitution macros)                                                  



  낙찰 통지 URL과 그것의 형식은 bidder에 의해서 결정된다. 낙찰자(e.g clearing price)는 Exchange에게 특정 정보를 전달하기 위해 낙찰 통지 URL의 뒤에 대체 매크로를 삽입할 수 있다. 낙찰 통지 URL을 호출하기 전에, Exchange는 정의된 매크로 중 어떤 지정된 URL을 검색하고 적절한 데이터로 대체한다. 대체 법적 매크로가 발견되는 곳마다, 구문 정확성에 관계없이 교체 될 것이라는 의미입니다. 또한 매개 변수가 지정되지 않고 공란일 경우, 매크로는 단순히 제거된다.


 치환 매크로는 markup에도 저장 될 수 있다. Exchange는 낙찰 통지 URL과 같은 데이터 치환을 수행합니다.


 Macro                  Description

 ${AUCTION_ID}            BidRequest.id 속성에서 가져오는 입찰 요청 ID

 ${AUCTION_BID_ID}      BidResponse.bidid 속성에서 가져오는 bid의 ID

 ${AUCTION_IMP_ID}      imp.id 속성에서 가져오는 낙찰된 노출 ID

 ${AUCTION_SEAT_ID}     입찰을 진행하는 bidder의 seat ID

 ${AUCTION_AD_ID}        bid.adid 속성에서 가져오는 서비스 하려고 하는 bidder의 광고 markup ID

 ${AUCTION_PRICE}        입찰과 동일한 통화 및 단위를 설정하는 매크로 사용법: ${AUCTION_PRICE:B64}

 ${AUCTION_CURRENCY}  입찰에 (명시적 혹은 묵시적으로) 사용하는 통화. 확인만 가능



교체 이전에, 매크로 데이터 값은 보안을 위해 암호화 알고리즘 또는 값의 난독화를 사용해 인코딩 될 수 있다.

특정 매크로를 인코딩 되도록 지정하려면 앞에 ":x"를 붙여줘서 사용하는 알고리즘을 나타내는 문자열을 이름에

추가하면 된다.


매크로 데이터의 인코딩으로 인한 추가 처리 오버헤드를 아껴서 사용해야 합니다. 엄격하게 Exchange 및 입찰자 사이의 통신을 위해, 인코딩은 일반적으로 불필요한 것으로 간주됩니다.

'모바일 마케팅용어' 카테고리의 다른 글

모바일 광고 마케팅 용어정리  (0) 2016.11.29
OpenRTB 구현 시 참고사항  (0) 2016.10.07
OpenRTB 입찰 요청 파트  (0) 2016.10.07
OpenRTB 기초  (0) 2016.10.07
OpenRTB 개요  (0) 2016.10.07