토스는 어떻게 광고를 보여줄까? 토스애즈 ML 톺아보기
안녕하세요, 토스 Ads Performance 팀 ML Engineer 김영호입니다.
토스앱 진입 시 확인하실 수 있는 다양한 광고들은 어떤 과정을 거쳐 유저에게 노출될까요? 이 글에서는 토스 광고 추천 시스템의 전체 흐름과 그 안의 머신러닝 활용 방식을 소개해 드리겠습니다.
웹사이트나 앱에서 볼 수 있는 대부분의 광고는 실시간 입찰 방식을 통해 노출됩니다. 매체에서 광고 지면에 노출 기회가 발생하면 해당 정보를 광고주에게 전달하고, 광고주는 기회에 대한 가치를 평가해 자신이 지불할 금액을 산정하여 입찰에 참여하죠. 제출된 입찰가 중 가장 높은 금액을 제시한 광고주의 광고가 최종적으로 해당 지면에 노출됩니다.

실시간 입찰에는 여러 광고 플랫폼이 관여하는데요, 대표적으로 SSP(Supply-Side Platform)와 DSP(Demand-Side Platform)가 있습니다. 이 둘은 실시간 입찰 과정에서 유기적으로 연동되어 매체에 안정적인 수익을, 광고주에는 효율적인 광고 집행 및 성과 최적화를 제공합니다.
- SSP: 매체가 보유한 지면을 효율적으로 관리・판매하도록 돕는 플랫폼입니다. 광고 노출 기회마다 자동으로 여러 DSP를 연결하여 최적의 입찰을 유도함으로써 매체 수익을 극대화합니다.
- DSP: 광고주를 대신해 실시간 입찰에 참여하며, 설정된 예산과 목표에 따라 최소 비용으로 최대 광고 성과를 달성하도록 돕는 플랫폼입니다.
토스는 리스트・모먼트 배너 등 다양한 광고 지면을 보유한 매체이자, 토스애즈 플랫폼을 통해 광고주가 토스 앱 내에서 손쉽게 광고를 집행하고 최적화할 수 있는 환경을 제공합니다. 따라서 광고 요청부터 노출까지의 모든 과정이 토스 내에서 이루어지죠.
유저 접속부터 광고 노출까지
유저가 광고 지면이 있는 토스 앱 화면에 접속하면 광고 요청이 발생하고, 입찰을 통해 최적의 광고가 선정되어 노출됩니다. 이 과정은 크게 Targeting, Filtering, Ranking의 세 단계로 이루어지며, 각 단계에서 머신러닝이 활용돼요.
1. Targeting
유저 정보를 기반으로 노출할 광고를 선별하는 과정이에요. 광고주마다 캠페인 목표와 원하는 타겟 유저가 다르기 때문에, 광고 노출 대상인 유저가 설정된 타겟에 포함되는지 확인합니다. 포함되지 않을 경우 해당 광고는 제외돼요.
성별, 연령대, 직업 등의 특성을 바탕으로 유저를 세분화하여 광고를 집행하는 전략을 오디언스 타겟팅(Audience Targeting)이라고 합니다. 광고주는 인구통계학적 정보만으로도 타겟팅 그룹을 만들 수 있지만, 많은 광고주들은 자신의 상품을 구매한 유저와 유사한 특성을 지닌 잠재 고객을 타겟팅하고 싶어하죠.
이러한 니즈를 충족시키기 위해 Lookalike 모델을 활용해 광고주가 타겟으로 설정한 오디언스와 행동 패턴이 유사한 잠재 고객을 찾습니다. 유저의 행동 로그를 학습하거나 Two-tower 모델을 통해 유저와 광고 간의 상호작용을 학습하여 유저 임베딩을 생성하고, 주어진 오디언스와의 임베딩 유사도를 계산해 잠재 고객을 선별해요.

2. Filtering
이 단계에서는 유저에게 제공할 광고 후보를 선별하고, 광고주의 예산 및 광고 품질을 고려한 필터링 과정을 수행합니다.
- 광고 후보군 선정(Candidate Selection): 유저를 타겟팅하는 수십만~수백만 개의 광고 중에서 사용자가 관심을 가질 만한 광고를 빠르게 선택해야 해요. 모든 광고를 실시간으로 개별 평가하면 지연 시간이 늘고 연산 비용이 크게 증가하므로, 유저의 관심사를 기반으로 광고 후보군을 선별합니다. 이 과정에서는 정확성도 중요하지만 대규모 광고 풀에서 알맞은 후보군을 빠르게 추출하는 것이 중요한데요. 이 단계에서는 주로 Two-tower 모델을 활용해 유저와 광고에 대한 임베딩을 생성하고, 유사도 검색을 통해 관련 광고를 빠르게 탐색합니다.
- 예산 소진 조절(Pacing): 광고주가 설정한 캠페인 예산을 기간 내에 균등하고 안정적으로 소진하도록 광고 노출 및 입찰을 제어합니다. 과거 입찰 로그를 바탕으로 시간대・요일 등 컨텍스트에 따른 트래픽을 예측하고, 이를 바탕으로 사용 가능한 예산을 산정하고 실시간으로 소진 속도를 조절해요.
- 노출 빈도 제한(Frequency Capping): 동일한 광고가 한 유저에게 일정 기간 내에 노출될 최대 횟수를 설정하여 광고 피로도를 줄입니다. 하루 최대 3회와 같이 고정 캡을 설정할 수 있지만, 유저의 행동 패턴에 따른 최적 빈도를 예측해 적용할 수 있어요.
3. Ranking
이전 단계에서 선별된 후보 광고의 입찰가를 산출해 노출될 광고를 결정합니다. 입찰가는 매체의 기대 수익을 의미하는 eCPM(effective Cost Per Mille, 1,000회 노출당 비용)으로 표현하며, 이 값을 기준으로 광고 순위를 매겨요. eCPM은 광고주가 클릭당 지불하는 비용(CPC, Cost Per Click)과 광고의 클릭률(CTR, Click-Through Rate)을 기반으로 계산합니다.
이때 실제 CTR은 광고가 실제로 노출된 후에야 알 수 있기 때문에, 노출 전 단계에서는 유저, 광고, 컨텍스트 정보를 기반으로 CTR을 예측하여 사용합니다. CTR 예측 모델은 광고 ID, 유저 속성 등 고차원의 희소 특징(Sparse Feature) 간의 상호작용을 효과적으로 학습해야 하기 때문에, 주로 FM(Factorization Machine), DeepFM, DCN(Deep & Cross Network) 구조를 사용해요.
또한, 광고주는 각 노출 기회마다 전환율(CVR, Conversion Rate)을 예측해 입찰가를 조절할 수 있습니다. 전환율이 낮다고 예상되는 상황에서는 클릭당 비용을 낮춰 불필요한 지출을 최소화하고, 전환율이 높다고 예상될 때 클릭당 비용을 높여 경쟁 우위를 차지할 수 있어요.
결론
앞서 살펴본 광고 노출 과정 이외에도 머신러닝은 광고 운영 전반에서 다양하게 활용될 수 있습니다.
- 동적 입찰가 조절: 광고주가 설정한 클릭당 비용은 고정된 값이기 때문에 실시간으로 변화하는 경쟁 상황에 빠르게 대응하지 못해요. 이를 보완하기 위해 DQN(Deep Q-Network)와 같은 강화학습 모델을 사용하여 광고 운영 현황에 따라 클릭당 비용을 동적으로 조절함으로써 광고 효율 저하를 방지합니다.
- 광고 소재 최적화: 사용자에게 노출되는 광고 소재의 성과를 향상시키기 위해 생성형 AI를 활용하여 다양한 소재를 자동 생성・테스트하고 최적의 소재를 찾습니다.
토스애즈는 광고 플랫폼의 기반을 만들어가는 단계로, 광고 시스템 전반에 필요한 머신러닝 모델을 초기부터 설계하고 고도화할 수 있어요. 광고는 머신러닝 모델의 작은 변화가 바로 비즈니스 성과로 이어지는 분야입니다. 다양한 실험을 통해 머신러닝 모델로 비즈니스 성과를 만들어가고 싶으신 분들의 많은 지원을 기다립니다.