본문 바로가기

관심사/광고 이야기

엔지니어 관점에서 AdExchange 이해하기 (2) - OpenRTB

이전 포스팅에 이어서, AdExchange에서 사용하는 인터페이스인 OpenRTB에 대한 이야기를 할까 한다.


OpenRtb의 필요성


이전에 이야기한 것처럼 AdNetwork간에서 광고를 서로 사고, 팔아야하는 필요성이 생겨서, AdExchange라는 개념이 생겼다.

그러면서 서로 광고를 교환하기 위한 표준 인터페이스의 필요성이 생겨났다.


애드 익스체인지가 발전하면서 

여러 애드네트워크들 간에, 혹은 여러 익스체인지들 간에 광고 교환 작업들이 발생하게 되었는데,

이 때마다 서로 어떤 파라미터를 던져주면, 어떤 Result 값을 리턴해줄지 조정하는 작업들이 필요하게 되었다.


그때마다 서로 인터페이스를 맞추기는 번거로웠다. 

그리고 한 업체와 포맷을 맞추고, 또 다른 업체와 연동을 하려면 또다시 위의 인터페이스 조정 작업이 필요하게 되었다. 

이 때문에 서로 같은 포맷을 사용해야한다는 필요성이 생겨났다.


그러던 중, 2010년도에 온라인 광고 산업을 대표하는 6개의 회사들의 주도하에서 OpenRTB에 대한 개념이 생겨났다. 

OpenRTB는 광고 판매자 / 구매자 간의 real-time bidding (RTB)를 위한 인터페이스를 의미한다.


Open RTB 기본 개념

OpenRTB를 기반으로 AdExchange를 하는 플로우는 아래와 같다. 


0. 매체사에서 광고를 요청하는 AdRequest가 발생한다. 

    이 때 매체사는 웹 페이지 / IOS App / Android App 등이 될 수가 있다. 

1. 이 때, Exchange 서버는 BidRequest를 Bidder에게 요청한다. 

    Bidder는 광고 RTB ( Real Time Bidding )에 참여하는 업체를 의미하며, AdNetwork 업체라고 볼 수 있다.

    BidRequest를 요청할 때는 매체사 정보, 디바이스 정보, 유저 정보, 비딩 정보 등을 함께 업체에 보내준다.

2. Bidder ( AdNetwork ) 업체는 BidResponse를 내려줘야한다.

    Bidder 서버에서는 내부적으로 이 비딩에 참여할지 결정한 후, 매체사에서 보내준 유저 정보에 적합한 광고를 내려줘야한다. 

    이 때, 비딩 정보와 광고 정보와, 마크업 데이터를 내려줘야한다.

    비딩 정보에는 화폐 단위, 비딩에 참여하는 광고 가격 등이 들어가게 된다.    

    광고 정보에는 광고 시안 이미지 링크, Win notice Url 정보 등이 들어가게 된다. 

    여기서 말하는 마크업 정보는 BidResonse > seatbid > bid > adm 값을 의미한다. ( irb openrtb 규격서의 4.2.3 Object: Bid 참고 ) 

    여기에는 Win Notice URL 태그와 이미지 시안 태그와 Click URL A태그가 들어가있다. 

    이 마크업 데이터가 매체사에 그대로 내려가서 보여질거다.

    예를 들면 구조가 이런식이다.

    "<a href="광고 랜딩 URL (보통 클릭을 잡을 수 있는 URL이 될거다)"><img src="이미지시안.jpb""></a><img src="WinNoticeUrl (이 태그가 불려질 때 WinNoticeUrl이 불려지는 거다)"></img>"


3. 비딩 입찰에서 이기게 되면, WinNoticeUrl이 호출되게 된다.

    비딩 입찰에서 이기면, 위에서 선언해둔 마크업이 매체사에 내려가게 된다. 

    그러면 매체사의 지면에 선언해둔 마크업이 삽입되게 된다. ( 위의 시퀀스 이미지에서 Set Up 단계라고 볼 수 있다 ) 

    그리고 그 지면이 불려졌을 때 마크업에 있던 Win Notice Url이 불려지게 되면서,

    Bidder는 비딩 입찰에 성공했음을 알게됨과 동시에, Bidder의 광고가 노출(Impression)되었음을 알게된다.

    이 플로우를 보면 좀 의아하고, 궁금하게 되는 점이 있을 거다.

    "입찰에 실패했는지는 어떻게 알 수 있을까?"에 대한 이야기이다.

    답은 "알 수 없다"이다.

    이기지 않으면 비딩에 졌는지 알 수 없다. 그리고 광고가 지면에 노출되기 전까지는 내가 비딩에서 이겼는지도 알 수 없다.


정리

위에서 이야기한 RTB Flow를 기본으로 OpenRTB 규격 문서,  OneMobile OpenRTB Protocol 을 참고해서 보면

각 Reqeust Parameter와 Response Data가 의미하는 바가 뭔지 이해가 잘 될 것이다.

세부적인 내용은 위의 링크를 참고하면 된다. 


참고 링크

IRB 홈페이지