마케팅 데이터 분석

전환율의 분모가 바뀌면 캠페인 순위가 달라지는 이유

계정 전환율과 세션 전환율, 100세션당 주문 수를 구분합니다. 같은 합성 데이터에서 캠페인 순위가 달라지는 이유와 전체 비율의 가중 집계, 계정 단위 Wilson 구간을 Python으로 재현합니다.

캠페인 A의 전환율은 20%, B는 15%입니다. 같은 데이터에서 세션을 기준으로 다시 세면 A는 5%, B는 14%가 됩니다. 한쪽 계산이 틀렸다는 뜻은 아닙니다. 구매한 계정의 비율과 구매가 발생한 세션의 비율을 각각 계산했습니다.

아래는 이 차이를 재현하기 위해 만든 합성 계정 300개와 세션 750개입니다. 동일한 2026년 8월 관측 기간에 계정이 캠페인 하나에만 대응하고, 각 주문이 한 세션에만 연결된다고 가정합니다. 확인된 계정만 포함한 같은 분석 대상에서 두 지표를 계산합니다.

분모를 바꾸면 분자도 같은 단위로 맞춰야 한다

계정 전환율은 기간 중 한 번 이상 구매한 계정 수를 전체 관측 계정 수로 나눕니다. 세션 전환율은 구매가 한 번 이상 발생한 세션 수를 전체 세션 수로 나눕니다. 한 계정이 여러 번 방문하거나 같은 세션에서 여러 주문을 할 수 있으므로 분자도 같이 바뀝니다.

질문분자분모예제의 지표 이름
관측 계정 중 구매한 계정은 얼마나 되나구매 계정 수관측 계정 수계정 구매 전환율
관측 세션 중 구매가 발생한 세션은 얼마나 되나구매 세션 수관측 세션 수세션 구매 전환율
일정한 방문량에서 주문이 몇 건 발생하나주문 건수관측 세션 수100세션당 주문 수

Google의 GA4 지표 문서도 Session key event rate와 User key event rate를 구분합니다. 전자는 주요 이벤트가 발생한 세션의 비율이고, 후자는 주요 이벤트를 수행한 사용자의 비율입니다. 예제는 구매를 관심 행동으로 정하고 직접 확인한 계정을 사용하므로 GA4 보고서의 사용자 수를 그대로 재현한 것은 아닙니다. GA4 차원과 측정항목 정의

같은 데이터에서 캠페인 순서가 달라지는 이유

합성 데이터에서 얻은 집계 값입니다. 계정 수는 실제 사람 수와 구분합니다.

집계 항목캠페인 A캠페인 B
관측 계정100개200개
관측 세션500개250개
구매 계정20개30개
구매 세션25개35개
주문30건60건

계정 기준으로는 A가 20 / 100 = 20%, B가 30 / 200 = 15%입니다. 세션 기준으로는 A가 25 / 500 = 5%, B가 35 / 250 = 14%입니다.

같은 관측 자료에서 서로 다른 전환율을 계산한 결과계정 구매 전환율A 20% · B 15%A: 구매 계정 20 / 관측 계정 100B: 구매 계정 30 / 관측 계정 200세션 구매 전환율A 5% · B 14%A: 구매 세션 25 / 관측 세션 500B: 구매 세션 35 / 관측 세션 250합성 데이터 · 분자와 분모의 단위가 함께 바뀝니다. 인과적 우열을 뜻하지 않습니다.
어떤 지표로 정렬했는지 확인하지 않고 ‘전환율 1위’만 비교하면 다른 질문을 섞게 됩니다.

A는 계정당 평균 5개 세션, B는 계정당 평균 1.25개 세션이 있습니다. A의 구매 계정 비율이 높아도 방문 세션이 더 많이 반복되면 세션당 구매 발생 비율은 낮을 수 있습니다. 방문이 많다는 사실 자체를 좋은 성과나 나쁜 성과로 단정하지 않습니다.

구매 계정이 0보다 클 때 두 전환율의 관계를 다음처럼 풀어 쓸 수 있습니다.

세션 구매 전환율
  = 계정 구매 전환율
    × (구매 세션 수 / 구매 계정 수)
    ÷ (전체 세션 수 / 전체 계정 수)

A: 0.20 × (25 / 20) ÷ (500 / 100) = 0.05
B: 0.15 × (35 / 30) ÷ (250 / 200) = 0.14

분모가 달라진 정도와 구매가 여러 세션에 나뉘어 나타나는 정도가 모두 관계됩니다. 계정에 대한 질문인지, 방문 한 번에 대한 질문인지 먼저 정해야 합니다.

100세션당 주문 수와 세션 전환율은 다르다

A의 주문 30건을 세션 500개로 나누면 100세션당 6건입니다. B는 주문 60건을 세션 250개로 나누므로 100세션당 24건입니다. 이 값에는 같은 세션의 반복 주문도 포함됩니다.

한 세션에서 주문 세 건이 발생한 별도 합성 예제를 생각할 수 있습니다. 구매가 발생한 세션은 한 개이므로 세션 전환율은 100%입니다. 주문 건수는 세 건이므로 100세션당 주문 수로 환산하면 300건입니다.

한 번의 방문에서 여러 번 주문할 수 있습니다같은 세션 1개주문 1주문 2주문 3구매 세션 / 전체 세션 = 1 / 1세션 전환율 100%주문 / 전체 세션 = 3 / 1100세션당 300건별도 합성 사례 · 성공 여부의 비율과 발생 건수의 비율을 구분합니다.
100%를 넘는다는 사실만 보기 전에 어떤 분자를 세었는지 확인해야 합니다.

Google Ads의 전환율도 전환 수를 추적 가능한 광고 상호작용 수로 나누는 지표입니다. 여러 전환 액션을 추적하거나 모든 전환을 세는 설정에서는 100%를 넘을 수 있다고 공식 문서가 설명합니다. 이 정의를 GA4의 세션별 성공 여부 비율과 같은 계산으로 취급하지 않습니다. Google Ads 전환율 정의

캠페인 전환율을 단순 평균하면 전체 전환율인가

전체 세션에서 구매가 발생한 비율은 (25 + 35) / (500 + 250) = 8%입니다. A의 5%와 B의 14%를 단순 평균한 9.5%와는 다릅니다. 두 캠페인의 세션 수가 다르기 때문입니다.

전체 세션 비율이 필요하면 성공 수와 분모를 먼저 합칩니다각 캠페인에 같은 가중치(5% + 14%) / 29.5%각 세션에 같은 가중치(25 + 35) / (500 + 250)8.0%합성 데이터 · 단순 평균도 별도 질문의 답일 수 있지만 전체 세션 전환율과는 다릅니다.
캠페인별 동일 가중 평균과 세션 수로 가중한 평균을 이름에서 구분합니다.

캠페인 i의 성공 수를 x(i), 전체 세션 수를 n(i)라고 하면 전체 비율은 다음과 같이 분모의 크기로 가중한 평균이 됩니다.

전체 비율 = Σ x(i) / Σ n(i)
          = Σ [n(i) / 전체 세션 수] × 캠페인 i의 전환율

계정 단위로 합칠 때도 계정이 여러 캠페인에 중복 등장하는지 확인해야 합니다. 예제는 계정별 캠페인 배정이 서로 겹치지 않아서 구매 계정 50개와 전체 계정 300개를 합산할 수 있습니다. 실제 다중 접점 자료에 이 가정을 그대로 적용하지 않습니다.

관측 전환율의 불확실성은 어떻게 확인하나

A의 20%와 B의 15%는 관측된 점추정값입니다. 실제 분석에서 이 값이 미래의 전환 확률과 정확히 같다고 가정하지는 않습니다. 같은 캠페인 안에서 각 계정의 구매 여부를 독립적이고 같은 성공 확률을 가진 0·1 관측으로 볼 수 있다고 가정하면, 이항 비율의 구간을 계산하는 방법을 사용할 수 있습니다.

예제는 명목 95% Wilson 구간을 계산합니다. NIST의 통계 안내는 Wilson 방법을 비율의 신뢰구간을 계산하는 방법으로 설명하고 관련 식을 제공합니다. NIST 비율 신뢰구간과 Wilson 방법

캠페인구매 계정 / 전체 계정관측 비율명목 95% Wilson 구간
A20 / 10020.0%약 13.34–28.88%
B30 / 20015.0%약 10.71–20.61%

신뢰수준은 반복되는 표본 추출과 구간 계산 절차에 대한 개념입니다. 계산된 이번 구간에 모수가 들어 있을 확률을 그대로 95%라고 해석하는 것과는 구분합니다. Wilson 구간도 근사적인 방법이므로 실제 포함률은 표본 수와 모수 등에 따라 달라질 수 있습니다.

여기서는 합성 데이터를 결정적인 규칙으로 만들었습니다. 따라서 실제 모집단의 모수를 추론했다는 의미로 이 구간을 제시하지 않습니다. 같은 수와 가정이 주어졌을 때 구간이 어떻게 계산되는지 확인하는 연습입니다.

반복 방문 세션에 같은 독립성 가정을 무조건 적용하지도 않습니다. 동일 계정의 여러 세션은 연관될 수 있기 때문입니다. 실제 데이터에서는 분석 단위와 표본 구조에 맞게 계정 단위 집계나 군집을 고려한 방법을 선택해야 합니다.

두 개별 구간이 겹친다는 사실만으로 두 캠페인의 전환율이 같다고 결론 내릴 수는 없습니다. 차이를 판단하려면 비교할 모수의 차이와 실험·표본 구조를 정한 분석이 필요합니다. 관측 지표의 순위를 광고의 인과적 효과 순위로 바로 옮기지 않습니다.

Wilson 구간의 계산식을 코드로 확인하기

구매 계정 수를 x, 관측 계정 수를 n, 관측 비율을 p라고 두면 p = x / n입니다. 95% 양측 구간에서는 표준정규분포의 97.5% 분위수 z를 사용합니다. 코드에서는 statistics.NormalDist로 이 값을 구합니다.

z = NormalDist().inv_cdf(0.975)
p = successes / trials
denominator = 1 + z * z / trials
center = (p + z * z / (2 * trials)) / denominator
half_width = (
    z * sqrt(p * (1 - p) / trials + z * z / (4 * trials * trials))
    / denominator
)

구간은 center - half_width와 center + half_width 사이입니다. 실제 구현은 입력 범위를 확인하고 부동소수점의 작은 오차가 확률 범위를 벗어나지 않도록 0과 1의 경계를 처리합니다. 관측이 0개면 전환율과 구간을 임의로 0으로 만들지 않고 정의되지 않은 값으로 반환합니다.

100개 계정에서 구매가 한 번도 관측되지 않은 별도 계산에서도 구간의 위쪽은 약 3.70%입니다. 0회 관측을 근거로 실제 성공 확률이 반드시 0이라고 단정하는 문제를 피할 수 있습니다.

캠페인 비교 전에 어떤 조건을 고정해야 하나

예제는 같은 기간의 확인된 계정만 포함합니다. 이 결과를 비로그인 방문을 포함한 전체 트래픽의 전환율이라고 부르지 않습니다. 계정 ID가 없는 자료를 제외했다면 그 제외 범위가 캠페인마다 다른지도 확인해야 합니다.

계정마다 하나의 캠페인을 배정하고 주문마다 하나의 세션을 연결했습니다. 실제 자료에서 한 계정이 여러 광고에 노출됐다면 어떤 기준으로 캠페인을 배정할지 별도 정책이 필요합니다. 분석 코드에서 편한 쪽으로 키를 만들어 이 문제를 숨기지 않습니다.

관측 기간과 전환 인정 기간도 함께 기록해야 합니다. 최근 방문은 아직 구매할 시간을 충분히 갖지 못했을 수 있습니다. 두 캠페인의 표본 구성이 다르거나 관측 조건이 달라졌다면 분모를 정리한 뒤에도 원인을 더 조사해야 합니다.

합성 세션 750개로 직접 재현하기

전환율 분모와 캠페인 비교 예제 ZIP을 풀고 폴더 안에서 실행합니다. Python 3.9 이상과 표준 라이브러리만 사용합니다.

python3 analysis.py
python3 -m unittest

generate_sample.py는 같은 합성 데이터를 다시 생성합니다. 각 세션의 주문 목록을 이용해 주문 건수, 구매 세션 수와 구매 계정 수를 별도로 셉니다. 구매가 한 번 이상 있는지를 판단할 때는 주문 목록의 길이를 그대로 성공 횟수로 사용하지 않습니다.

출력에서 계정 비율의 점추정 정렬은 A·B, 세션 비율의 점추정 정렬은 B·A입니다. 정렬에는 반올림 전 비율을 사용하며 동률은 캠페인 코드 순으로 표시합니다. 출력 순서가 통계적 유의성이나 인과적 우열을 뜻하지는 않습니다.

검증은 동일 세션·주문의 중복, 관측 기간 불일치, 다중 캠페인 계정, 0 분모와 이항 모형에서 불가능한 성공 수를 확인합니다. 한 세션에서 세 번 주문해도 세션 구매 전환율은 100%로 유지되는지, 전체 비율이 실제 분모 수로 계산되는지도 검사합니다.

서로 다른 전환율 기준을 비교하는 매도비

전환율을 공유할 때는 분자와 분모의 이름을 함께 적어 보세요. 구매 계정, 구매 세션과 주문 건수를 구분하고 관측 조건을 고정해야 순위가 달라진 이유를 설명할 수 있습니다.

공식 문서는 2026년 9월 6일 확인했습니다. 수치와 구간은 합성 데이터와 명시한 모형 가정에 대한 계산 결과입니다.

마케팅 데이터 모델·품질·지표 정의 연재 8편입니다. 이전 글: 사용자·기기·세션·주문 식별자를 구분하는 방법

다음 글: CPA·CAC·ROAS·MER를 목적에 맞게 사용하는 법

🐹

자주 묻는 질문

전환율의 분모만 사용자에서 세션으로 바꿔도 되나요?

무엇을 측정하려는지에 따라 분자도 맞춰야 합니다. 계정별 구매 여부를 보려면 구매한 계정 수를, 세션별 구매 여부를 보려면 구매가 한 번 이상 발생한 세션 수를 분자로 사용합니다. 주문 건수를 그대로 쓰면 반복 구매를 포함한 다른 지표가 됩니다.

전환율이 100%를 넘으면 항상 오류인가요?

항상 그렇지는 않습니다. 구매 여부처럼 성공·실패를 한 번씩 세는 비율은 100%를 넘을 수 없지만, 한 세션에 여러 주문이 발생할 수 있는 주문 건수 비율은 넘을 수 있습니다. 제품의 전환 집계 방식과 지표 단위를 확인해야 합니다.

캠페인 전환율을 평균 내면 전체 전환율이 되나요?

전체 관측 단위의 전환율이 필요하다면 성공 수와 분모를 각각 합산한 뒤 나눠야 합니다. 표본 수가 다른 캠페인의 비율을 단순 평균하면 각 캠페인에 같은 가중치를 주는 별도 지표가 됩니다.

신뢰구간이 겹치면 두 캠페인이 같은 성과인가요?

개별 신뢰구간의 겹침만으로 차이가 없다거나 동등하다고 판단할 수 없습니다. 비교하려는 차이와 실험·표본 구조에 맞는 분석이 필요합니다. 예제의 Wilson 구간은 독립적인 계정별 이항 모형을 가정한 계산 연습입니다.