데이터 생존 로그

🔄데이터 분석가가 써먹는 전환 분석의 다섯 가지 접근법(feat. 로그 데이터, SQL) 본문

생존 도구🏹

🔄데이터 분석가가 써먹는 전환 분석의 다섯 가지 접근법(feat. 로그 데이터, SQL)

분석가 베어그릴스 2024. 10. 27. 19:20

0. 개요

🤔전환은 왜 중요한가?

'전환'이라는 지표는 단순히 마케팅 활동의 성과를 넘어, 비즈니스의 핵심 성과 지표(Key Performance Indicator)와 큰 연관성이 있다.

특히 데이터 분석가에게 전환율은 유저 행동 파악, 채널별 마케팅 효과를 분석, 구매로의 전환 등 다양한 관점에서 분석이 필요한 경우가 많다!

유저가 처음 서비스와 만나는 순간부터 구매를 결정하기까지 다양한 접점이 존재하는데, 이 과정을 이해하고 최적화하는 것이 지표 개선에 필수적이기 때문이다.

 

📊 전환을 다섯 가지 방식으로 구분해서 분석해야하는 이유
유저의 전환 여정은 다층적이고, 하나의 시각만으로는 충분히 설명할 수 없다.

유저가 전환을 위해 거치는 여러 접점을 파악하기 위해서는 다양한 분석 모델을 통해 전환에 대한 포괄적인 이해가 필요하다.

해당 게시글에서는 주요 전환 분석 모델(First Touch, Last Touch, Linear, Time Decay, Position-Based)의  장단점과 계산하는 방법을 알아보도록 하겠다!


1. 전환의 다섯가지 분류

우리가 목표로 하는 행동을 유저가 했다면, 그 유저는 왜 했을까?

이를 파악하기 위해 전환을 분석할 때는 유저의 여정 중 특정 접점에 귀속하여 기여도를 분석하는 방식을 사용한다.

각 모델은 유저 여정에서 특정한 접점을 강조하며, 사용자 행동을 이해하는 데 중요한 단서를 제공한다.

다음은 다섯 가지 주요 전환 분석 모델이다.

 

[First Touch Attribution(첫 접점 귀속)]

First Touch Attribution은 유저가 브랜드와 처음으로 상호작용한 접점에 전환의 기여도를 부여한다.

이 모델은 유저를 처음 유입시킨 채널이나 콘텐츠의 성과를 측정하는 데 유리하다.

예를 들어, 유저가 소셜 미디어 광고를 통해 처음으로 사이트를 방문했다면, 소셜 미디어 광고를 전환의 주요 기여자로 보는 관점이 되겠다!

  • 장점: 첫 접점이 사용자 유입에 얼마나 효과적인지 파악할 수 있어 신규 유입 경로 분석에 유리
  • 단점: 전환에 이르는 중간 과정이 반영되지 않아, 전체적인 유저 행동을 이해하기엔 한계가 있음

 

[Last Touch Attribution(마지막 접점 귀속)]

마지막 접점에 전환을 귀속하는 Last Touch Attribution은 유저가 전환을 이루기 직전의 접점을 분석한다.

최종 구매나 전환 행동에 직접 영향을 미친 요소를 확인하고자 할 때 유용하다.

예를 들어, 유저가 이메일을 통해 상품을 클릭하고 최종 구매했다면, 해당 이메일이 전환의 주요 기여 채널로 평가된다.

  • 장점: 구매 직전의 결정적인 접점을 확인할 수 있어, 전환에 직접적인 영향을 미친 채널을 파악하기 용이
  • 단점: 초기 접점의 중요성을 반영하지 못해, 전체 여정에 대한 시각이 제한될 수 있음

 

[Linear Attribution(선형 귀속)]

Linear Attribution은 모든 접점에 동일한 기여도를 부여하는 방식으로, 유저가 전환에 이르기까지 거친 모든 접점을 균형 있게 평가한다.

유저가 여러 접점에서 상호작용할 경우, 각 채널이 기여한 비중을 고르게 측정하는 데 유용하다.

  • 장점: 모든 접점의 기여도를 평등하게 고려해, 유저 여정을 전체적으로 이해할 수 있음
  • 단점: 특정 접점의 기여도가 더 높을 경우에도 이를 반영하지 못해, 각 접점의 상대적인 영향력을 확인하기 어려움

 

[Time Decay Attribution(시간 가중 귀속)]

Time Decay Attribution은 시간에 따라 가중치를 부여해, 전환에 가까운 시점의 접점에 더 큰 기여도를 부여한다. 

유저가 최종 구매 결정에 가까운 접점일수록 중요한 요소로 간주하는 방식이다.

  • 장점: 전환에 직접적인 영향을 미친 접점을 중시할 수 있어, 구매 결정에 가까운 접점을 강조하는 데 효과적
  • 단점: 초기 접점의 기여도가 낮게 평가될 수 있어, 전체적인 유저 여정을 설명하는 데 한계가 있음

 

[Position-Based Attribution(위치 기반 귀속)]

Position-Based Attribution은 첫 접점과 마지막 접점에 높은 가중치를 부여하고, 중간 접점은 상대적으로 낮은 가중치를 부여하는 방식이다.

첫 접점과 마지막 접점의 균형을 강조하면서도, 중간 접점의 기여도를 일정 부분 반영한다.

  • 장점: 첫 접점과 마지막 접점을 동시에 평가할 수 있어, 유저의 유입과 최종 결정을 모두 분석하는 데 유리
  • 단점: 중간 접점이 많은 경우, 일부 접점이 저평가될 수 있어 유저 여정을 충분히 반영하지 못할 수 있음

2. 유저 행동 기반으로 전환 직접 구해보기

유저 행동이 DB에 있는 이커머스 기준으로 간단하게 데이터를 가정해보자.

아래 테이블은 유저(user_id)가 이커머스 플랫폼을 방문하면서 다양한 접점을 거친 정보를 담고 있으며, 접점(channel)과 방문 시간(timestamp)이 포함되어 있다.

action에서 view는 단순 방문, purchase는 구매를 의미한다.

(단, 해당 데이터에는 전환이 완료된 유저의 행동만 필터링 했다.)

| user_id | channel       | timestamp           | action     |
|---------|---------------|---------------------|------------|
| 1       | Social Media  | 2024-10-01 10:00:00 | view       |
| 1       | Email         | 2024-10-03 12:00:00 | view       |
| 1       | Direct        | 2024-10-05 09:00:00 | purchase   |
| 2       | Paid Search   | 2024-10-02 11:00:00 | view       |
| 2       | Social Media  | 2024-10-04 13:00:00 | view       |
| 2       | Direct        | 2024-10-06 14:00:00 | purchase   |
| 3       | Email         | 2024-10-01 10:00:00 | view       |
| 3       | Direct        | 2024-10-05 09:00:00 | view       |
| 3       | Paid Search   | 2024-10-07 15:00:00 | purchase   |
| 4       | Social Media  | 2024-10-03 12:00:00 | view       |
| 4       | Social Media  | 2024-10-06 16:00:00 | view       |
| 4       | Email         | 2024-10-08 18:00:00 | purchase   |

 

데이터가 있으니, 쿼리로 유저/채널별 전환을 뽑아보자!

 

[First Touch Attribution(첫 접점 귀속)]

첫 접점 귀속은 각 유저별로 처음 방문한 채널을 찾으면 되겠다.

SELECT
    user_id,
    channel AS first_touch_channel
FROM (
    SELECT
        user_id,
        channel,
        timestamp,
        ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY timestamp ASC) AS row_num
    FROM
        ecommerce_log_data
    WHERE
        action = 'view'
) AS first_touch
WHERE row_num = 1;

 

[Last Touch Attribution(마지막 접점 귀속)]

마지막 접점 귀속은 구매 마지막 방문 채널을 찾아서 매핑시키면 된다!

SELECT
    user_id,
    channel AS last_touch_channel
FROM (
    SELECT
        user_id,
        channel,
        timestamp,
        ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY timestamp DESC) AS row_num
    FROM
        ecommerce_log_data
    WHERE
        action != 'purchase'
) AS last_touch
WHERE row_num = 1;

 

[Linear Attribution(선형 귀속)]

선형 귀속은 각 채널의 방문 수를 구하고, 그 채널들이 동등한 기여를 갖는다는 의미로 1로 나눠주면 완성된다!

SELECT
    user_id,
    channel,
    COUNT(*) OVER (PARTITION BY user_id) AS total_touch_points,
    1.0 / COUNT(*) OVER (PARTITION BY user_id) AS attribution_weight
FROM
    ecommerce_log_data
WHERE
    action = 'view';

 

[Time Decay Attribution(시간 가중 귀속)]

시간 가중 귀속은 시간 차이도 필요하다.

SELECT
    user_id,
    channel,
    timestamp,
    EXP((EXTRACT(EPOCH FROM purchase_time) - EXTRACT(EPOCH FROM timestamp)) / 86400) AS time_decay_weight
FROM (
    SELECT
        user_id,
        channel,
        timestamp,
        MAX(timestamp) FILTER (WHERE action = 'purchase') OVER (PARTITION BY user_id) AS purchase_time
    FROM
        ecommerce_log_data
) AS decay_calc
WHERE action = 'view';

EXTRACT(EPOCH FROM timestamp)는 timestamp를 초 단위로 변환해 주기 때문에, 구매 시점과 접점 시점 사이의 시간 차이도 초 단위가 된다.

따라서 이를 일 단위로 변환하려면 1일에 해당하는 86400초(60초 × 60분 × 24시간)로 나눠줘야 한다!

 

[Position-Based Attribution(위치 기반 귀속)]

위치 기반 귀속을 위해서는 분석가가 따로 기준을 만들어서 반영해야 한다.

아래 쿼리는 처음과 마지막 채널에는 40%, 중간 과정 채널은 20%의 기여도를 나눠 갖는다는 기준을 토대로 짜봤다.

SELECT
    user_id,
    channel,
    CASE
        WHEN row_num = 1 THEN 0.4
        WHEN row_num = total_touch_points THEN 0.4
        ELSE 0.2 / (total_touch_points - 2)
    END AS position_based_weight
FROM (
    SELECT
        user_id,
        channel,
        timestamp,
        ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY timestamp ASC) AS row_num,
        COUNT(*) OVER (PARTITION BY user_id) AS total_touch_points
    FROM
        ecommerce_log_data
    WHERE action = 'view'
) AS position_based;

 

 

쿼리를 통해 유저/채널별 전환(기여도)를 구해보았다.

위에서 만든 테이블을 토대로 적절히 집계하여(group by) 전환율 등과 같은 지표를 만들어낼 수 있겠다!


3. 마무리

데이터 분석가로 일하며, 어려운 점 중 하나는 너무 많은 관점에서 데이터를 분석할 수 있다는 점이다. 

전환이라는 것도 매번 분석할 때마다 다른 기준을 적용하곤 했는데,

이렇게 정리해 뒀으니 프레임워크화 하여 목적에 맞게 써먹을 수 있기를 기원한다!

반응형
Comments