서비스 고착도 (DAU/MAU) 한 번에 계산하기

Full name
11 Jan 2022
5 min read

아웃코드 자동화에서 조회화면을 쉽게 만들 수 있는데요, DAU와 MAU 조회화면을 만들어보겠습니다.

먼저, DAU와 MAU의 정의와 측정 방법은 아래와 같습니다.

  • DAU(Daily Active User): 일간 활성 사용자 수
  • MAU(Monthly Active User): 월간 활성 사용자 수
  • 측정 주기를 주단위로 하는 WAU((Weekly Active User: 주간 활성 사용자 수)도 있습니다.
  • 주의할 점은 사용자가 하루에 몇번을 방문/접속해도 1회로 측정해야 합니다.

특히 DAU/MAU로 사용자 고착도(Stickness)를 측정할 수 있는데요, 앱이나 서비스의 활성화를 측정하는데 이용됩니다.

DAU나 MAU를 비교하고 두 지표의 비율을 계산하면 서비스의 고착도를 더 자세하게 들여다볼 수 있습니다. 이 비율이 높을수록 사용자가 서비스를 더 자주 사용한다는 것을 나타냅니다.

  • Stickness = DAU/MAU = (일일 활성 사용자 수 / 월 활성 사용자 수) *100
  • 유명한 소셜앱의 경우는 50%에 달하기도 하고, 서비스의 성격에 따라 다릅니다. (페이스북 지표에 대한 글: https://backlinko.com/instagram-users)
  • 일반적으로 20%면 높은 편이고, 25%의 경우 매우 높은 편에 속합니다. 유명 금융 앱의 경우 24%, SaaS 28%, 전자상거래 22%, 미디어 26%면 상위권입니다.

아웃코드로 빠르게 DAU/MAU 조회화면 만들기

아래와 같은 DAU/MAU 조회화면을 직접 만들어보겠습니다.


아웃코드 자동화로 만든 DAU/MAU 조회 화면

1. 먼저, 아웃코드에 가입한 후, 커넥터로 측정할 데이터가 있는 데이터소스를 연결합니다. 주로 MySQL, PostgreSQL, MariaDB 등 상용 데이터베이스를 연결합니다.


2. 자동화에서 DAU/MAU 쿼리를 입력하기 전에, 아래의 샘플 데이터베이스의 데이터를 이용하도록 하겠습니다. 샘플 MySQL 데이터베이스는 이렇게 구성되어 있습니다.

alt text

3. DAU/MAU를 계산하기 위해서는 아래의 데이터를 기준으로 삼으면 됩니다.

  • log-in date (접속일자)
  • user id (사용자 고유 ID)


마지막으로, 아래의 쿼리를 필요에 따라 수정해서 아웃코드 자동화에 입력하면, DAU, MAU, Stickness 를 한번에 조회 화면을 직접 만들 수 있습니다.

SQL에서 DAU와 MAU를 한번에 구하는 쿼리 샘플

(위에 샘플 데이터베이스에서는 DAU를 측정하기 위해서는 login_history 테이블의 user_id와 created_at가 필요합니다. 아래 쿼리를 복사 붙여넣기하여 수정해보세요!)

WITH daily AS (
SELECT
  date_format(created_at, "%Y-%m-%d") AS day,
  date_format(created_at, "%M %Y") AS month,
  count(*) AS dau
FROM
  login_history
GROUP BY
  date_format(created_at, "%Y-%m-%d"),
  date_format(created_at, "%M %Y")
),
monthly AS (
SELECT
  date_format(created_at, "%M %Y") AS month,
  count(user_id) AS mau
FROM
  login_history
GROUP BY
  date_format(created_at, "%M %Y")
)
SELECT
daily.day,
daily.dau,
monthly.mau,
concat(
  round(daily.dau / monthly.mau * 100, 1),
  '%'
) AS 'DAU/MAU'
FROM
daily
JOIN monthly ON daily.month = monthly.monthorder BY daily.day DESC;

만약 MAU, DAU를 따로 구하고 싶으면 아래 쿼리를 사용하면 됩니다.


DAU (Daily Active Users) 구하기:

SELECT COUNT(DISTINCT user_id) AS dau
FROM user_activity
WHERE log_in_date = CURDATE();

MAU (Monthly Active Users) 구하기:

SELECT COUNT(DISTINCT user_id) AS mau
FROM user_activity
WHERE MONTH(log_in_date) = MONTH(CURDATE()) AND YEAR(log_in_date) = YEAR(CURDATE());

이 쿼리들은 현재 날짜를 기준으로 일일 및 월별 활성 사용자 수를 반환합니다.

Your might also like our other articles

API 개발없이 광고 데이터 3분만에 자동 수집하는 방법
스케줄 기능이 꼭 필요한 이유
맞춤형 자동화 사례들
매 시간 다운로드 말고 페북 리드 자동수집하기