Application: Ad Selection
두 번째 글은 사용자가 지면에 방문해서 광고가 노출될 때까지의 약 1~200ms 동안 어떤 과정을 거치는지를 개괄합니다. 이전 글에서 광고 선택 프로세스는 '지면 - SSP - DSP - SSP - 지면’ 순이라고 했는데, 이번 글은 DSP의 애드 서빙 (Ad Serving)에 초점을 맞춥니다. 글에서 자세히 다루지 못하는 부분은 추후에 좀 더 깊게 다룰 예정입니다. (언젠가는 적겠죠? 힘을 모아주세요.ㅎㅎ).
광고 선택 (Ad Selection)은 크게 필터링과 랭킹으로 나뉩니다 (아래 그림 참조). 개인적으로 필터링을 그냥 Binary ranking이라 보지만 기능상의 차이와 카카오에서 처리 방식의 차이 등으로 개념상 분리했습니다. 참고로 특별한 언급이 없으면 디스플레이 광고를 가정합니다. 검색 광고도 구조적으로 거의 같지만 세부적으로 조금 차이가 있습니다. 대표적으로 검색 광고는 키워드를 매개로 타게팅이 이뤄지고 개인정보와 결합하면 안 된다는 것이 원칙입니다.
필터링은 많은 광고 소재 중에서 현재 사용자에게 노출시켜도 되는 후보군을 추리는 과정입니다. 밑에서 자세히 적겠지만, 당연히 예산이 충분하고 현재 운영중인 광고만 노출돼야 합니다. 그리고 광고주가 지정한 지면이나 시간대, 그리고 사용자에게만 노출돼야 합니다. 엉뚱한 곳에서 엉뚱한 사람에게 광고를 보여주고 광고비를 받을 수는 없습니다. 그 외에도 광고 노출 정책이나 랭킹의 효율성을 위해서 광고 소재를 추려내기도 합니다.
랭킹은 필터링을 통해서 추려진 광고 소재 중에서 현재 사용자가 가장 좋아할 만한, 즉 반응 (클릭이나 전환)할 것 같은 소재를 선택합니다. 뿐만 아니라, 플랫폼의 수익과 광고주의 의지 (?)를 반영한 입찰가 (BA, BidAmount)도 고려합니다. 일반 추천 시스템은 랭킹 스코어 순으로 줄 세워서 상위 N개를 보여주면 되지만, 광고 랭킹은 단순 Ordinary가 아니라 정확한 pCTR과 eCPM 수치가 필요합니다. 광고 노출, 클릭 또는 전환에 따른 약속된 과금액을 정해야 하기 때문입니다. (과금액 결정 방식은 다음에…) 각 DSP는 eCPM이 가장 높은 광고 소재를 선택하고 이 값으로 다시 SSP에 입찰하면, SSP는 최고가의 eCPM으로 입찰한 DSP의 광고를 지면에 노출합니다.
광고 선택 과정 (필터링과 랭킹)을 다시 풀어보면 아래 그림과 같습니다. 그림에서는 모든 과정을 순차적으로 그렸지만, 어떤 기능들은 parallel하게 처리되기도 합니다. 그리고 개념적으로 설명한 것이어서 개별 광고 회사/시스템에 따라서 차이가 있습니다. 기본적으로 광고 랭킹은 사용자별로 이뤄지지만, 처음 2단계는 사용자와 무관하게 처리됩니다.
운영중 여부: 수많은 광고가 시스템에 등록돼있지만 모든 광고가 현재 보이는 것은 아닙니다. 다양한 이유로 광고주는 등록한 광고를 잠시 꺼두거나 삭제하기도 합니다. 그리고 보통 하루 단위로 예산을 설정하는데 일예산을 초과하면 — 예외적인 경우를 제외하고 — 광고를 노출할 수 없습니다.
지면과 시간: 광고주는 자신의 광고가 노출될 지면과 시간을 설정할 수 있습니다. 예를 들어, 카카오 BizBoard에만 노출하도록 설정했다면 다른 지면에 해당 광고를 보여줄 수 없습니다. 뿐만 아니라 설정된 요일과 시간대에만 광고가 노출됩니다. 그리고 DCO (Dynamic Creative Optimation)가 아닌 이상 모든 광고 소재는 사이즈 (또는 가로-세로 비율)이 고정돼있습니다. 인벤토리마다 노출될 수 있는 소재의 사이즈, 비율 또는 종류가 정해져 있기 때문에 인벤토리 규격에 맞는 광고만 선택됩니다. 그리고 최근에는 모바일 환경에서 ‘Wifi 환경에서만 노출’과 같은 옵션도 추가돼서 사용자의 통신 상태도 체크합니다. 예를 들어, 수백 MB짜리 게임을 설치해야 하는 광고라면 비Wife 환경에서 접속해서 바로 인스톨할 가능성이 낮습니다.
타게팅: 광고주는 자신의 광고가 노출되기를 희망하는 사용자 (광고에서는 Audience라 함)를 지정합니다. 예를 들어, 30 워킹우먼들이 좋아하는 의류를 판매하는 쇼핑몰 사장님이라면 20대 후반부터 40대 초반까지의 여성에게만 광고가 노출돼야 한다와 같은 옵션을 지정하고, 이에 해당하는 사용자에게만 광고가 노출됩니다. 보통 성별, 연령, 지역 그리고 관심사 등을 지정합니다. 뿐만 아니라, 사이트 방문 고객에게만 광고하는 리타게팅, 기존 고객과 유사한 고객군을 찾아서 광고하는 LAL (LookALike) 타게팅, 광고 및 마케팅 퍼널에 맞게 지정하는 코호트 타게팅 등의 여러 자동화된 타게팅도 존재합니다. 검색 광고나 문맥 광고의 경우 키워드 또는 주제로 필터링하기도 합니다.
프리퀀시 캐핑과 네거티브 피드백: 한 사용자에게 특정 광고주의 광고 (소재)가 반복해서 노출되면 사용자는 해당 광고에 피로감을 갖고 오히려 싫어하게 됩니다. 그래서 광고주나 광고 소재마다 특정 기간 동안 최대 노출회수를 지정하기도 합니다. 이를 프리퀀시 캡이라 부르는데, 기간 중 FC는 초과한 광고주 또는 소재는 더 이상 노출되지 않도록 제어합니다. 일반 사용자들은 인터넷 서비스에서 (모든) 광고가 노출되는 것을 별로 좋아하지 않습니다. 그래서 사용자로부터 다양한 명시적, 암묵적 피드백을 받아서 사용자가 싫어하는 광고는 더 이상 노출되지 않도록 제어합니다. 때로는 해당 사용자에게 한동안 모든 광고가 노출되지 않도록 하기도 합니다.
후보군 추출 (Candidate Selection): 위의 과정을 거쳐서 남은 광고 소재들의 예측 반응률을 계산합니다. 그런데 더 정교한 예측을 위해서 더 많은 정보와 더 복잡한 예측모델을 사용하게 됩니다. 이는 inference 시간이 증가함을 뜻합니다. 서두에 광고 선택의 전 과정이 1~200ms 내에 이뤄져야 한다고 했는데, 반응률 예측 시간이 길어지면 광고 선택에 실패하고 time-out 그리고 No AD 상황이 발생합니다. 덜 좋은 광고가 노애드보다는 낫습니다. 그래서 지정된 시간 내에 연산이 가능하도록 계산할 광고 소재 후보군을 추가로 추리는 과정이 필요하기도 합니다. 최근 DNN이 활성화되면서 C/S 과정은 거의 필수가 됐습니다. (자세한 설명은 또 나중에)
반응률과 eCPM: 특정 광고 소재를 사용자에게 보여줬을 때 사용자가 이를 클릭할지 (또는 구매할지) 여부를 예측하고 광고주가 제시한 입찰액을 고려해서 eCPM (= BA * pCTR * 1,000)이라는 기준 값을 계산합니다. 때로는 eCPM에 소재의 품질이라든가 전환가능성 등의 점수를 추가해서 보정하기도 합니다. 반응률 예측과 과금 방식은 설명이 길어져서 다음에...
SSP 옥션: 이상의 과정을 거쳐서 각 DSP는 최고의 eCPM을 갖는 광고 소재로 SSP에 입찰합니다. SSP는 여러 업체의 광고 중에서 다시 최고가의 광고를 선택해서 노출합니다. 이때 Reserved Price와 Bid Floor 개념이 적용되기도 하는데, 이도 추후에 경매 Auction에 관해서 설명하는 글을 따로 적겠습니다.
이상으로 대략적인 광고 선택 과정을 설명했습니다. 기회가 되는대로 더 자세한 설명이 필요한 주제는 별도 포스트로 남기겠습니다. 글을 적을 의지가 생겨야 할 텐데, 힘을 모아주세요. (굽씬)