Shapley value 어트리뷰션 — 채널 기여도를 공정하게 나누는 게임이론
한 전환에 채널 5개가 모두 닿았을 때 누구 공인가요. last-click은 마지막만, first-click은 처음만 봅니다. Shapley value는 모든 순서를 평균내 채널 기여도를 공정하게 나눕니다. 게임이론에서 빌려온 어트리뷰션 표준 도구의 직관과 마케팅 적용.
“이 전환은 검색 → 디스플레이 → 이메일 → 페이스북 → 직접 방문 5단계를 거쳤어요. 누구 공인가요?” Last-click은 직접 방문에 100% 공을, first-click은 검색에 100% 공을 줍니다. 둘 다 운영적으로 거짓말입니다. Shapley value는 게임이론에서 빌려온 도구로, 5개 채널이 들어왔다 빠졌다 하는 모든 경우를 평균내 공정하게 기여도를 나눕니다. 마케터가 채널 예산 배분에 가장 자주 쓰게 될 어트리뷰션 도구를 정리합니다.
1. last-click·first-click이 거짓말하는 이유
마케팅 어트리뷰션의 출발점은 단순한 질문입니다.
한 전환에 여러 채널이 닿았다. 매출을 어떻게 채널별로 나눠야 공정한가.
가장 단순한 답이 last-click입니다. 마지막에 닿은 채널이 100% 공을 가져갑니다. Meta·Google Ads·GA4 디폴트가 이 모델입니다. 운영적으로 단순하지만 두 가지 거짓말을 합니다.
- 마지막 채널이 정말 효과를 만든 게 아니라 “이미 살 사람의 마지막 클릭”일 수 있음
- 검색·디스플레이처럼 인지·고려 단계를 만든 채널의 기여가 0으로 떨어짐
first-click은 반대 방향의 거짓말입니다. 처음 닿은 채널이 100% 공이지만, 그 사이의 4단계 채널이 안 닿았으면 전환이 없었을 수도 있습니다. 둘 다 한 채널에만 100%를 몰아주는 단순화의 비용이 있습니다.
다중 터치(multi-touch) 어트리뷰션은 이 한계를 풀려는 시도입니다. 가장 단순한 게 균등 분배(linear) — 5개 채널이 닿았으면 각자 20%. 더 정교한 게 시간 가중(time-decay) — 전환에 가까운 채널일수록 더 많은 공. 그런데 이 모델들은 모두 “왜 이렇게 나누는 게 공정한가”의 답이 임의적입니다.
Shapley value는 이 임의성을 게임이론으로 풀어냅니다 — “공정한 분배”의 수학적 정의 위에서 채널 기여도를 계산합니다.
2. 협력 게임의 직관 — “있고 없고”의 차이
Shapley value를 마케팅 외 자리에서 한 번 보면 직관이 잡힙니다. 4명의 사람이 같이 일을 해서 매출 100을 만들었을 때 어떻게 나눠야 공정한가.
핵심 질문은 다음입니다.
어떤 사람이 합류함으로써 팀 매출이 얼마나 늘었는가, 그것을 모든 가능한 합류 순서에서 평균낸다.
4명이 합류하는 순서는 4! = 24가지입니다. 각 순서에서 사람 한 명을 추가했을 때의 한계 기여도를 모두 계산하고 평균냅니다. 이게 그 사람의 Shapley value입니다.
마케팅으로 가져오면 채널이 사람입니다. 채널 5개가 어떤 순서로 합류해 전환이 발생했는가 — 5! = 120가지 순서를 모두 고려합니다. 각 순서에서 채널 하나가 합류했을 때의 한계 전환 증가분을 평균냅니다.
수식으로 적으면 다음과 같습니다.
여기서 는 채널 부분집합 가 만든 전환수, 는 채널 의 Shapley value입니다. 무거워 보이지만 의미는 단순합니다 — “있고 없고”의 차이를 모든 부분집합·모든 순서에서 평균.
2-1. 공정성 4공리
Shapley value가 “유일한” 공정 분배인 이유는 다음 4가지 공리를 동시에 만족하는 분배가 이것뿐이기 때문입니다.
- 효율성: 모든 채널의 Shapley value 합이 전체 전환수와 같음
- 대칭성: 같은 기여를 하는 채널은 같은 값을 가짐
- 더미 채널: 어디 들어가도 영향이 0인 채널은 0의 값
- 가산성: 두 캠페인의 값을 합쳐도 그대로 가산
이 4공리를 만족하는 분배가 Shapley value 하나뿐임이 증명되어 있습니다. 그래서 “공정한 분배의 표준”이라고 부릅니다.
3. 마케팅 적용 — 데이터에서 를 어떻게 만드나
Shapley value를 마케팅에 쓰려면 한 가지를 정의해야 합니다 — 채널 부분집합 가 만든 전환수 .
가장 단순한 방식은 다음입니다.
- 유저 여정 데이터에서 채널 만 닿은 유저의 전환율 측정
- 같은 데이터에서 채널 가 닿은 유저의 전환율 측정
- 두 값의 차이가 채널 의 한계 기여도
문제는 채널 5개면 부분집합이 개, 채널 10개면 1,024개로 폭발한다는 점입니다. 운영적으로는 두 가지 해법이 있습니다.
- 채널을 5개 이하로 묶어 정확한 Shapley 계산
- 더 많을 때는 Monte Carlo 샘플링으로 근사 (ML의 SHAP 라이브러리가 같은 원리)
3-1. 마케터가 보는 결과 형태
| 채널 | last-click 기여 | linear 기여 | Shapley 기여 |
|---|---|---|---|
| 검색 | 5% | 25% | 28% |
| 디스플레이 | 0% | 20% | 18% |
| 이메일 | 0% | 20% | 22% |
| 페이스북 | 0% | 20% | 12% |
| 직접 방문 | 95% | 15% | 20% |
| 합 | 100% | 100% | 100% |
last-click은 직접 방문에 95%를 몰아주지만, Shapley는 검색·이메일이 진짜 효과를 만들었다고 봅니다. 페이스북은 닿은 비율 대비 한계 기여가 작아 Shapley에서 12%로 떨어집니다. 운영 결정으로 가져가면 페이스북 예산 일부를 검색·이메일로 옮기는 게 합리적이 됩니다.
4. 코드 한 줄 — SHAP 라이브러리 그대로 쓰기
마케팅에서 Shapley를 직접 구현할 일은 거의 없습니다. ML에서 쓰는 SHAP 라이브러리가 같은 원리를 더 빠르게 구현해 둡니다. 어트리뷰션에 쓰려면 다음 패턴이 가장 가볍습니다.
import shap
# model: 채널 닿음 이진 벡터 → 전환 확률 예측 모델 (XGBoost 등)explainer = shap.TreeExplainer(model)shap_values = explainer.shap_values(X_users)channel_attribution = shap_values.mean(axis=0)이게 본문에 박는 유일한 코드입니다. 채널 닿음 데이터를 이진 벡터로 만들고, 전환을 예측하는 모델을 훈련하고, SHAP으로 채널별 기여도를 뽑는 흐름입니다. 정확한 Shapley value는 아니지만 운영 정확도로는 충분합니다.
5. 마케팅 실무 케이스 3개
5-1. 채널 예산 배분 의사결정
last-click 기준으로는 직접 방문이 95%를 차지해 광고 예산을 줄여야 할 것처럼 보였습니다. Shapley로 다시 보니 검색·이메일·디스플레이가 함께 인지·고려 단계를 만들고 있었고, 이 채널 예산을 줄이면 직접 방문도 함께 빠질 것이 예상됩니다. 이런 통찰은 last-click·first-click으로는 나오지 않습니다.
5-2. 신규 채널 평가 — “있고 없고”의 한계 기여
새 채널을 추가했을 때 last-click 기여가 5%만 나오면 운영자는 “효과 없음”으로 판단하기 쉽습니다. Shapley는 그 채널이 합류하면서 다른 채널의 한계 기여를 어떻게 변화시켰는지를 봅니다. 새 채널의 직접 기여 5% + 다른 채널을 함께 끌어올린 간접 기여 8% = 진짜 가치 13%가 보입니다.
5-3. CRM 채널 vs 광고 채널 비교
이메일·푸시 같은 CRM 채널은 last-click에서 거의 보이지 않습니다. 이미 산 사람을 다시 사게 만드는 자리가 많기 때문입니다. Shapley는 CRM 채널이 광고 채널과 함께 닿았을 때의 시너지까지 잡아내, CRM 예산의 진짜 가치를 보여줍니다.
6. Shapley가 깨질 때 — 흔한 함정 3가지
6-1. 데이터가 last-click 위에 만들어졌다
Shapley는 다중 터치 데이터를 입력으로 받습니다. GA4 last-click 모델 위에서 만들어진 데이터에는 다른 채널 정보가 없습니다. 사용자 여정 데이터를 따로 모아야 합니다. CDP·BigQuery 통합이 사전 작업입니다.
6-2. 채널 정의가 너무 거칠다 또는 너무 잘다
“디스플레이”를 한 채널로 묶으면 그 안의 다양한 매체·캠페인 차이가 가려집니다. 반대로 캠페인 단위로 잘게 나누면 부분집합 폭발과 표본 부족으로 추정이 흔들립니다. 운영 의사결정에 쓰는 단위는 보통 5~8개 채널이 적정선입니다.
6-3. Shapley는 상관관계, 인과관계가 아니다
이게 가장 큰 함정입니다. Shapley는 “이 채널이 닿은 유저가 더 자주 전환했다”를 보지만, 그게 그 채널 때문인지 그 채널을 보는 유저가 원래 전환할 사람이었는지 구별하지 못합니다. 진짜 incrementality는 lift study·geo-lift·MMM이 답합니다. Shapley는 last-click보다는 정확하지만 인과 보증은 없습니다.
7. 마치며 — 어트리뷰션 도구상자에서 Shapley의 자리
마케터의 어트리뷰션 도구상자에는 이제 여러 층이 있습니다.
- last-click — 가장 단순, 빠른 운영용
- linear·time-decay — 직관적, 임의 가중
- Shapley value — 게임이론 공정성, 다중 터치의 표준
- MMM·incrementality — 인과 보증, 채널 단위 장기
Shapley는 다중 터치 어트리뷰션의 표준 자리를 잡고 있습니다. 운영 의사결정 단위를 last-click에서 Shapley로 옮기는 것만으로도 채널 평가의 정밀도가 올라갑니다. 다만 인과 보증은 별도이므로 incrementality 도구와 함께 가는 운영이 표준입니다.
다음 글에서는 같은 실험 도구상자의 빈자리, Stratified A/B와 post-stratification을 다룹니다. CUPED 시리즈의 보강편입니다.
참고
- Shapley (1953), A Value for n-Person Games — Shapley value 원전
- Lundberg & Lee (2017), A Unified Approach to Interpreting Model Predictions, NeurIPS — SHAP 라이브러리의 기초 논문
- Singal, Besbes, Desir, Goyal, Iyengar (2022), Shapley Meets Uniform: An Axiomatic Framework for Attribution — 어트리뷰션 맥락의 공리적 분석
- Google — data-driven attribution 백서 — Shapley 계열의 산업 적용 사례
- SHAP — Python 라이브러리 — 운영 적용에 가장 가벼움
- huny.log 내부 글: ROAS 보고서가 거짓말하는 이유, MMM 입문, DiD, Synthetic DiD
퍼포먼스 마케팅 카테고리의 다른 글
전체 보기 →-
2026·06·05
ROAS 보고서가 늘 거짓말하는 이유 — incrementality 3대장
Meta 대시보드 ROAS 5가 실제로는 1.x인 이유. last-click·view-through·incremental 세 가지 ROAS의 차이와, holdout·geo-lift·ghost ads·conversion lift로 진짜 증분을 측정하는 법을 마케터 시선으로 정리합니다.
-
2026·05·16
DSP·SSP·DMP 인프라 해부 — 매체 영업 미팅에서 듣는 약자들의 정체
매체 영업 미팅에서 DSP, SSP, DMP, CDP, ad exchange, 헤더비딩 같은 약자들이 쏟아집니다. 각각이 어느 회사이고, 광고비가 어디로 흘러가며, 마케터가 의사결정할 때 어떤 의미를 갖는지 한 글에 정리합니다.
-
2026·05·16
Lookback window가 ROAS를 바꾸는 법 — click 7d, view 1d, 28d, 90d의 차이
같은 캠페인이라도 attribution lookback window를 click 7d / view 1d / 28d / 90d 중 어느 걸로 보느냐에 따라 ROAS가 두 배까지 차이납니다. 매체별 default와 그것을 마케터가 어떻게 의사결정에 써야 하는지를 정리합니다.
-
2026·05·09
Brand lift study 설계 — 광고가 인지·호감도를 끌어올렸나
브랜드 광고는 ROAS로 잡히지 않고 인지·호감도·구매의향으로만 측정됩니다. 노출 그룹과 비노출 그룹을 비교하는 brand lift study의 설계, 표본 계산, 실무 함정을 마케터 시선에서 정리.