DEV Community

Cover image for Pacing — 광고 예산을 하루에 고르게 쓰는 알고리즘
HyunSeok Jeong
HyunSeok Jeong

Posted on • Originally published at blog.trysitely.com

Pacing — 광고 예산을 하루에 고르게 쓰는 알고리즘

들어가며

같은 일일 예산을 가진 두 캠페인이 있다고 합시다. A 캠페인은 오전 11시에 예산이 다 소진되어 점심시간 이후부터 자정까지 광고가 안 나갑니다. B 캠페인은 자정 직전까지 부드럽게 예산을 소진하면서 시간대별 효율을 극대화합니다. 두 캠페인의 차이는 pacing 알고리즘입니다. 이 글은 pacing이 하는 일, 표준 알고리즘 세 가지(throttling·bid 조정·예측 기반), 그리고 마케터가 실제로 만질 수 있는 설정 다이얼을 정리합니다. 마지막에는 "오전에 예산을 다 써버리는 캠페인"을 진단하고 고치는 실전 시나리오를 다룹니다.

시간대별 예산 소진 곡선과 pacing 알고리즘 다이어그램
하루를 단위로 보는 작은 게임 — 매 분 입찰을 어떻게 분배하는가

왜 pacing이 필요한가

입찰 자동화가 만드는 문제

광고 캠페인은 보통 일일 예산 또는 캠페인 총 예산이 정해져 있습니다. 입찰 자동화가 입찰가를 매번 재계산할 때, 아무 통제 없이 모든 노출에 입찰하면 좋은 기회가 몰린 시간대에 예산이 빠르게 소진됩니다.

📌 이 글의 전제

자동 입찰 광고를 운영하고 일일 예산이라는 단어를 일상에서 쓴다고 가정합니다. 입찰 ML의 디테일은 모르더라도 "예산 소진 속도"라는 개념은 받아들인다고 가정합니다.

Pacing이 해결하는 것

  • 하루 동안의 예산 분배 균형
  • 시간대별 노출 도달 최대화
  • 단가 안정성 (예산 빠르게 쓰면 단가 비싸짐)
  • 운영 가시성 (마케터가 시간대별 성과 비교 가능)

Pacing 없이 일어나는 일

  • 오전에 예산 다 소진 → 오후 노출 0
  • 첫 광고 노출 시간대가 비싸 단가 폭주
  • 시간대별 분포가 사용자 활성 시간과 불일치
  • 매일 다른 시간대에 예산 소진 → 비교 어려움

Pacing 알고리즘 세 가지

알고리즘 1 — Throttling (확률적 입찰 참여)

가장 단순한 방식. 일일 예산과 현재 시각을 보고 매 입찰에 일정 확률로만 참여합니다.

P(bid)=remaining budgetremaining time×expected hourly bid count P(\text{bid}) = \frac{\text{remaining budget}}{\text{remaining time} \times \text{expected hourly bid count}}

예산이 많이 남으면 확률 100%로 입찰하고, 빠르게 소진 중이면 50%로 낮춥니다. 단순하고 안정적이지만 효율 최적화가 부족합니다. 좋은 기회와 나쁜 기회를 구분하지 않고 일정 확률로 다 걸러냅니다.

아래 Python 코드는 ASAP pacing과 throttling pacing이 하루 동안 예산을 얼마나 다르게 소진하는지 시뮬레이션합니다.


python
Enter fullscreen mode Exit fullscreen mode

Top comments (0)