리텐션 분석

📘

잠깐, Data Analytics 사용을 위해서는 이벤트 수집을 위한 코드 작업이 필요합니다. 이에 대해서는 각 언어 별 SDK 문서의 작업 순서 항목을 참고해주세요.

이곳에서는 데이터 분석(Analytics) > 리텐션 분석을 활용해서 제품을 사용하는 고객의 재사용율을 깊이있게 이해하는 방법을 설명합니다.
리텐션 분석은 좌측 메뉴바에서 데이터 분석 > 리텐션 탭을 클릭하여 사용할 수 있습니다.

리텐션이란?

얼마나 많은 사용자가 시간이 지난 후 제품을 다시 사용하는지를 나타낸 것으로, 사용자의 반복된 제품 사용주기를 살펴봄으로써 제품의 방향성을 찾는데 도움을 받을 수 있습니다.

예를 들어 최근 한 달 동안 홈 화면을 방문한 사용자 중 다시 방문한 사용자의 수를 최근 한 달간 일자별로 계산해본다고 하면, 홈 화면 방문의 일별 리텐션이 됩니다. 이때 최초 방문 일자별로 사용자를 그룹(코호트)으로 나누어 볼 수도 있고, 전체 기간을 합산하여 볼 수도 있습니다.

리텐션은 단순 방문 기준으로 분석하는 것이 일반적이지만, 가입/구독/구매와 같이 제품의 주요한 사용자 행동 데이터(이벤트)를 기준으로도 분석할 수 있습니다. 보고자 하는 제품의 주요 퍼널별로 리텐션을 점검하면, 퍼널 분석과는 또 다른 인사이트를 발견할 수 있습니다.

리텐션을 신경써야 하는 이유
제품을 만드는 사람들은 사용자가 제품을 일회성이 아닌 지속적으로 사용하길 바랍니다. 일반적으로 리텐션이 높으면 유저가 서비스를 주기적으로 사용한다는 뜻으로 해석할 수 있어, 유저의 참여와 관심, 충성도 같은 지표를 높이기 위한 제품 방향성을 정하는데 중요한 지표로 활용됩니다.

리텐션 커브

1528

[그림1-1]

1528

[그림1-2]

[그림 1-1]은 10명의 사용자가 같은날 처음(Day0)으로 서비스를 이용하기 시작했고, Day7에 7명의 사용자가 이벤트를 수행했다면, 7/10=70%가 Day7의 리텐션이라고 설명할 수 있습니다. 같은 방법으로 28일자를 기준으로 리텐션을 보고자 한다면 Day28의 리텐션은 20%가 됩니다.

일반적인 서비스의 리텐션 그래프는 [그림1-2]처럼 초기 진입이후 사용자의 행동주기가 서서히 감소하기 때문에 그래프 모양도 [그림1-1]처럼 시간이 지남에 따라 서서히 하락하는 우하향 하는 곡선을 그리게 됩니다. 따라서 이러한 사용자의 추이를 파악하려면 차트보다 그래프를 먼저 보고 사용자의 행동주기가 어떻게 변화하는지 파악해 보는 것을 추천합니다.

리텐션 스마일 커브
한 때 화제가 되었던 에버노트의 Smile curve를 아시나요? 위에 설명드린 것처럼 보통 리텐션 커브는 우하향 하는 곡선을 그리는데, 에버노트와 같이 시간이 지날수록 사용자가 늘어나는 제품은 아래와 같이 스마일 커브(Smile curve) 곡선을 그려지게 됩니다. 유저에게 서비스 가치가 높아졌다고 볼 수 있습니다. 스마일 커브가 보여지기까지 기간을 얼마나 걸리는지를 파악해 보는 것도 리텐션 그래프를 보는 하나의 방법이 될 수 있을 것 같습니다.

936

[이미지 출처 : https://techcrunch.com/2012/11/04/should-your-startup-go-freemium/]

지원하는 리텐션 유형

현재 핵클에서는 N-day, Unbounded 리텐션 유형을 제공하고 있습니다. 서비스 형태에 따라 적합한 유형을 선택하여 원하는 결과를 얻으실 수 있습니다.

1. N-day 리텐션 :

특정 일 혹은 특정 주기안에 재사용한 사용자의 비율을 측정합니다. 리텐션 분석이라고 했을때 가장 기본적으로 떠올리는 유형입니다. 음식 배달이나 메신저, OTT처럼 재사용 주기가 짧고 반복적인 제품에 적합합니다. 측정 주기가 일별이면 N-day, 주별이면 N-week, 월별이면 N-month로 표현합니다.

2. Unbounded 리텐션 :

특정 일 이후 혹은 특정 주기 이후에라도 재사용한 사용자의 비율을 측정합니다. N-day 보다는 계산이 복잡하지만, 재구매 주기가 긴 커머스, 사용자가 짧은 시간 동안 정기적으로 재사용하지않는 서비스의 경우에는 N-day보다 리텐션을 판단하기에 적합합니다. 특정 주기 이후에라도 재사용한 비율을 측정하므로 1- Unbounded 리텐션율은 곧 서비스 이탈율과 같습니다.

리텐션 차트 사용하기

1단계 : 분석 항목 설정하기

627

[그림2-1]

시작 이벤트와 목표 이벤트는 제품의 첫 번째 사용 시점(시작 이벤트) 이후 일정 기간이 지난 시점에 제품을 재사용(목표 이벤트)하는 것을 의미합니다.

시작 이벤트는 최초 사용 기준이 됩니다. 시작 이벤트로 "방문"을 선택하면 기간중에 "방문"한 사용자 중에 목표 이벤트를 한 사용자 수를 구하는 것이며, 시작 이벤트로 "구매"를 선택하면 기간중에 "구매"한 사용자 중에 목표 이벤트를 한 사용자 수를 구하는 것입니다.
목표 이벤트는 재사용 기준이 됩니다. 목표 이벤트로 "방문"을 선택하면 기간중에 시작 이벤트를 한 사용자 중에 "방문"을 한 사용자 수를 구하는 것이며, 목표 이벤트로 "구매"를 선택하면 기간중에 시작 이벤트를 한 사용자 중에 "구매"를 한 사용자 수를 구하는 것입니다.

2단계 : 차트 이해하기

1단계 분석 항목을 선택하면 코호트에 따른 리텐션(재방문)을 시각화하여 확인할 수 있습니다.
리텐션 분석은 시작 이벤트, 목표 이벤트를 모두 선택 시 [그림3-1], [그림3-2]처럼 하단에 차트와 테이블이 즉시 표현됩니다.
조회 기간도 자유롭게 설정해보세요. 차트 영역에서는 전체 사용자 그룹의 리텐션 추세를 파악할 수 있고, 마우스를 가져가면 특정 기간의 리텐션 %와 실제 사용자 수를 확인할 수 있습니다.

1528

[그림 3-1]

1528

[그림 3-2]

2-1. 리텐션 차트의 구성

[그림 3-2]와 같이 핵클의 리텐션 차트 테이블의 구성은 크게 코호트, 볼륨, 기간, 리텐션의 4가지 요소로 이루어집니다.

  1. 코호트 : 각 행의 첫 번째 열은 이벤트와 날짜를 기준으로 동일 집단을 표현합니다.
  2. 코호트의 크기(볼륨) : 각 코호트의 크기를 나타내며, 시작 이벤트를 수행한 모수를 나타냅니다. 예를 들어 로그인한 사용자 중 상품 상세페이지에 방문한 사용자를 본다라고 한다면, 로그인한 사용자의 카운트된 유저가 각 코호트의 볼륨이 되며, 볼륨을 기준으로 목표 이벤트를 완료한 unique count가 day0의 리텐션이 됩니다.
  3. 기간 : 기간을 설정하면 기간내 재방문한 데이터를 볼 수 있습니다. 예를 들어 7일을 선택하면 day0 ~ day7 까지의 재방문 데이터를 볼 수 있습니다.
  4. 리텐션 : 하나의 행을 날짜 기준으로 코호트로 묶어 집계된 기간별 리텐션을 확인 할 수 있습니다. 볼륨을 기준으로 유니크 유저(unique count)와 리텐션(%)를 확인 할 수 있습니다. 리텐션이 높을수록 각 테이블의 음영은 진해집니다.
    1. N-day 리텐션 : 코호트의 사용자 중 특정 기간(d14, w4, m2)에 재사용한 사용자의 비율을 측정합니다. 동일 코호트(row)의 기간별 리텐션율을 비교하거나, 동일 기간(column)의 코호트별 리텐션율을 비교할 수 있습니다.
    2. Unbounded 리텐션 : 코호트의 사용자 중 특정 기간부터 현재까지(d14~오늘, w4~오늘, m2~오늘) 한번이라도 재사용한 사용자의 비율을 측정합니다. 코흐트별로 이탈율 비교를 쉽게 할 수 있는 특징이 있고, 주기가 짧은 daily 리텐션에서도 유의미한 트렌드를 발견할 수 있습니다. 프로모션, 재활성 목적 메시지 등 특정 이벤트 이후에 누적 효과를 측정하기에 적합합니다. 반면, 동일 기간(column)이라고 하더라도, 코호트별로 실제로 측정 기간이 달리지므로, 동일 기간 비교에는 부적합할 수 있습니다.
    3. 두가지 리텐션 유형의 계산 차이
      리텐션은 유형 상관없이 항상 UV 기준으로 측정됩니다.
      테이블의 개별 코호트(행) 기준으로 1/1에 첫방문한 100명을 분모로 고정하고, 100명 중에서 이후 기간(당일(d0), 1일뒤(d1), 2일뒤(d2)..)에 얼마나 많은 사람이 재방문 했는지를 각각 분자로 놓고 리텐션을 계산합니다
      N-day의 경우 1/1 첫방문한 100명중에 d1의 리텐션은 1/2에 재방문한 50명으로 측정되어 50%, d2의 리텐션은 1/3에 재방문한 30명으로 측정되어 30%입니다. 이때 1/2 50명, 1/3 30명 안에는 중복된 사람이 없지만, 50명과 30명 사이에는 중복된 사람이 있을 수 있습니다
      Unbobunded의 경우 1/1에 첫방문한 100명을 분모로 고정하는 것은 동일하지만, d1의 리텐션은 1일뒤 (1/2)을 포함하여 그 이후에 한번이라도 재방문한 사람 (50명(1/2)+30명(1/3)+..)중에 중복된 사람을 제거한 60명을 분자로 놓는 차이점이 있어, d1 리텐션은 60%로 계산됩니다. 시간이 지남에 따라 d1 리텐션에서 측정하는 재방문 기간이 늘어나므로, d1 리텐션이 60%가 아니라 점점 올라갈 수 있습니다.

2-2. 중복 사용자 제외하기

  • 중복 사용자 제외하기 옵션 : 동일사용자가 시작 이벤트를 여러 기간(일 혹은 주)에 발생시켰을 때 어떻게 계산할 지를 선택하는 옵션입니다.
    • 제외할 경우 : 첫번째 시작 이벤트가 발생한 기간(일 혹은 주)에만 집계됩니다.
    • 제외하지 않을 경우 : 시작 이벤트가 발생한 모든 기간(일 혹은 주) 마다 모두 집계됩니다.
  • 예시 : 1/1 ~ 1/30 기간 동안 리텐션을 조회하는 경우를 가정해봅니다.
    • 제외할 경우 : 제외하면 일자별 사용자 수는 이렇게 나올 수 있습니다. 1/1 (1,000명), 1/2 (200명), 1/3 (200명) ...
      • 1/2 에는 1/1에서 발생한 Unique User 는 포함하지 않고, 1/3 에는 이전기간 (1/1 - 1/2) 동안 발생한 Unique User 는 포함하지 않고, 1/3에 신규로 발생한 Unique User 만 코호트 사용자 수로 집계합니다.
    • 제외하지 않을 경우 : 제외하지 않으면, 1/1 (600명), 1/2 (580명), 1/3 (590명) ...
      • 조회 기간(일 혹은 주) 단위마다 발생한 모든 Unique User 를 집계하기 때문에 위와 같이 나올 수 있습니다.

3단계 : 리텐션 저장하기

1528

[그림 4-1]

리텐션 차트를 저장하면 좌측 데이터리포트 메뉴에서 저장된 것을 확인할 수 있습니다.
중요한 리텐션 차트는 저장하여 지속적으로 모니터링 해보세요.

리텐션 사용 예시

아래 예시를 통해 리텐션을 통해 확인할 수 있는 질문들을 볼 수 있습니다.

더 다양한 예시와 쉽게 따라할 수 있는 방법을 보시려면 아래 링크를 보고 손쉽게 따라해볼 수 있습니다.

1. 유입 관련

  • 최근 7일간 서비스를 재방문한 사용자들의 일별 리텐션은 몇 %일까?
    • 시작 이벤트 : Any Event (Any Event는 핵클에 보내시는 모든 Event의 합계로, '방문'한 사람을 측정하기에 적합합니다)
    • 목표 이벤트 : Any Event (Any Event는 핵클에 보내시는 모든 Event의 합계로, '방문'한 사람을 측정하기에 적합합니다)
    • 기간 : 일별, 최근 7일
  • 가입 후, 2주가 지난 후에도 평균적으로 몇 명의 사용자가 활성 상태일까?
  • 2주를 기준으로, 어느 구간에서 리텐션이 가장 많이 떨어질까?

2. 사용성 관련

  • 유저가 특정 행동(찜하기, 메세지 보내기, 팔로우 하기 등)을 얼마나 자주할까?
    • 시작 이벤트 : Any Event
    • 목표 이벤트 : favorite
    • 기간 :일별, 최근 7일

3. 구매/결제 관련

  • 최근 30일간 서비스를 방문한 사용자의 주별 재구매 리텐션 데이터는 몇 %일까?
    • 시작 이벤트 : Any Event
    • 목표 이벤트 : Purchase
    • 기간 : 주별, 최근 30일
  • 전체 유저와 결제 유저의 일별 리텐션은 어떻게 다를까?

리텐션 사용 팁

1. 한 사용자가 여러 기간에 걸쳐 시작 이벤트를 발생시킨 경우

  • '중복 사용자 제외하기' 선택 : 사용자가 첫번째 시작 이벤트가 발생시킨 기간에만 해당 사용자가 포함됩니다. 한명의 사용자가 한개의 사용자 그룹에만 포함되므로 보다 엄밀한 분석 결과를 기대할 수 있습니다. 코호트별 사용자 수가 충분한 경우에 사용하면 좋습니다.
  • '중복 사용자 제외하기' 해제: 사용자가 시작 이벤트가 발생시킨 기간마다 해당 사용자가 포함됩니다. 전체 사용자 수가 적은 경우에도 기간에 따른 리텐션 추이를 확인할 수 있습니다.
  • 사용자가 하루 혹은 일주일 동안 여러번 시작 이벤트를 발생시킨 경우에는 위 옵션과 상관없이 기본적으로 중복되지않게 첫번째 기간에만 집계됩니다.

2. 전체 기간 중 최초 방문일 기준으로 코호트를 엄밀하게 설정하고 싶은 경우

  • 핵클에서는 기본적으로 설정한 조회 기간중에 (예시 : 최근 30일) 사용자별 최초 진입 시점을 가지고 코호트를 정의합니다. 인하우스 데이터 분석과 유사하게 전체 기간중에 사용자별 최초 진입 시점을 가지고 코호트를 정의하고 싶을때는 아래와 같은 설정을 추천합니다.
  • SDK로 사용자 정보 전송 시에 최초 사용자인 경우 '신규 유저=True' 속성을 전송합니다. 해당 속성은 24시간 이후 진입시에는 '신규 유저=False'로 업데이트 되어야합니다. 자세한 사항은 SDK > 사용자 식별자와 속성 문서를 확인하세요.
  • Start Event에 신규 유저 = True 필터를 추가하고, Return Event에 신규 유저 = False 필터를 추가해주세요.