스마트 유닛 관리 시스템 · 광고주별 지면 등급 개인화 프로세스
| 버전 | 작성일 | 작성자 | 변경 내용 |
|---|---|---|---|
| v0.3.0 | 2026.08.18 | 전태호 | 광고주 그룹화(EM) 방식 폐기, 광고주별 지면등급 조정(셀 단위 통계 게이트) 방식으로 전면 변경 · 정책 기획서 반영 |
| v0.2.0 | 2026.07.31 | 전태호 | 광고주 그룹화 방향성 추가 (이항혼합 EM 기반 그룹화 방식 채택) |
| v0.1.0 | 2026.07.23 | 전태호 | 최초 작성 (아이데이션 단계) |
현재 지면 등급은 KPI(CVR), 디바이스, 노출형태 기준으로 전체 광고주에게 동일하게 적용된다. 그런데 동일 지면이라도 광고주별 실제 CVR은 편차가 존재하며, 전체 기준으로는 낮은 등급(예: 7등급)인 지면이 특정 광고주 기준으로는 훨씬 높은 등급(예: 3등급) 수준의 성과를 보이는 사례가 확인되었다.
타겟팅/시간 등급은 광고주별 영향도가 크지 않다고 판단되어, 개인화 대상은 지면 등급으로 한정한다.
그룹으로 묶는 방식이 아니라, (광고주, 지면) 조합 하나하나를 통계적으로 검정해 확실한 것만 개인화하는 방식이다. 광고주 노출·소진 조건으로 대상을 추리고, 표본·안정성 2개 게이트(AND)를 통과한 셀만 유의성 검정(게이트③)을 거쳐 등급을 재산정하며, 쇼핑/APP ROAS 세그먼트는 추가로 ROAS 기준 ±1칸 미세조정을 거친다. 상세 로직은 "광고주 개인화" 탭 참고.
| # | 단계 | 구분 | 설명 |
|---|---|---|---|
| 1 | 0단계 — 대상 선정 | 확정 | 광고주 노출 하한(배너 10,000·아이커버 1,500) + 소진 상위 300 지면 + 기존 등급 있는 지면만 대상 |
| 2 | 1단계 — 셀 게이트 ①②③ | 확정 | 표본(클릭·전환) → 월별 안정성, 이 둘을 통과해야 진행. 이후 기존 등급 대비 유의성(Wilson 구간)을 검정하되, 여기서 벗어나지 못해도(겹침/보류) 탈락 처리하지 않고 기존 등급을 유지한 채 다음 단계(2단계)로 진행 |
| 3 | 2단계 — ROAS 미세조정 | 확정 | 쇼핑/APP ROAS 세그먼트 한정, 상대 배수 2.0배 이상/0.5배 이하 시 ±1칸 |
| 4 | 데이터 집계 기간 | 확정 | 최근 6개월 (기존 지면 등급 기준과 동일) |
| 5 | 개인화 대상 지면 | 확정 | 소진액 기준 상위 300개 지면 (동점 시 지면번호 오름차순) |
일배치 광고주 개인화 지면 등급 산출 플로우
그룹으로 묶지 않고, (광고주, 지면) 셀 단위로 통계적 검정을 거쳐 확실한 것만 개인화 (배치는 송출팀에서 진행)
개인화 대상 지면 선정
소진액 기준 상위 300개 지면으로 확정 (향후 개수 확대 가능성 있음)
셀(광고주×지면) 게이트 검정
광고주 노출 하한 통과 + 표본·안정성 게이트(①②) 통과 셀만 유의성 검정(③)까지 진행
집계 기간: 최근 6개월 (기존 지면 등급 기준과 동일)
개인화 등급 산정
셀 실측 CVR 기준으로 해당 지면의 등급을 재산정 (기존 13개 등급 체계, CVR 기준 동일 적용) + ROAS 미세조정 반영
조정 확정 셀만 테이블 저장
advertiser_id + 지면ID + 조정등급(grade_new) + 기존등급(g_glob) 구조로 신규 테이블에 저장 (일배치)
기존 지면 등급 산정과의 관계
기존 지면 등급 산정
KPI(CVR) + 디바이스 + 노출형태 기준, 전체 광고주 데이터로 산정 · 서열화 유지
개인화 등급(후처리)
선정된 지면 한정, 셀(광고주×지면) 단위 CVR로 별도 산정 · 서열화에 영향 없음
두 테이블은 독립적으로 유지되며, 송출 시점에만 조회 우선순위로 결합됩니다. (다음 탭 참고)
실시간 송출 유닛 송출 시 등급 조회 로직
개인화 테이블에 데이터가 존재하는 지면은 별도 조건 없이 무조건 사용, 없으면 기존 지면 등급 사용
광고주별 지면등급 조정
"그룹으로 묶기"가 아니라, 광고주 하나하나에 대해 "이 지면에서는 이 광고주만 등급을 다르게 줘도 될 만큼 데이터가 확실한가?"를 통계적으로 검정하는 방식으로 변경.
| 원본 문서 | 링크 |
|---|---|
| 개발 명세서 (Notion) | app.notion.com/p/enliple/3b9907ce77c780c1a76be2e730f81aaa |
| 참고 대시보드 | advertiser-media-personalization.pages.dev |
용어
| 용어 | 쉬운 설명 |
|---|---|
| 셀 (cell) | 판정의 최소 단위. (광고주, 지면) 한 쌍. "이 광고주가 이 지면에서 보인 실적"을 의미 |
| 세그먼트 | 판정을 독립적으로 돌리는 묶음. KPI_SETUP_TOP_CODE(쇼핑ROAS/DB전환/APP ROAS) + KPI_SETUP_PRDT_CODE(KPI 세부 코드) + ADVRTS_PRDT_CODE(배너/아이커버) + PLTFOM_TP_CODE(웹/모바일), 총 4개 키 조합. KPI가 2개 코드(TOP+PRDT)로 나뉘어 있어 4개가 됨. 세그먼트마다 별도로 계산이 돌아간다고 이해하면 됨 |
| 판정기간 | 실적을 집계하는 최근 개월 수. 기본값 6개월 |
| 기존 업종 등급 (g_glob) | 지금 쓰고 있는, 모든 광고주에게 동일한 그 지면의 등급. DB SMART_UNIT_MEDIA_GRADE 테이블에서 조회. 이 값은 이 로직에서 계산하지 않고 그대로 읽어서 비교 기준으로만 사용 |
| 조정 확정 | 검정을 통과하고, 최종 등급이 기존 등급과 실제로 다른 셀. 이것만 결과로 산출됨 |
전체 흐름 (한눈에)
0단계 — 대상 선정 (필터링)
| 필터 | 조건 | 비고 |
|---|---|---|
| ① 광고주 제외 | CPS 계정 · 수동 제외 목록 · 특정 조합 한정 제외 규칙에 해당하는 광고주 제거 | 집계 전에 적용 — 집계 후에 빼면 지면 기준선(b) 자체가 오염됨 |
| ② 광고주 게이트 | 최근 6개월(판정기간) 노출 합계 ≥ 배너 10,000 / 아이커버 1,500 | 노출 너무 적은 광고주는 통째로 제외 |
| ③ 지면 기준선 | ①·②를 통과한 광고주만으로 지면별 평균 CVR(b(u)) 계산 | 이 값이 "이 지면의 기준선"이 됨 |
| ④ 대상 지면 선정 | 소진액(비용) 상위 300개 지면만 (동점이면 지면번호 오름차순) | 전체 지면 대비 상위 300개로 계산량 통제. 소진 300등에 동점 지면이 많아 2차 정렬 키 필수 |
| ⑤ 기존 등급 조회 | DB에 등급이 없거나(NA/GRADE=99) 조인 실패 시 제외 | 비교 기준 자체가 없으면 판정 불가 |
1단계 — 셀 게이트 ①②③ (셀 하나당 순서대로 검정)
클릭 수가 일정 기준 이상이고, 전환이 최소 1건은 있어야 함. 기준선 CVR이 낮은 지면일수록 더 많은 클릭이 필요함 (예: 기준 CVR 0.1%면 클릭 3,838개 필요, 1.0%면 380개면 충분).
활성 월 수(실적 있는 달의 개수)에 따라 처리가 갈림:
| 활성월 1개 | 탈락 (판정 근거 부족) |
| 활성월 2개 | 검정 없이 통과 (자유도 부족해서 검정해도 의미 없음) |
| 활성월 3개 이상 | 카이제곱(X²) 검정으로 월별 변동이 과도한지 확인 → 과도하면 탈락 |
셀의 실측 CVR로 Wilson 95% 신뢰구간을 구하고, 이 구간 전체가 기존 등급의 CVR 밴드를 완전히 벗어나야만 조정. 구간이 기존 밴드와 조금이라도 겹치면 "표본잡음과 구별 안 됨"으로 보고 조정하지 않음 (보류).
| 확신 상향 | 가장 보수적으로 잡은 CVR 하한조차 기존 등급 밴드 상한보다 높음 → 등급 상향 |
| 확신 하향 | 가장 후하게 잡은 CVR 상한조차 기존 등급 밴드 하한보다 낮음 → 등급 하향 |
| 보류 | 그 외 (밴드와 겹침) → 조정 안 함 |
2단계 — ROAS 미세조정 (WEB>매출(쇼핑ROAS) / APP>매출(쇼핑ROAS) 세그먼트)
DB전환 KPI는 대상 아님. 게이트 ①②를 통과한 셀만 대상 (③ 통과 여부는 무관 — ③에서만 걸린 셀도 여기 들어옴)
3단계 — 조정 확정 판정
1단계 또는 2단계에서 등급이 한 번이라도 바뀌었는데, 최종 등급이 기존 등급과 실제로 다른 경우만 "조정 확정"으로 결과에 산출한다.
산출 결과에 담기는 값
| 컬럼 | 설명 |
|---|---|
| 세그먼트 4개 키 + 광고주 + 지면 | 그 셀의 식별자 (KPI, 상품유형, 플랫폼, 광고주ID, 지면ID) |
| 부여 등급 (grade_new) | 이 광고주에게만 적용될 새 등급 |
| 기존 업종 등급 (g_glob) | 원래 등급. 롤백하거나 역추적할 때 반드시 필요 |
| 근거 클릭 · 전환 (n, k) | 판정에 쓰인 실적 (감사·검증용) |
실제 산출 규모 예시 (6개월 · 소진 상위 300 · 게이트② 적용 기준)
| KPI · 세그먼트 | 조정 셀 | 광고주 수 | 지면 수 |
|---|---|---|---|
| 쇼핑 ROAS · 배너·WEB | 664 | 197 | 62 |
| 쇼핑 ROAS · 아이커버·WEB | 1,002 | 180 | 62 |
| 쇼핑 ROAS · 배너·MOBILE | 700 | 117 | 201 |
| 쇼핑 ROAS · 아이커버·MOBILE | 707 | 161 | 55 |
| DB 전환 · 배너·WEB | 281 | 58 | 45 |
| DB 전환 · 아이커버·WEB | 26 | 7 | 16 |
| DB 전환 · 배너·MOBILE | 143 | 40 | 71 |
| DB 전환 · 아이커버·MOBILE | 22 | 11 | 10 |
| APP ROAS · 배너·MOBILE | 444 | 11 | 212 |
| 단순 합 | 3,989 | 734 | |
| 유일 지면 수 (중복 제거) | 518 |
참고 대시보드: advertiser-media-personalization.pages.dev
전환 하한(k) 비교 송출팀 의견 필요
셀 = (광고주, 지면) 조합 하나. 현재 게이트①은 전환 하한 k≥1을 기본으로 하고 있으나, k≥0(전환 없어도 표본 조건만 맞으면 통과)으로 완화할 경우 조정 규모(셀 수)가 어떻게 달라지는지 비교. 등급 이동폭(칸수) 하한별로 값을 나눠 확인 가능. 적절한 k값은 송출팀에서 의견 제시 필요
| 칸수 하한 | 전환 하한 k≥1 (현재 기본) | 전환 하한 k≥0 | ||
|---|---|---|---|---|
| 상위 300 조정 셀 | 상위 300 유일 지면 | 상위 300 조정 셀 | 상위 300 유일 지면 | |
| ≥ 1칸 | 3,989 | 518 | 7,303 | 586 |
| ≥ 2칸 | 3,437 | 465 | 6,533 | 537 |
| ≥ 3칸 | 3,084 | 432 | 6,039 | 505 |
| ≥ 4칸 | 2,414 | 380 | 4,904 | 455 |
| ≥ 5칸 | 1,685 | 308 | 3,658 | 392 |
| ≥ 6칸 | 1,032 | 248 | 2,394 | 324 |
| ≥ 7칸 | 657 | 186 | 1,632 | 248 |
| ≥ 8칸 | 354 | 108 | 1,007 | 155 |
| ≥ 9칸 | 220 | 59 | 759 | 97 |
| ≥ 10칸 | 66 | 22 | 289 | 46 |
| ≥ 11칸 | 19 | 9 | 114 | 18 |
k≥0으로 완화하면 조정 셀·지면 수가 전 구간에서 약 1.8~2.6배 늘어남. 전환이 아예 없는 셀까지 조정 대상에 포함되는 셈이라, 표본 신뢰도와 조정 규모 사이의 트레이드오프를 검토해 k값을 확정할 필요가 있음.
핵심 파라미터 요약
| 파라미터 | 값 | 의미 |
|---|---|---|
| 노출 하한 | 배너 10,000 / 아이커버 1,500 | 광고주 게이트 (상품별로 다름) |
| M (대상 지면 수) | 300 | 소진 상위 절단 개수 (상한, 실제는 min(300, 집행 지면 수)) |
| 전환 하한 (게이트①) | ≥ 1 | 표본 게이트 |
| 최소 활성월 (게이트②) | 2 | 이보다 적으면 탈락 |
| 검정 최소 활성월 | 3 | 이 이상일 때만 카이제곱 검정 수행 |
| 신뢰수준 | 양측 95% (z=1.96) | Wilson 구간·과분산 검정 공통 |
| 전환 하한 (2단계) | ≥ 10 | ROAS 미세조정 적용 최소 전환 |
| ROAS 상대 배수 임계 | 상향 2.0배 / 하향 0.5배 | 2단계 ±1칸 이동 기준 |
| 판정기간 | 6개월 (기본) | 기존 지면 등급 집계 기간과 동일 |
개발 시 유의사항
셀 하나가 거치는 판정 흐름
(광고주, 지면) 셀 하나가 시작부터 최종 등급 확정까지 거치는 전체 판정 경로
요구사항 정리 — 필수 / 검토 / 선택
개인화 플로우 구현을 위해 확정되어야 할 항목과 우선순위
| 구분 | 항목 |
|---|---|
| 필수 | 지면 등급 테이블에 advertiser_id 추가된 신규(개인화 조정) 테이블 설계 |
| 필수 | 송출 로직에 "조정 테이블 우선 조회 → 없으면 기존 지면등급" 구조 반영 |
| 필수 | 빌링팀 데이터 적재 검증 (송출된 등급 기준 그대로 정확히 적재되는지) |
| 필수 | 개인화 지면 등급 조정 테이블(배치 데이터) 30일 보관 (빌링팀 최소 요구 14일 상회하도록 송출팀과 협의 확정) |
| 필수 | 지면 등급 생성 데이터 집계 기간은 기존 지면 등급 기준과 동일하게 최근 6개월로 적용 |
| 필수 | 개인화 조정 테이블에 적용일시 컬럼 추가 (해당 개인화 등급이 실제로 적용된 일시 · 배치 완료 직후 기록) |
| 검토 | 개인화 대상 지면 개수 300개로 확정 · 추후 확대 가능성 있어 확대 시 배치 성능 재검증 필요 |
| 검토 | 개인화 지면 등급 여부를 키값으로 추가할 경우 송출 테이블 전체 재설계 필요 — 기존 데이터 마이그레이션 및 클릭 데이터 관련 이슈 우려 |
| 검토 | 99등급 산정 기준 보완 방식 (세션 전환 5회 미만 기준의 역설 문제) |
| 검토 | 배치 처리 성능 — 셀(광고주×지면) 단위 계산량에 따른 배치 소요 시간 검증 |
| 검토 | 히스토리 테이블 DDL 검토 및 쿼리 설계 과정에서 빌링팀 추가 요구사항 발생 가능성 있음 (빌링팀 요청) |
| 선택 | 광고주 규모/지면 등급별 차등 최소 보유 기간 (신규 vs 기존 광고주 구분 등) |
| 선택 | 개인화 등급 변경 이력 로그/알림 기능 |
송출팀 우려사항 리스크
| 1 | 현재 지면 등급 배치만으로도 약 1시간 소요 — 개인화 배치 추가 시 소요 시간 추가 증가 예상 |
| 2 | 현재 스마트 유닛 인프라도 간신히 안정화한 상태 (과거 유사 기능 추가 시 인프라 이슈 이력 있음) |