전편에 이어 Real Time Bidding에 대해서 조금 더 알아봅니다. 여러 편의 논문들과 유튜브 강의들을 보면서 알게 된 사실은 일단 RTB 메커니즘이 모두 확률 계산에 기반해서 돌아간다는 점입니다. RTB 기반의 광고시장에서는 모든 것이 확률 계산을 통해 예측되고 이를 바탕으로 action이 일어나고 최적화됩니다.
전편에서 RTB가 작동하는 원리에 대해서 아래의 간단한 도식으로 소개했었습니다.
이 시스템이 작동하기 위해서 DSP에서는 기본적으로 몇 가지 확률을 예측해야 합니다.
Ad Request가 발생할 확률(유저의 정보 X의 함수로 표현됩니다)
Bidding 하여 광고 슬롯을 Win 할 확률(유저의 정보 X와 bidding가격 B의 함수로 표현됩니다)
유저가 광고를 클릭할 확률(유저의 정보 X와 bidding가격 B의 함수로 표현됩니다)
광고주는 머신러닝과 수학적 계산을 통해 확률을 예측하여 광고 경매를 진행하게 됩니다. 위 3가지 확률의 함의에 대해서 조금 더 설명해 보도록 하겠습니다.
Ad Request가 발생할 확률 : 유저가 웹이나 앱에서 시간을 보내며 활동을 할 때 광고를 노출할 수 있는 기회가 생깁니다. 광고 슬롯의 종류와 광고가 노출되는 유저의 특성에 따라서 Ad Request의 발생 빈도가 각각 다를 텐데요, 이때 발생 빈도는 특정한 확률 분포로 모델링할 수 있습니다. 예를 들어 XX일보 페이지의 30대 남자가 발생시키는 Ad Request는 1시간에 3000번 발생하는 분포를 따른다 이렇게 가정할 수 있다는 것입니다.
Bidding 하여 광고 슬롯을 Win 할 확률 : 광고주가 모든 Ad Request를 다 구매할 수 있는 것은 아닙니다. 경매를 통해 다른 광고주들과 경쟁해야 하기 때문입니다. DSP는 과거 데이터를 통해 특정 Ad request에 대해 특정 bid를 제시했을 때 광고를 Win 할 수 있는 확률을 계산합니다. 그리고 Winning Bid의 확률 분포를 모델링할 수 있습니다.
유저가 광고를 클릭할 확률 : 광고주가 광고 슬롯을 Win 했을 때 유저가 해당 광고를 클릭할 확률 역시 과거 데이터를 통해서 예측이 가능합니다. 이 역시 Winnig Bid의 분포와 마찬가지로 유저의 정보와 Bid에 의해서 영향을 받게 됩니다.
위 확률만 구할 수 있으면 광고를 집행하는 총 기간 동안의 기대비용(Expected Cost), CPC, CPM 등을 예측할 수 있습니다. 해당 기간 동안 몇 번의 Ad Request를 받고, 이를 얼마의 Bid에 몇 번 정도 노출시키고, 몇 번의 클릭이 예상되는지를 계산할 수 있기 때문입니다.
Bid는 어떻게 결정되는가?
RTB에서 경매는 impression단위로 일어납니다. 하루에도 수십억 건의 impression이 발생하는 시장에서 광고주가 모든 impression에 대해서 일일이 경매 가격을 정할 수는 없을 것입니다. 따라서 기본적으로 bid는 DSP의 최적화 설루션에 의해서 자동으로 결정됩니다. CPC과금이나 CPI과금 방식은 사실 DSP에서 고객사가 요구한 CPC 또는 CPI보다 낮아질 수 있게 예측을 통해 impression기반으로 bidding을 하여서 마진을 남기는 방식입니다.
bid를 결정짓는 두 가지 가장 중요한 요소는 효용과 비용입니다. 광고로 인하여 광고주가 얻게 되는 효용과 광고를 노출시키는데 드는 비용을 변수로 하는 함수에 의하여 bid가 결정되게 됩니다. 효용을 심플하게 클릭의 가치라고 한다면(구매전환 또한 클릭 후 발생하기 때문에 이러한 가치 또한 클릭의 가치로 환산해서 계산할 수 있습니다) 클릭할 확률은 bid에 의해서 영향을 받고 bid는 또 클릭할 확률에 의해서 영향을 받게 되는 아주 복잡한 수식이 나오게 되는데요, 이를 최적화 문제로 전환해서 풀고 이때 만약에 예산의 제약이 없다면 GSP, VCG에서 모두 최적의 bid는 클릭의 가치(노출의 실제 가치) 그 자체가 됩니다. Truthful bidding이 최선의 전략이 되는 것입니다.
만약에 비용 제약이 있을 경우에는?
하지만 보통 캠페인에는 예산 제약이 있고 최적의 bid를 계산하는 수식의 해를 찾는 데 있어서 예산이 제약조건으로 작용합니다. 이때 DSP의 머신러닝 알고리즘은 예산을 다 소진할 때쯤 경매할 수 있는 광고도 다 소진되는 방향으로 최적화 문제를 풀게 됩니다. 그리고 그 결과 bid는 4가지 요소 : 노출의 가치, 예산, 광고 기간 동안의 총 ad reqeust, 시장 경쟁에 의해서 결정되게 됩니다. bid는 당연히 노출의 가치와 정비례하고 ad exchange의 경매 rule에 의해서 달라지긴 하겠지만(예를 들어 아래 첨부한 영상 자료를 보다 보니 페이스북에서는 광고주에게 가치가 큰 유저에게 광고가 지나치게 많이 노출되는 것을 막기 위해 유저가 광고를 본 횟수가 많을수록 일부러 bid를 높이는 알고리즘이 있다고 합니다) 기본적으로 예산이 클수록 bid가 높아지고, 시장 경쟁이 치열할수록 bid가 높아지고, 총 ad request가 많을수록 bid는 낮아집니다.
핵심만 간단히 정리하자면!
Ad exchange의 경매 룰이 다르고 DSP의 예측 알고리즘이 다르기 때문에 일률적으로 적용하기는 힘들겠지만 기본적인 RTB의 작동 원리는 위에서 언급한 내용을 통해 이해할 수 있습니다.
이번 편을 정리하면서 알게 된 핵심만 정리해 봅니다.
데이터와 머신러닝을 통해 ad request, winning bid, user conversion(or click)을 예측할 수 있다.
impression 단위로 경매가 진행되며 bid는 노출의 가치, 예산, 광고 기간 동안의 총 ad reqeust, 시장 경쟁에 의해 수학적으로 결정된다.
이번 편을 정리하면서 추론한 내용만 정리해 봅니다.
bid와 impression의 가치는 정비례한다 전환의 가치가 높을수록 bid가 높아지기 때문에 bid를 높이는 요인이 높은 전환의 가치인지 아니면 나머지 요인인지 잘 구분해 낼 수 있어야 높은 ROI를 달성할 수 있다.
전환이나 impression에 대한 광고주의 가치를 정해주지 않는 경우 알고리즘은 정해진 기간에 알맞게 예산을 소진하는 것을 목표로 적정 bid를 찾을 것이다. 하지만 해당 bid가 가장 낮은 가격인지는 확신하기 힘들다. 그래서 manual bidding도 시도해 보는 것이 좋을 것 같다.
bid가 너무 높아지지 않도록 보수적으로 캠페인을 운영하려면 캠페인 예산을 너무 크지 않게 설정하는 것이 좋을 것이다.