제주를 떠난 후로 브런치에 글을 거의 올리지 못하고 있었는데 그냥 방치할 수는 없기에 달고나 (DALGONA: Data, Algorithms & Applications)로 명명한 새로운 매거진을 개설해서 적당한 주제가 있고 의욕이 생길 때마다 글을 적을 예정입니다. 어제저녁에 급하게 첫 글을 올렸는데, 티스토리에도 계속 함께 업데이트하겠습니다. (티스토리에는 애드센스도 있어서ㅎㅎ)
=== 아래는 브런치 글과 동일 (맞춤범 제외ㅎㅎ) ==
시작했으니 첫글은 남겨야겠기에 일단 적습니다.
첫 글부터 데이터나 알고리즘을 다루는 것보다는 최근 저의 주요 애플리케이션인 광고 시스템을 개괄적으로 소개하는 글을 적기로 했습니다. 이미 카카오 AI리포트에도 적었고 iF카카오에서도 비슷한 내용을 발표했지만 — 그리고 팀에 신입이 들어오면 매번 같은/비슷한 내용을 반복해서 교육하지만 — 글로 자세히 적은 적은 없었고, 앞으로 필요한 경우 레퍼런스로 사용하기 위해서 적습니다. 주로 광고 시스템이 어떻게 구성됐고 실시간 광고 요청에서 선택, 그리고 노출의 과정을 개괄적으로 설명할 겁니다.
CMS. 광고 시스템을 설명하기에 앞서 CMS (Content Management System)부터 소개해야 합니다. 여러 번 신입들을 교육하면서 놀랐던 점은 — 경력직이든 생판 초짜 신입이든 — CMS를 처음 들어봤다는 얘기를 거의 매번 듣습니다. 매일 인터넷에 접속해서 다양한 글을 적고 또 보면서 CMS를 모른다는 게 참 의아했습니다. CMS는 아래의 그림과 같이 인터넷 공간에 올릴 글 등의 콘텐츠를 작성해서 퍼블리싱하고, 또 퍼블리싱된 콘텐츠가 어떻게 소비되는지를 확인하는 인터넷 서비스의 가장 기본 시스템입니다. 보통 언론사 기자들이 글을 작성해서 올리는 시스템을 CMS라 통칭하기도 하고, 지금 브런치에 글을 적고 있는 editor과 독자들이 내 글을 읽은 통계를 확인하는 페이지를 브런치 CMS라고 보면 됩니다. 여담으로 Vox Media라는 미국 회사의 CMS가 유명합니다.
광고에도 CMS가 존재합니다. 광고 CMS는 아래 그림과 같이 크게 SSP, DSP, DMP라는 세개의 플랫폼으로 이뤄졌습니다. 이들 각각의 플랫폼의 역할과 그 사이의 정보 흐름을 자세히 설명하겠습니다.
** 아래에서 여러 용어가 등장하는데 어떤 용어는 광고업계에서 일반적으로 사용하는 용어지만, 어떤 용어는 카카오 내부에서만 사용하는 용어일 수도 있습니다. 대부분은 구글이나 페이스북 등에서도 통용되는 용어지만 같지 않을 수도 있습니다.
SSP (Supply-Side Platform)는 사용자가 웹 또는 앱에 접속해서 광고를 보여줄 때 지면과 연결된 플랫폼입니다. 그래서 기본적으로 광고가 노출되는 지면 (Media, Placement)과 지면의 주인 (Publisher), 그리고 광고가 노출될 인벤토리 (광고유닛, 슬롯)을 관리하는 것이 첫 번째 역할이고, 두 번째 역할은 지면에서 온 광고 요청을 여러 DSP들에 전달해서 입찰을 붙이고 최고가의 광고를 낙찰해서 지면에 보여주는 광고 서빙입니다. 아래 그림에서는 하나의 DSP만 그려놨지만 협약된 여러 DSP들에게 동시에 광고를 요청하고 가장 높은 입찰가를 제시한 DSP의 광고를 화면에 보여줍니다. 광고가 노출되는 지면을 제공한다는 의미에서 Supply-side라 부릅니다. 역으로 광고주가 접하는 쪽은 ‘광고를 제공하는 것’이 아니라 ‘지면을 요구하는 것’이어서 아래에서 설명하듯이 demand-side가 됩니다.
DSP (Demand-Side Platform)는 광고주와 접하는 플랫폼으로서 광고주와 그들이 등록한 광고전략과 소재를 관리하면서 SSP의 광고요청에 대응해서 가장 적합한 광고 소재를 선택해서 입찰하는 역할을 합니다. SSP는 노출 기준으로 최고가의 광고를 선택하는 다소 간단한 메커니즘이 작동하지만, DSP의 광고 선택은 다소 복잡해서 데이터 분석과 기계학습의 도움이 필요합니다. 온라인 광고의 초창기의 브랜딩 위주의 광고는 1,000번 노출마다 광고비를 지불하는 CPM (Cost Per Mille) 방식이었지만, 차츰 사용자의 방문 (클릭)과 성과 (구매)가 발생할 때마다 일정 금액을 지불하는 CPC/CPA (Cost Per Click, Cost Per Acquisition) 등의 다양한 과금 방식이 등장했습니다. 그래서 광고주의 희망 입찰가 (BA, Bid Amount)에 더해서 사용자들의 다양한 반응을 함께 고려해야 합니다. 이때 반응률 (클릭률 CTR Clickthrough Rate, 전환율 CVR Convertion Rate)을 예측하는데 기계학습 알고리즘이 필요합니다.
DMP (Data Management Platform)는 SSP와 DSP에서 발생하는 광고요청 - 광고 선택 - 광고 노출/클릭 등의 일련의 과정에서 발생하는 다양한 로그를 수집, 저장하는 곳입니다. 이렇게 수집된 데이터는 1) 타게팅을 위한 사용자의 정보 (피쳐)를 추출하는 데 사용되거나, 2) DSP에서 반응률 예측모델을 학습하는 데 사용되거나, 또는 3) SSP에서 각종 광고 노출 정책 (e.g., bid floor)를 정하는 데 사용됩니다. DMP는 연결된 SSP/DSP가 제공하는 광고 집행 이력 외에도 내외부의 다양한 사용자 정보를 수집, 저장하는 역할도 합니다.
통상의 광고 집행 과정은 다음과 같습니다.
-
사용자 (광고에서는 Audience라 부름)가 지면에 접속하면 연결된 SSP에 광고를 요청함
-
SSP는 광고를 요청한 지면과 현재 사용자의 정보 (식별자)와 함께 DSP에 광고를 요청함
-
DSP는 현재 등록된 광고들 중에서 여러 필터링 조건에 맞는 광고를 우선 추리고, 다시 기대수익 (eCPM)이 가장 높은 광고를 선택해서 SSP에 입찰함
-
-
필터링 조건: 운영중 여부, 광고 예산, 지면/인벤토리의 규격 (광고 사이즈 또는 비율), 광고주가 원하는 노출 요일/시간 여부, 광고주가 희망하는 사용자의 속성 (타게팅), 프리퀀시 캐핑 등
-
eCPM (effective CPM)은 다양한 과금 타입의 광고를 모두 CPM으로 한산한 값으로, eCPM = either (CPM, BA * pCTR * 1,000, BA * pCTR * pCVR * 1,000)으로 구함
-
-
SSP는 여러 DSP로부터 받은 광고 중에서 eCPM이 가장 높은 광고를 선택해서 노출함 (보통 reserve price와 bid floor 개념이 존재함)
-
만약 사용자가 노출된 광고를 클릭해서 광고주의 사이트에 방문해서 특정 액션을 취하면 미리 설치된 pixel/SDK/MAT 등을 통해서 사용자의 행동 이력을 DMP로 제공
광고 서빙 관점에서의 SSP와 DSP의 역할을 앞으로 더 많은 설명이 있을 것입니다. 글을 시작할 때 CMS가 콘텐츠를 올리는 것과 사용자의 반응 통계를 보는 것으로 역할을 크게 구분 지었습니다. SSP는 지면과 퍼블리셔, DSP는 광고주와 광고를 관리한다고만 적었는데, 퍼블리셔가 지면의 스펙을 제공하고 광고주가 광고를 등록하는 것이 첫 번째 역할이라면, 두 번째 역할로 퍼블리셔는 SSP를 통해서 자신의 지면에서 발생한 광고 상황 (결국 수익)을 확인할 수 있고, 광고주는 DSP를 통해서 광고 집행 이력의 다양한 리포트를 받아볼 수 있습니다.
길어져서 첫글은 여기까지 적겠습니다. 혹시 중간중간에 등장하는 모르는 개념이나 용어가 궁금하면 댓글 남겨주시면 바로 대댓글을 남기거나 다음 글에 참고해서 적겠습니다.