September 27, 2024
엑셀과 스프레드시트를 어느정도 다루시던 분들은 조건부 서식에 어느정도 익숙하실 겁니다.
조건부 서식은 데이터를 보다 효과적으로 표현하고 분석하는 강력한 기능입니다. 이는 특정 조건에 따라 셀의 모양(글자 색상, 셀 색상)을 자동으로 변경하여 중요한 정보를 시각적으로 돋보이게 만드는 기능입니다.
위의 이미지 예시를 보면 더 쉽게 이해할 수 있습니다. 왼쪽은 아무런 설정을 하지 않은 차트라면 오른쪽은 숫자의 백분위수를 기준으로 색상을 표현하였습니다. 오른쪽의 표가 일자별 노출수의 차이를 훨씬 쉽게 이해할 수 있습니다.
조건부 서식의 가장 큰 특징은 데이터에 기반한 동적인 시각화입니다. 사용자가 정의한 규칙에 따라 데이터가 변경될 때마다 서식도 자동으로 업데이트됩니다. 이는 단순히 정적인 색상이나 서식을 적용하는 것과는 다르게, 항상 최신 데이터를 반영한 시각적 표현을 제공합니다.
루커스튜디오와 같이 실시간으로 변하는 데이터 시각화 솔루션에서는 필수적으로 활용하면 좋을 기능입니다.
루커스튜디오에도 이러한 조건부 서식이 있으며 다른 엑셀과 Tableau와 같은 BI와 유사한 기능을 사용할 수 있습니다.
기본적으로 'Tablea' 차트와 'Score' 차트에서 활용가능합니다.
단색과 색상스케일에 따라 구분할 수 있습니다. KPI 달성이나 임계값 달성에 대한 강조를 원한다면 단색 유형이 유용합니다. 반면에 데이터의 양이 많고 데이터간 상대적 차이가 중요하다면 색상 스케일이 유용합니다.
규칙별로 하나의 조건만 가능하며 조건 형식은 셀 또는 전체 행에 적용할 수 있습니다.
September 24, 2024
대부분의 비즈니스 문제는 두 가지 이상의 데이터 소스들을 결합하여 바라봐야 의미 있는 인사이트를 도출 할 수 있습니다. 광고데이터와 성과데이터, 매출데이터와 쿠폰데이터, 사용자데이터와 행동데이터 등과 같은 여러 데이터 조합들이 존재합니다.
루커 스튜디오의 기능 중 하나인 데이터 혼합은 두 가지 이상의 데이터간 결합을 제공하는 기능으로 데이터 시각화 및 분석을 더욱 풍부하게 만들어줍니다.
이러한 데이터 혼합 방식은 루커 스튜디오만의 방식은 아닙니다. 이미 데이터를 처리하는 데이터베이스 분야에서는 널리 사용 되고 있습니다.
이번 시간에는 루커 스튜디오 데이터 혼합 기능에 대해 배워보고 루커 스튜디오의 대시보드를 더 깊이 있게 만들어봅시다.
데이터 혼합 방식을 처음 접한 분들은 개념이 생소할 수 있습니다. 뿐만 아니라 이미 SQL 등을 공부하면서 혼합 방식을 알고 계셨던 분들도 혼합은 헷갈리는 개념입니다. 먼저 루커 대시보드를 가지고 혼합에 대한 개념을 가볍게 살펴보도록 하겠습니다.
루커 스튜디오가 제공하는 5가지 조인방식을 동일한 데이터를 가지고 혼합하였을 경우 혼합된 최종 결과 데이터가 어떻게 구성되는지 시각적으로 본다면 이해가 좀 더 편할 것입니다. 아래의 이미지에 각 혼합 방식에 따른 결과 테이블을 살펴보실 수 있습니다.
먼저, 루커 스튜디오 데이터 혼합에 대한 기본적인 내용을 알아보겠습니다. 데이터 혼합은 최대 5개의 데이터 소스를 조합하여 차트를 생성하는 기능을 제공합니다. 이를 통해 서로 다른 데이터 소스 간 측정항목과 측정기준을 조합한 새로운 차트를 만들 수 있습니다. 데이터 혼합을 통해 다양한 데이터 소스의 구성을 효과적으로 활용할 수 있습니다.
1) 기본 : 리소스 → 혼합 소스 관리 클릭 후 데이터 혼합
2) 설정탭 이용 : 설정탭 내 데이터 소스 → 데이터 혼합 클릭
3) 차트 이용 : 두 개 이상의 차트를 선택하고 데이터 혼합 생성
혼합 데이터는 루커 스튜디오의 데이터 혼합 부분에서 새롭게 만들거나 업데이트를 합니다. 해당 화면과 데이터 혼합에 대한 기본적인 구성을 살펴봅시다.
왼쪽 조인 유형은 가장 기본적인 조인 유형입니다. 왼쪽 테이블을 기준으로 모든 행을 반환하고 오른쪽 테이블은 왼쪽 테이블 조인 키값과 일치하는 행만 반환합니다.
ㅤ
오른쪽 테이블에 존재하지 않거나 누락된 값은 최종 혼합 데이터에서 빈칸 혹은 null 값으로 표현됩니다.
라이트 아우터 조인 유형은 왼쪽 조인과 반대로 오른쪽 테이블을 기준으로 왼쪽 테이블을 모두 반환합니다. 테이블이 반대일 뿐 왼쪽 조인과 동일한 원리 입니다.
활용
2개의 보완적인 데이터 소스로 하나의 데이터 소스를 만드는 경우에 활용 가능합니다. 예를 들어 아래와 같이 매출 데이터 소스를 확장하기 위해 한쪽에는 유저 소스를 레프트 조인으로(키값은 유저 ID), 다른 한쪽에는 제품 정보 소스(키값은 판매 상품)를 넣어서 매출 데이터 분석을 더욱 풍부하게 만들 수 있습니다.
ㅤ
ㅤ
내부 조인은 두 테이블 조인 조건 모두에서 일치하는 행만 반환합니다. 각 데이터 세트의 다른 모든 행은 제거됩니다.
두 데이터 소스 간 중복에 관련한 분석을 하는 경우 많이 사용합니다. 또한 동적 데이터로 데이터 세트를 필터링하는 쉬운 방법입니다.
ㅤ
활용
ㅤ
ㅤ
외부 조인은 조인 조건이 충족되지 않더라도 두 테이블의 모든 행을 반환합니다.
활용
데이터베이스(1st party data)와 GA4(3rd party data)를 연결하며 데이터베이스에서 삭제된 데이터가 GA4에서 확인 가능하며 GA4에서 추적되지 않은 값이 데이터베이스에서 확인 가능합니다. 이처럼 양쪽의 환경을 모두 고려해야 하면서 서로의 데이터가 모두 필요한 경우 사용합니다.
ㅤ
ㅤ
교차 조인은 모든 테이블 행의 데카르트 곱(두 소스의 모든 구성요소의 순서 쌍)을 반환합니다.
즉, 왼쪽 데이터 세트의 모든 행은 반복을 통해 오른쪽 데이터 세트의 모든 행과 곱해져서 데이터를 반환합니다.
이는 조인 키가 필요하지 않은 유일한 조인 유형입니다.
ㅤ
활용
데이터의 각 행 별 조인이 필요한 경우에 사용합니다.
데이터 혼합의 조인 조건을 잘 활용한다면 분석을 더욱 풍부하게 만들어주는 게임 체인저가 될 수 있습니다.
이러한 기능을 활용하기 위해서는 처음에는 까다로울 수 있지만 연습해서 여러분들 것으로 만든다면 멋진 대시보드를 만드시는데 도움이 되실 겁니다.
September 20, 2024
데이터마케팅이란 [데이터]를 활용하여 마케팅한다는 뜻으로 데이터드리븐마케팅(Data-driven Marketing)으로도 불릴 수 있습니다.
데이터마케팅과 데이터드리븐마케팅의 차이는 미미하나, 데이터마케팅은 데이터를 [활용] 하나 데이터 드리븐 마케팅은 데이터를 [기반]으로 하기에 후자에서 데이터의 중요성이 좀 더 강조된다고 볼 수 있습니다.
데이터마케팅을 위해서 필수 조건은 (당연하게도) 데이터 분석입니다. 결괏값을 측정하여 데이터를 잘 쌓아두고, 보유한 데이터를 가공하여 상황을 해석하고 문제나 개선점에 대한 인사이트를 도출하는 것이 기본적인 데이터 마케팅의 프로세스라고 할 수 있습니다.
그로스 조직(=그로스팀)은 기본적으로 데이터 드리븐 마케팅을 하기에, 프로세스가 같습니다.
데이터를 기반으로 가설을 세우고, 실험을 바탕으로 검증하고, 배움을 축적하는 과정을 빠르게 반복합니다. (*출처: 양승화 님의 그로스해킹)
마티니에서 진행한 컨설팅 프로젝트였던, 패션 커머스를 기준으로 데이터마케팅의 사례를 보겠습니다.
커머스 내에서도 여러 안건의 데이터 분석이 있는데요. 1. 에디토리얼(=콘텐츠), 2. 프로모션 간의 비교 (미드세일 vs 시즌오프세일), 3. 주요 대시보드 (KPI, AARRR) 4. 특정 프로모션 (블랙프라이데이) 등입니다.
블랙프라이데이 프로모션을 세부 사례로 앰플리튜드(Amplitude)를 활용했던 분석을 예시로 들어보겠습니다.
*앰플리튜드는 SaaS(Software as a Service: 클라우드 기반의 소프트웨어 제공 모델) 솔루션으로 웹/앱 서비스 내의 사용자 행동 분석을 할 수 있는 프로덕트 애널리틱스(Product Analytics)입니다.
왜 프로모션 데이터 분석을 해야 할까요? 그 배경부터 먼저 짚고 넘어갑시다.
다양한 형태로 스스로에게 질문을 해봅니다.
Q. 프로모션을 기획하고 운영한 후 가장 궁금한 것은?
Q. 프로모션을 운영한 이유는 무엇일까요?
여러 가설을 세워봅니다.
이렇게 물어보면, 보통은 '셋 다'라고 대답하는 경우가 많은데요. 충분히 이해는 하지만(^^...!) 우선순위는 정해야 합니다. 대개 우선순위는 [매출]이기에, 매출 관련 분석을 먼저 진행합니다.
매출의 기본적인 구성 요소를 먼저 파악합니다.
*건단가와 객단가
건단가와 객단가는 혼용되어 쓰이기도 하는데요. 주문[건]의 건, 고[객]의 [객]을 생각하시면 됩니다.
즉 어제 제가 배민에서 점심 주문 건으로 1.5만 원을 쓰고 저녁 주문 건으로 2.5만 원을 썼다면 일 기준 제 건단가는 [1.5만 원] / [2.5만 원] 두 건일 것이고 제 객단가는 [1.5만 원]+[2.5만 원]의 4만 원이 될 수도 있습니다.
*물론 건단가와 객단가는 내부적으로 정의하기 마련입니다! 일간 건단가를 평균으로 낼 수도 있으니까요.
이에 따라 앰플리튜드(Amplitude)에서 매출, 주문수/건단가, 구매자수/객단가로 그래프를 구성합니다. 우선 매출로 전체적인 추이를 보고 주문수/건단가, 구매자수/객단가를 개별로 쪼개보는 것이죠.
해당 프로모션에서는 객단가와 건단가가 유사한 추이를 보이기에 특이 사항이 없다고 판단되었지만, 가끔 특정 프로모션에서 객단가와 건단가의 차이가 크게 발생하는 경우도 있습니다. (리셀러의 등장?!)
이외 위 그래프에서 두 개의 선이 있는데요. 데이터를 볼 때의 꼭 필요한 [비교 기준]입니다. 비교 기준은 사용자 특성이 될 수도, 행동이 될 수도 있지만 [기간]을 가장 기본적으로 고려합니다.
*비교 기준: 기간(일간, 주간, 월간, 분기, 반기, 연간… 시즌성 고려!
블랙프라이데이 프로모션의 분석이라면 전년도 11월과 비교하는 것 vs 전월인 10월과 비교하는 것 - 어떤 것이 더 합리적일까요? 당연히 전년도일 것입니다.
전월 10월과 당월 11월의 할인율, 마케팅 수준 등이 다를 테니까요. 물론 전년 대비 회원수도 브랜드수도 많아졌고 등의 변동 요인들이 많아 YoY만 비교하는 것이 의미가 없다고 판단된다면 결국 전년도(YoY)/전월(MoM)/전주(WoW) 등 비교 대상들이 많아질 수 있습니다.
현대의 직장인이라면 대개 모든 업무의 결과를 [숫자]로 보긴 합니다. 그렇다면 그냥 숫자를 확인하는 것과 데이터 분석의 가장 큰 차이점은 무엇일까요?
예를 들어 2024년 7월 A 커머스의 구매 전환율 (메인 페이지 조회 > 결제 완료)이 10%라고 했을 때, 어떤 해석을 할 수 있을까요?
전월 대비 높아졌다/낮아졌다, 전년 대비 높아졌다/낮아졌다의 판단을 위해서는 전월 데이터, 전년도 데이터가 필요합니다.
전년, 전월, 전주의 데이터를 보며 추이를 확인했을 때 눈에 띄게 높거나/낮은, 혹은 변동이 생기는 시점을 찾아내어 그 배경이 무엇이었는지 파악하는 것이 필요합니다.
혹은 유사한 프로모션이 진행되었던 시기와 비교하여 구매전환율이나, 구매수, 유입수, 가입수 등의 주요 지표에서 차이가 있었는지를 파악해 보는 것도 좋습니다.
프로모션 vs 프로모션 간의 비교 외에도 uiux를 개선하거나 특정 기능을 배포했을 때 그 시점 이후의 변화가 있는지를 확인할 수 있습니다.
매출을 구매수와 건단가, 구매자수와 객단가로 나눠 전반적인 추이를 파악한 후 세부 분석을 진행합니다.
매출은 결국 [사용자]가 [상품]을 [구매]하여 발생하는 결괏값입니다. 이에 따라 [사용자]와 [상품]의 측면에서도 분석을 진행합니다.
: 카테고리별, 브랜드별, 상품별 매출 추이
프로모션의 매출을 브랜드, 카테고리 등으로 나눠서 확인해 봅니다.
더 개별적으로는 브랜드를 기준으로 매출과 월별 성장률 등을 확인하며 주요 브랜드를 도출하기도 합니다.
프로모션을 진행하고 쌓인 데이터를 분석하고 회고하고 다음 프로모션에 적용하는 것. 그것이 프로모션 측면에서 데이터를 활용한 데이터 마케팅이라고 볼 수 있습니다.
이외 데이터마케팅은 어떤 부문에도 동일하게 적용됩니다. 정량적인 수치로 표현되는 데이터를 쌓고, 데이터를 여러 측면에서 분석하고, 다음 유사 업무 시 배운 점을 적용하고 또 실험하는 것입니다.
August 30, 2024
이 글을 읽고 계시다면 코호트 분석을 이미 하고 계실 건데 측정 기준에 대해서 의문이 생기신 분이 보실 것 같네요
구글에 '코호트 분석 SQL' 라고 검색하면 정말 많은 글들이 많습니다.
글에서 소개하는 쿼리 예시는 대부분 datediff함수를 활용해서 Date Granularity를 계산합니다.
이해하기 쉽게 예를 들어보겠습니다.
유저 1 : 23:30 에 회원가입 후 다음날 다시 들어왔습니다.
유저 2 : 13:30에 회원가입 후 다음날 다시 들어왔습니다.
day 단위로 계산을 하면 유저 1 은 우리 서비스를 30분 경험하고 다음날 재방문했다고 계산됩니다.
유저 2는 약 10시간 30분 서비스를 경험하고 재방문을 했다고 계산됩니다.
동일한 조건일까요? 그렇지 않죠?
만일 시간 단위로 계산을 하게 되면 특정 행동을 수행한 시간부터 다음 행동까지의 Time window를 24시간 뒤로 하면 이 유저는 다음날이 아닌 모레 재방문했다고 계산되겠죠?
DATEDIFF( [first_event_dt], [second_event], DAY )
DATEDIFF( [first_event_dt], [second_event], HOUR ) / 24 )
월단위로 계산할 때도 마찬가지입니다.
월별 일자수가 모두 다릅니다. 1월(31일), 2월(28일), 4월(30일)...
월 단위로 측정할 때도 30일로 모두 통일해줍니다.
DATEDIFF( [first_event_dt], [second_event], HOUR ) / 24 * 30)
이렇게 계산되면 유저별로 경과 시간은 모두 통일 되었습니다!!
실제로 Amplitude(앰플리튜드)의 코호트 분석 기능에는 이런 기능들이 존재합니다. 만약 안 쓰고 계시다면 직접 쿼리를 날려서...
여기 가이드를 보시면 앰플리튜드가 24시간 단위로 경과 시간을 측청 하는 방식을 설명해 두었습니다.
24시간 윈도우 기준, 캘린더 기준으로 경과 시간(t)을 측정하는 옵션이 있죠?
얼마나 차이를 보였는지 가상의 데이터로 확인을 해보았습니다.
(참고로 더미 데이터는 kaggle 이나 Mockaroo 에서 생성하실 수 있습니다)
참고로 해당 데이터 계산 기준은 월별 첫 구매 기준 재구매율입니다.
t = 1 지점부터 차이를 보이기 시작하는데 t = 0 이 100%라서 차이가 잘 안 보입니다. 로그 스케일을 통해 다시 확인해 보면
확실히 달력 기준의 리텐션율이 조금 더 높아 보이네요
얼마나 차이 나는지 두 기준의 리텐션율을 나눠 보겠습니다 최대 1.27배까지 납니다. (아래 차트에서는 0은 무시합니다. t = 0 은 100%이기 때문에)
t = 1 : 1.15배
t = 22 : 1.27배
데이터에 따라서 차이가 달라지겠지만
코호트의 기준이 만일 회원가입일 기준의 재구매율이거나 회원가입일 기준 재방문율을 측정한다면 더 많은 차이를 보일 수 있을 걸로 예상됩니다.
제가 사용한 쿼리는 아래와 같습니다.
WITH tb_pay_first AS (
SELECT country
,user_id
,min(pay_datetime_id) first_pay_datetime_id
FROM order
GROUP BY 1,2
)
, tb_base_ AS (SELECT st0.*
, FLOOR(TIMESTAMPDIFF(HOUR, st1.first_pay_datetime_id, st0.pay_datetime_id) / 24) AS days_since_first_pay
, FLOOR(TIMESTAMPDIFF(HOUR, st1.first_pay_datetime_id, st0.pay_datetime_id) / (24 * 30)) AS months_since_first_pay_period_24h
, (YEAR(pay_datetime_id) - YEAR(first_pay_datetime_id)) * 12 + (MONTH(pay_datetime_id) - MONTH(first_pay_datetime_id)) AS months_since_first_pay_period_day
, st1.first_pay_datetime_id
FROM order st0
LEFT JOIN tb_pay_first st1
ON st0.user_id = st1.user_id
AND st0.country = st1.country
WHERE 1 = 1
)
, tb_base_24h AS (
SELECT time_id_
, country
, since_time_period_24h
, CASE
WHEN 'acc' = 'normal' THEN SUM(SUM(IF(since_time_period_24h = max_since_time_period_24h, repurchase_user_cnt, 0))) OVER
(PARTITION BY time_id_, country ORDER BY since_time_period_24h DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
ELSE SUM(repurchase_user_cnt)
END AS repurchase_user_cnt
, count(1) pay_user_cnt
, sum(sales) AS sales
FROM (SELECT *
, CASE WHEN since_time_period_24h = 0 AND pay_cnt > 1 THEN 1
WHEN since_time_period_24h = 0 AND pay_cnt <= 1 THEN 0
ELSE 1
END AS repurchase_user_cnt
, MAX(since_time_period_24h) OVER (PARTITION BY country, user_id) as max_since_time_period_24h
FROM
(SELECT tmp0.time_id_
, tmp0.country
, tmp0.since_time_period_24h
, tmp0.user_id
, SUM(tmp0.pay_cnt) AS pay_cnt
, SUM(tmp0.sales) AS sales
FROM
(SELECT DATE_FORMAT(first_pay_datetime_id ,'%Y-%m-01') time_id_
, country
-- , months_since_first_pay_period_day AS since_time_period_day
, months_since_first_pay_period_24h AS since_time_period_24h
, user_id
, COUNT(distinct order_id) AS pay_cnt
, SUM(sales) as sales
FROM tb_base_
-- WHERE DATE_FORMAT(first_pay_datetime_id ,'%Y-%m-01') >= '2023-01-01'
GROUP BY 1,2,3,4) tmp0
GROUP BY tmp0.time_id_
, tmp0.country
, tmp0.since_time_period_24h
, tmp0.user_id
) tmp
) tmp1
GROUP BY time_id_
, country
, since_time_period_24h
)
, tb_base_day AS (
SELECT time_id_
, country
, since_time_period_day
, CASE
WHEN 'acc' = 'normal' THEN SUM(SUM(IF(since_time_period_day = max_since_time_period_day, repurchase_user_cnt, 0))) OVER
(PARTITION BY time_id_, country ORDER BY since_time_period_day DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
ELSE SUM(repurchase_user_cnt)
END AS repurchase_user_cnt
, count(1) pay_user_cnt
, sum(sales) AS sales
FROM (SELECT *
, CASE WHEN since_time_period_day = 0 AND pay_cnt > 1 THEN 1
WHEN since_time_period_day = 0 AND pay_cnt <= 1 THEN 0
ELSE 1
END AS repurchase_user_cnt
, MAX(since_time_period_day) OVER (PARTITION BY country, user_id) as max_since_time_period_day
FROM
(SELECT tmp0.time_id_
, tmp0.country
, tmp0.since_time_period_day
, tmp0.user_id
, SUM(tmp0.pay_cnt) AS pay_cnt
, SUM(tmp0.sales) AS sales
FROM
(SELECT DATE_FORMAT(first_pay_datetime_id ,'%Y-%m-01') time_id_
, country
, months_since_first_pay_period_day AS since_time_period_day
-- , months_since_first_pay_period_24h AS since_time_period_24h
, user_id
, COUNT(distinct order_id) AS pay_cnt
, SUM(sales) as sales
FROM tb_base_
GROUP BY 1,2,3,4) tmp0
GROUP BY tmp0.time_id_
, tmp0.country
, tmp0.since_time_period_day
, tmp0.user_id
) tmp
) tmp1
GROUP BY time_id_
, country
, since_time_period_day
)
, cohort_base_24h AS
(SELECT time_id_
, country
, since_time_period_24h
, repurchase_user_cnt
, pay_user_cnt
, sales
, SUM(sales) OVER w AS acc_sales
, FIRST_VALUE(pay_user_cnt) OVER w AS cohort_user_cnt
, COUNT(1) OVER (PARTITION BY country) AS cohort_cnt
FROM tb_base_24h
WINDOW w AS (PARTITION BY time_id_, country ORDER BY since_time_period_24h RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)
)
, cohort_base_day AS
(SELECT time_id_
, country
, since_time_period_day
, repurchase_user_cnt
, pay_user_cnt
, sales
, SUM(sales) OVER w AS acc_sales
, FIRST_VALUE(pay_user_cnt) OVER w AS cohort_user_cnt
, COUNT(1) OVER (PARTITION BY country) AS cohort_cnt
FROM tb_base_day
WINDOW w AS (PARTITION BY time_id_, country ORDER BY since_time_period_day RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)
)
SELECT *
, (pay_user_cnt * 100) / cohort_user_cnt AS retention_rate
FROM
(SELECT 1 AS time_id
, country
, since_time_period_24h
, SUM(repurchase_user_cnt) AS repurchase_user_cnt
, SUM(pay_user_cnt) AS pay_user_cnt
, FIRST_VALUE(sum(cohort_user_cnt)) OVER(PARTITION BY country RANGE BETWEEN UNBOUNDED PRECEDING and CURRENT ROW) as cohort_user_cnt
FROM cohort_base_24h
GROUP BY 1
, country
, since_time_period_24h) tmp3
분석의 기준은 굉장히 중요합니다. 어떤 기준으로 분석하느냐에 따라서 의사결정 방향이 달라질 수 있겠죠?
코호트 분석은 시간을 계산해서 집계하는 분석인만큼 시간의 기준을 제대로 설정하는 게 중요합니다.
저도 실제로 분석해 보면서 분석 기준의 중요성을 다시 한번 깨달을 수 있었습니다.
혹시 지금 day 단위로 코호트 활용해 재구매율을 측정하고 계신다면 24시간 단위로 계산해 보시면 어떨까요?
Reference
https://medium.com/@paul.levchuk/how-to-build-user-cohort-properly-b70a74e5e1c8
August 27, 2024
최근 데이터 시각화 및 분석 도구들이 발전하면서 사용자 친화적인 인터페이스가 중요해지고 있습니다. Google Looker Studio는 이러한 요구에 맞춰 다양한 기능을 제공하며, 그 중 하나가 선형(Line) 차트와 막대(Bar) 차트를 전환할 수 있는 토글 스위치 기능입니다. 물론 기본적인 제공 기능 아니지만 루커스튜디오의 기능을 활용하면 간단하게 구현 가능합니다.
데이터를 분석하는 과정에서 서로 다른 유형의 차트를 사용하면 데이터를 다양한 각도에서 시각화할 수 있습니다. 예를 들어, 막대 차트는 특정 시점의 데이터를 비교하는 데 유용하며, 선형 차트는 시간에 따른 변화를 나타내는 데 적합합니다. 이러한 차트들을 손쉽게 전환할 수 있는 기능이 있으면, 사용자는 더 쉽게 다양한 인사이트를 얻을 수 있습니다.
💡스위치 필터 사용 시 매개변수는 숫자형만 반응. 따라서 텍스트가 아닌 데이터 유형을 숫자로 설정하여 매핑.
💡BarIF(차트 타입 = 1, Revenue, null)
💡LineIF(차트 타입 = 2, Revenue, null)
이러한 토글 스위치 기능은 사용자에게 더 나은 데이터 시각화 경험을 제공합니다. 사용자는 필요에 따라 차트를 전환하며 데이터를 더 직관적으로 이해할 수 있습니다. 이는 데이터 분석의 효율성을 높이고, 더 나은 결정을 내리는 데 도움을 줍니다.
Google looker Studio에서 선형 및 막대 차트를 전환하는 토글 스위치를 구현하는 방법을 알아보았습니다. 이러한 기능은 데이터 분석을 더욱 직관적이고 효율적으로 만들어 줄 것입니다. 이제 여러분도 데이터 시각화를 한 단계 업그레이드 해보세요.
August 23, 2024
디지털 시대의 급속한 발전과 함께 마케팅 환경이 빠르게 변화하고 있습니다. 다양한 채널을 통한 고객 접점이 증가하면서 기업들은 복잡해진 고객 관계 관리(CRM)에 직면하고 있습니다. 이러한 상황에서 CRM 대시보드의 중요성이 더욱 부각되고 있습니다.
CRM 대시보드는 여러 채널에서 수집된 CRM 캠페인 데이터를 통합하여 분석하고, 현황을 한눈에 파악할 수 있게 해주는 강력한 방법입니다. 다양한 CRM 채널로 인해 단일 기준으로 분석하기 어려운 데이터들을 대시보드를 통해 효과적으로 통합하고 시각화함으로써, 마케터들은 보다 신속하고 정확한 CRM 마케팅 의사결정을 내릴 수 있게 됩니다.
이러한 CRM 대시보드의 활용은 단순히 데이터를 보여주는 것에 그치지 않습니다. 실시간으로 캠페인 성과를 모니터링하고, 고객 행동 패턴을 분석하며, 각 채널별 효과를 비교할 수 있게 해줍니다. 이를 통해 기업은 더욱 효율적인 마케팅 전략을 수립하고, 고객 경험을 개선하며, 궁극적으로는 ROI를 향상시킬 수 있습니다.
본 글에서는 범용적으로 활용가능한 CRM 대시보드를 템플릿을 제공합니다.
Looker Studio CRM 캠페인 대시보드 템플릿은 마케팅 캠페인의 성과를 실시간으로 모니터링하고, 데이터를 시각화하여 분석할 수 있도록 돕는 강력한 도구입니다. 이 템플릿을 통해 효과적인 의사결정을 지원하고, 전략을 최적화할 수 있습니다.
Looker Studio CRM 캠페인 대시보드 템플릿은 캠페인의 실시간 성과 모니터링, 데이터 시각화, 마케팅 전략 최적화를 목적으로 활용됩니다. 이를 통해 효과적인 의사결정과 전략적 개선이 가능합니다.
실시간 대시보드를 통해 데이터를 업데이트하고, 다양한 필터 기능을 사용하여 원하는 데이터를 정확히 추출할 수 있습니다. 맞춤형 리포트를 생성하여 필요에 따라 커스터마이즈된 분석이 가능합니다.
마케팅 팀, 경영진, 데이터 분석가 등 다양한 사용자들이 이 템플릿을 활용하여 캠페인 성과를 모니터링하고 분석할 수 있습니다.
1. 주기적인 업데이트
2. 필터 활용
3. 성과 지표 설정
4. 데이터 비교
5. 팀과 공유
템플릿은 마케팅 캠페인의 성과를 종합적으로 관리하고 분석하는 데 유용하며, 데이터를 기반으로 한 전략적 의사결정을 지원합니다.
August 21, 2024
루커 스튜디오(Looker Studio)는 구글에서 제공하는 강력한 데이터 시각화 도구입니다. 다양한 데이터 소스를 연결하여 직관적인 대시보드를 만들 수 있으며, 이를 통해 복잡한 데이터를 쉽게 이해할 수 있습니다. 특히, 마케팅, 영업, 운영 등 다양한 분야에서 유용하게 활용될 수 있습니다. 루커스튜디오가 궁금한 분들은 해당 글을 참고해주세요.
인터랙티브 퍼널 차트는 사용자 행동을 단계별로 분석하여 시각적으로 표현하는 방식입니다. 특히, 마케팅 퍼널 분석에 유용하며, 고객이 제품이나 서비스를 구매하기까지의 과정을 시각화하여 각 단계에서의 전환율을 파악할 수 있습니다.
퍼널 분석에는 두 가지 전환율 분석 방식이 존재합니다:
이 두 가지 방식 모두 데이터의 절대값(absolute) 형태와 비율(rate) 형태로 나눠서 분석할 수 있습니다. 이를 통해 어떤 단계에 문제가 있는지 비교하면서 파악할 수 있습니다.
퍼널 분석을 통해 마케팅 전략의 효과를 검토하고 개선할 수 있는 인사이트를 얻을 수 있습니다. 예를 들어, 특정 단계에서 이탈율이 높다면 해당 단계의 문제점을 찾아 해결하는 방식으로 퍼널의 전반적인 전환율을 개선할 수 있습니다.
루커 스튜디오 인터렉티브 퍼널 분석 차트 만들기 | Looker studio
인터랙티브 퍼널 리포트를 작성하는 단계는 크게 데이터 준비, 바 차트 생성, 차트에 인터랙티브 기능 추가로 나눌 수 있습니다.
먼저, 데이터 소스를 연결한 후 필요한 데이터를 정리합니다. 예시는 GA4 데모 데이터를 활용 하였습니다.
계산된 필드와 매개변수 설정이 필요합니다.
아래 이미지에 활용할 매개변수 2가지를 만들어봅시다.
Drop-off type
Value type
데이터 혼합을 이후에 활용할 예정입니다. 데이터 혼합에서 매개변수 사용을 위해서는 매개변수를 측정기준으로 아래와 같이 변경하는 작업이 필요합니다.
앞서 살펴봤던 매개변수의 계산된 필드 변환을 포함하여 3가지 측정기준을 만들어 줍니다.
Drop-off type dim
Value type dim
Funnel step order #
GA4의 전자상거래 5개 이벤트를 선택하고 해당 단계의 순서를 지정하는 이벤트를 만들어줍니다.
Looker Studio 코드 1
CASE
WHEN 이벤트 이름 = "add_to_cart" THEN 1
WHEN 이벤트 이름 = "add_shipping_info" THEN 2
WHEN 이벤트 이름 = "begin_checkout" THEN 3
WHEN 이벤트 이름 = "add_payment_info" THEN 4
WHEN 이벤트 이름 = "purchase" THEN 5
ELSE NULL
END
GA4 – Checkout steps
앞서 정의한 5개 외 나머지 이벤트는 Null로 처리 되었습니다. 해당 이벤트는 분석에 활용하지 않을 예정이므로 필터를 이용하여 제외 처리를 해줍니다. 해당 필터는 이후 단계에서 활용하도록 하겠습니다.
퍼널 분석을 위해선 직전단계와 다음 단계 사용자의 차이를 구해야합니다. 다만 루커스튜디오는 단일 소스로 해당 계산을 하기가 어렵기 때문에 데이터 혼합의 교차 조인을 활용하여 단계별 유저 차이를 구하는 식을 만들 수 있습니다.
데이터 준비가 완료되면, '차트 추가' 메뉴에서 바 차트를 선택합니다. 바 차트를 생성한 후, X축과 Y축에 표시할 데이터를 설정합니다.
3.4.1 설정 탭
Abs users
Looker Studio 코드 2
IF(
Values type dim = "Absolute values"
,
Total users
,
null
)
Abs exited users
Looker Studio 코드 3
IF(
Values type dim = "Absolute values"
,
IF
(
Drop-off type dim = 'Funnel drop-off'
,
IF(Ref Funnel step order = 1 AND Funnel step order != 1, (Ref Total users - Total users),null)
,
IF(Ref Funnel step order = Funnel step order - 1, (Ref Total users - Total users),null)
)
,
null
)
% active
Looker Studio 코드 4
IF(
Values type dim != "Absolute values"
,
IF
(
Drop-off type dim = 'Funnel drop-off'
,
CASE
WHEN Funnel step order = 1 THEN 1
WHEN Ref Funnel step order = 1 AND Funnel step order != 1 THEN (Total users ) / Ref Total users
ELSE NULL
END
,
CASE
WHEN Funnel step order = 1 THEN 1
WHEN Ref Funnel step order = Funnel step order - 1 THEN (Total users ) / Ref Total users
ELSE NULL
END
)
,
null
)
% drop off
Looker Studio 코드 5
IF(
Values type dim != "Absolute values"
,
IF
(
Drop-off type dim = 'Funnel drop-off'
,
IF(Ref Funnel step order = 1 AND Funnel step order != 1, (Ref Total users - Total users)/Ref Total users,null)
,
IF(Ref Funnel step order = Funnel step order - 1, (Ref Total users - Total users)/Ref Total users,null)
)
,
null
)
3.4.2 스타일 탭
인터랙티브 퍼널 리포트는 다양한 마케팅 시나리오에서 유용하게 활용될 수 있습니다. 예를 들어, 고객의 구매 여정을 단계별로 분석하여 각 단계에서 발생하는 이탈율을 파악하고, 이를 개선하기 위한 전략을 세울 수 있습니다.
또한, 특정 마케팅 캠페인의 성과를 분석할 때도 퍼널 리포트를 사용하면 각 채널별로 고객의 반응을 비교할 수 있습니다. 이를 통해 어떤 채널이 가장 효과적인지 파악하고, 마케팅 예산을 효율적으로 분배할 수 있습니다.
August 21, 2024
지난 편에서는 각 솔루션별 데이터 수집 방법(바로가기)에 대해서 알아보았습니다.
1. Third Party 데이터 수집 자동화
2. 수집된 데이터 전처리하기
3. 시각화하기
이번에는 수집된 데이터를 활용하여 어떻게 전처리 해야 되는지 알아보겠습니다.
각 데이터 셋들은 분석하려는 차원(dimension)을 기준으로 집계(group by)를 통해서 동일한 형태로 전처리한 후 조인 연산을 통해 데이터를 통합하는 과정이라고 생각하시면 됩니다.
마케팅 성과를 분석하기 위해서 필요한 데이터 다음과 같습니다.
Dimension : 날짜(일별), 유입소스(GA4 = utm_source, Appsflyer = Media_source), 캠페인
Metric : 구매수, 매출, 인스톨 수
GA4가 웹, 앱 모두 트래킹을 할 수 있지만 WEB은 GA4, APP은 MMP로 성과를 합쳐서 보실 겁니다.
GA4, Firebase는 앱과 웹 내 고객 행동 분석에 주로 쓰이는 툴이고 MMP 는 광고 성과를 측정하는 툴이니깐요
그러면 이렇게 됩니다.
<GA4 데이터 집계> - WEB
Dimension : 날짜(일별), 세션 소스, 캠페인
Metric : 구매수, 매출
<MMP 데이터 집계> - APP
Dimension : 날짜(일별), Media_source, 캠페인
Metric : 구매수, 매출, 인스톨 수
집계된 두개의 테이블을 UNION 다시 한번 집계를 해줍니다.
이렇게 하면 집계된 웹앱 데이터 통합이 되었습니다. (MMP 데이터 전처리 과정은 생략)
Dimension : 날짜(일별), Media_source, 캠페인
Metric : 구매수, 매출, 인스톨 수
브레이즈 커런츠(braze currents)데이터는 유저 인게이지먼트 데이터입니다.
여기에는 유저별로 어떻게 우리 서비스로 참여를 하고있는지를 기록한 데이터들이 기록되어 있으니 메시지 발송 수단별로 노출, 클릭 성과들이 들어있습니다. 하지만 우리는 성과(구매) 판단은 MMP, GA4로 해야 하므로 서로 다른 데이터들을 어떻게 통합해서 볼지를 알아보겠습니다.
커런츠 데이터는 아래와 같이 구성이 되어있습니다.
위와 같은 데이터를 일자, 메세지 발송 타입, 캠페인 or 캔버스별 발송수, 노출수, 클릭수 데이터를 집계를 하기 위해서는 유니크한 ID를 나타내는 차원 데이터를 만들어 줘야 합니다.
동일한 유저라도 캠페인, 캔버스, 베리에이션 등 다양한 형태로 타겟이 될 수 있으므로, 아래와 같이 유니크한 차원 데이터를 만들기 위해 새로운 아이디를 생성합니다. (해당 아이디는 발송 타입별로 카운트하기 위해 활용됩니다.)
차원의 이름은 원하시는대로 명명하시면 되고 저는 user_id_dispatch_id 이렇게 명명하였습니다.
-- 태블로 계산식
IFNULL([User Id],'') + '-' +
IFNULL([Campaign Id],'') + '-' +
IFNULL([Message Variation Id],'') + '-' +
IFNULL([Canvas Id],'') + '-' +
IFNULL([Canvas Variation Id],'') + '-' +
IFNULL([Canvas Step Message Variation Id],'') + '-' +
IFNULL([Dispatch Id],'')
다음으로 캠페인 단위로 성과를 집계할 예정이기 때문에 캠페인 차원을 만들어줘야 합니다.
왜냐하면 브레이즈에는 캠페인과 캠버스로 나뉘는데 campaign_name 값이 존재하면 canvas_name 이 빈값이고 거꾸로 canvas_name 값이 존재하면 campaign_name이 빈값이기 때문입니다.
-- 태블로 계산식
IFNULL([Campaign Name],[Canvas Name])
{send_type}_click 이런 식으로 차원 이름을 명명하고 아래와 같은 태블로 계산식으로 차원을 만들어줍니다.
이렇게 되면 email_click, push_click, in_app_message_click 이벤트별로 ID(user_id_dispatch_id)를 생성됩니다.
-- 태블로 계산식
{ FIXED [user_id_dispatch_id],[Event Type] : COUNTD(IF CONTAINS([Event Type], 'inappmessage_click') THEN [user_id_dispatch_id] END)}
최초에 S3에 적재된 currents 데이터(avro 파일)를 DW에 적재할 때 파일별 Event 구분을 위해 Event_Type 칼럼을 생성하였습니다. (이전 글을 참고해 주세요)
['users.messages.email.Open.avro',
'users.messages.email.Click.avro',
'users.messages.pushnotification.Send.avro',
'users.messages.inappmessage.Click.avro',
'users.messages.email.Delivery.avro',
'users.messages.pushnotification.Open.avro',
'users.messages.inappmessage.Impression.avro']
-- 태블로 계산식
IF CONTAINS([Event_Type], 'email') then 'email'
elseif CONTAINS([Event_Type], 'push') then 'push'
elseif CONTAINS([Event_Type], 'inappmessage') then 'iam' end
이제 집계를 위한 전처리는 완료되었습니다(세세한 전처리 과정은 생략됨)
이제 위에서 만들었던 차원을 가지고 집계를 합니다.
일자별, send_type, campaign/canvas, device_category 별 오픈, 클릭, 노출, delivery 데이터는 아래와 같이 집계되었습니다.
통합된 GA4 / MMP 데이터와 커런츠 데이터를 통합해야 되는 과정이 또 남았습니다.
어떻게 이 두 데이터를 엮어야 될까요?
조인키를 위에서 집계한 차원 데이터로 잡고 Full Outer Join으로 데이터를 조인합니다.
이유는 특정 날짜에 브레이즈 커런츠 데이터는 존재하는데 성과 데이터(GA4, MMP) 데이터가 존재하지 않는다면 매칭될 수 없으니 누락이 되어버립니다. 거꾸로 성과 데이터(GA4, MMP) 데이터가 존재하는데 브레이즈 커런츠 데이터가 존재하지 않을 경우 누락이 되어버리기 때문입니다.
광고 성과 데이터 전처리하는 예시를 통해 Full Outer JOIN 이 어떻게 데이터를 처리되는지 예시를 통해 잠깐 확인해 보겠습니다
2024년 1월 1일 twitter 채널의 e 캠페인에서 비용이 1000원 소진했습니다. 그런데 GA4, MMP 데이터에는 해당 광고 채널의 캠페인에서 전환이 아예 일어나질 않았습니다. 하지만 비용이 발생했기 때문에 이 데이터를 버릴 수는 없겠죠? 무조건 살려야 됩니다.
거꾸로 광고 데이터에서 비용은 발생하지 않았는데 Attribution Window로 인해 전환이 발생했습니다. 이것도 버릴 수 없겠죠?
이 두 데이터에서 LEFT JOIN 또는 RIGHT JOIN을 수행하게 되면 조인키에 대응하지 않은 데이터는 매칭이 안되어 누락이 되어 버립니다. 이를 방지하기 위해서 INNER, LEFT OUTER, RIGHT OUTER 조인 집합을 생성하는 FULL OUTER JOIN을 수행합니다.
결과를 보면 각 테이블의 모든 데이터들이 출력이 되는 걸 알 수 있습니다.
본론으로 돌아와서!
Full Outer Join을 수행하기 전에 앞서 GA4, MMP 데이터를 합친 후 우리는 CRM 데이터만 필요하기 때문에 CRM 데이터만 필터를 합니다.
이제 Braze Current 데이터와 성과 데이터(GA4, MMP)를 날짜, 유입소스명, 캠페인명을 조인키로 두고 Full Outer Join 을 수행합니다.(분석하고자 하는 차원데이터가 추가로 더 있다면 추가로 필요한 차원도 조인키로 활용하시면 됩니다.)
이와 같은 방식으로 Paid 성과 데이터를 전처리 할 때도 위와 같은 방법으로 수행하면 됩니다.
데이터를 전처리 할 때 중요한 건 분석하고자 하는 결과물을 먼저 그려본 뒤에 결과를 도출하기 위해서 각 테이블을 어떻게 만들어 갈 것인지 생각하면서 만들어가면 됩니다. 실제로 전처리하다 보면 자잘하게 처리해야 되는 부분이 상당히 많습니다.
특히 데이터를 통합하기 위해서는 무엇보다 네이밍 컨벤션이 가장 중요한 점은 강조하지 않을 수 없습니다.
데이터 수집까지 잘했는데 캠페인 네이밍 컨벤션이 서로 다르다?.. 데이터 통합은 불가능합니다..
네이밍 컨벤션은 말 그대로 명명 규칙입니다.
위에서 언급한 대로 우리가 데이터 통합을 위해 차원 데이터를 조인키로 활용한다고 했었는데 캠페인 차원이 MMP, GA4, Braze or 광고 데이터가 모두 다르면 안 되겠죠? 아래와 같이 통일을 시켜야만 데이터를 연결할 수 있습니다.
여기까지 마케팅 데이터 수집부터 전처리 과정까지 알아보았습니다.
다음 글에서는 이 데이터를 활용해서 시각화 하는 방법을 살펴보겠습니다.
July 29, 2024
쿠키(Cookie)란 사용자가 웹사이트를 방문할 때마다 웹 브라우저를 통해 인터넷 사용자의 컴퓨터나 다른 기기에 설치되는 기록 정보 파일을 뜻합니다. 이는 퍼포먼스 마케팅의 필수도구로써 마케팅 활동의 세부적인 추적, 개인화 및 최적화를 가능하게 했습니다.
퍼포먼스 마케팅에서 구체적인 쿠키의 기능은 다음과 같습니다.
1. 사용자 행동 추적
2. 개인화
3. 리타겟팅
4. A/B 테스트 및 최적화
하지만 데이터 보호 규정을 시작으로 데이터 보호를 강화하기 위한 전세계의 흐름이 있었고, 애플을 시작으로 구글 폭스 등 많은 웹 브라우저 회사들이 쿠키 제공 중단을 선언헀습니다.
쿠기 제공이 중단된다면, 기존의 쿠키를 이용해 진행하던 기능들을 더 이상 진행할 수 없게 됩니다. 그 결과 각 매체의 효율이 감소하고 신규 고객을 획득하는데 필요한 비용이 증가할 것으로 예상됩니다. 구글이 쿠키의 지원 중단 시점을 2025년으로 연기했다고는 하지만, 마케터들은 선택이 아닌 필수로 기존 광고 방식에 변화가 필요한 상황입니다.
쿠키 리스 상황에서 발생하는 여러 문제들에 대비하기 위해 진행할 수 있는 여러 방법들이 있습니다. 그 중 고객사에서는 현 상황에서 다양한 매체를 활용하기보다 최고의 효율을 낼 수 있는 매체를 선별해서 효율이 좋은 매체에 집중하고자 합니다. 이를 위해 각 광고매체의 성과를 실시간으로 모니터링할 수 있는 대시보드가 필요했습니다.
태블로를 통해 다양한 광고채널에 분산되어 모니터링이 어려웠던 지표들을 태블로를 통해 하나의 대시보드에서 관리함으로써 어느 채널의 어떤 광고가 효율이 좋은지를 빠르게 파악하고, 이를 통해 어떤 채널에 더 예산을 증가하거나 감소해야 할지에 대한 의사결정을 하는데 활용할 수 있습니다.
대시보드를 제작하기 위한 과정은 크게 환경점검, 데이터 수집, 데이터 저장, 데이터 시각화의 4단계로 구분할 수 있습니다.
첫 번째 환경 점검 단계는 대시보드 구축을 위한 대시보드 기획단계입니다. 이 단계에서는 데이터의 출처를 정의하고, 데이터 소스부터 시각화툴인 태블로까지 이어지는 데이터 파이프라인을 그립니다. 최종적으로 대시보드에서 어떤 데이터를 대시보드에 구현하고, 이를 어떤 방식으로 시각화할지에 대한 대시보드 기획단계라고 할 수 있습니다.
해당 광고성과 대시보드를 구현하기 위해서는 광고채널로부터 나오는 광고데이터를 데이터 소스로 정의하고, 이를 통합하는 과정이 필요합니다. 이를 위한 첫 번째 단계로 Meta, Google Ads등 여러 광고 채널에서 나온 데이터를 ETL툴인 Funnel io에서 통합합니다. 이후 MMP인 에어브릿지의 데이터를 통합해 이를 하나의 구글 스프레드시트 적재합니다. 최종적으로 태블로를 통해 시각화하는 방식으로 데이터 파이프라인을 구현했습니다.
해당 스텝으로 데이터 파이프라인을 구현했을 때의 장점은 어디서부터 데이터가 들어오게 되고, 문제가 발생했을 때 문제 발생원인을 직관적으로 확인가능하다는 점입니다.
두 번째 데이터 수집 단계는 실질적으로 필요한 데이터를 정의하는 단계입니다.
UTM 및 parameter를 기반한 광고성과 추적을 위한 계층 구조인 네이밍 컨벤션(Naming Convention)을 정의하고 이를 통해 광고의 위계질서를 설정합니다. 해당 데이터를 통해 광고성과 데이터 정의하고 수집할 수 있습니다.
네이밍 컨벤션(Naming Convention) 정의를 완료했다면, 이를 토대로 데이터 스키마를 작성해야 합니다. 데이터 스키마란 데이터베이스의 구조와 제약조건에 관해 기술한 것을 뜻합니다. 데이터 이름 및 형태(ex. 숫자/문자)에 대해 정의함으로써 향후 데이터 스키마 하나만 확인해도 어떤 데이터 형태인지 파악할 수 있도록 합니다.
세 번째 데이터 저장 단계는 네이밍 컨벤션(Naming Convention)과 데이터 스키마를 통해 정의한 데이터를 저장하는 단계입니다.
광고성과 확인 시, 데이터의 정확성을 확보하고, 다양한 광고채널의 기여도를 정확하게 측정하기 위해 미디어 데이터 뿐만 아니라 MMP 데이터를 함께 확인해야 합니다. 이를 위해 미디어(메타, 구글애즈,..)와 MMP의 소스를 조인하는 과정이 필요합니다. 이를 위해 키값을 정의하고, 해당 키값을 기준으로 데이터를 조인합니다.
마지막 데이터 시각화 단계는 정의된 데이터를 바탕으로 대시보드를 구현하는 단계입니다.
대시보드 구현에 앞서 퍼포먼스마케터들과 협의를 진행합니다. 실제 최종 대시보드를 사용할 퍼포먼스마케터들과의 논의를 통해 대시보드의 형태 및 기능을 구체화할 수 있습니다.
마지막으로 확정된 기획안을 토대로 태블로를 통해 최종 대시보드를 구현하면 대시보드 제작과정이 마무리됩니다.
July 19, 2024
KPI 대시보드 템플릿을 활용하여 비즈니스 주요 지표를 확인하며 데이터 기반 의사결정에 활용할 수 있습니다. 매출, 이익, 구매수 등 특히 지역별 구매 관점의 분석을 통해 실행 가능한 인사이트를 제공합니다.
1. 스프레드시트 사본 만들기
2. 루커스튜디오 사본 만들기 클릭
3. 리소스 → 추가된 데이터 소스 관리 클릭
4. 작업 → 수정 클릭
5. 루커스튜디오와 스프레드시트 연동 승인 진행
6. 앞서 사본을 만들었던 파일 찾아서 연결
7. 데이터 새로고침하면 데이터 확인이 됩니다.
July 18, 2024
프로모션 분석은 마케팅 캠페인의 일환으로 진행된 다양한 프로모션 활동들의 효과를 평가하고 측정하는 과정입니다. 이 과정을 통해 기업은 프로모션 활동이 소비자의 구매 결정, 브랜드 인식, 시장 점유율 등에 미치는 영향을 분석할 수 있습니다. 프로모션 분석을 위해 판매 데이터, 소비자 행동 데이터, 온라인 트래픽 데이터 등 다양한 데이터 소스를 활용할 수 있습니다.
프로모션 분석은 기업이 자원을 효율적으로 배분하고, 마케팅 목표를 달성하기 위해 필수적인 과정입니다. 이를 통해 기업은 다음과 같은 이점을 얻을 수 있습니다.
개별 프로모션 분석과 통합 프로모션 분석을 함께 수행함으로써, 보다 정교하고 효과적인 마케팅 전략을 개발할 수 있으며, 이는 최종적으로 기업의 성장과 수익성 향상에 기여하게 됩니다.
1. 전체적인 마케팅 전략의 효율성 평가
개별 프로모션 분석을 통해 특정 프로모션의 성공 여부를 파악할 수 있지만, 통합 프로모션 분석을 함께 수행하면 여러 프로모션 간의 상호작용과 그 영향을 이해할 수 있습니다. 이는 전체 마케팅 전략의 효율성을 평가하는 데 중요합니다.
2. 다채널 프로모션 전략의 최적화
현대 마케팅은 다양한 채널을 통해 이루어집니다. 개별 프로모션 분석과 통합 분석을 병행함으로써, 각 채널의 성과를 정확히 파악하고, 채널 간 시너지를 극대화하는 전략을 수립할 수 있습니다.
3. 고객 행동의 종합적 이해
고객은 다양한 프로모션에 노출되며, 이러한 노출이 고객의 구매 결정에 복합적으로 작용합니다. 개별 프로모션 분석과 통합 분석을 결합함으로써, 고객 행동의 더 깊은 이해를 도모할 수 있습니다.
4. 마케팅 자원의 효율적 배분
통합 프로모션 분석을 통해 얻은 인사이트는 마케팅 자원의 효율적인 배분을 가능하게 합니다. 각 프로모션의 효과를 개별적으로뿐만 아니라 전체적인 관점에서 평가함으로써, 예산을 더 효과적인 프로모션에 집중할 수 있습니다.
5. 장기적 마케팅 전략 수립
개별 프로모션의 성공은 단기적인 성과에 초점을 맞출 수 있지만, 통합 프로모션 분석은 장기적인 관점에서 마케팅 전략을 수립하는 데 도움을 줍니다. 다양한 프로모션의 장기적인 영향력과 지속 가능성을 평가할 수 있습니다.
6. 경쟁 우위 확보
통합 프로모션 분석을 통해 시장 내 경쟁 상황과 자사의 위치를 종합적으로 이해하고, 경쟁 우위를 확보할 수 있는 전략을 수립할 수 있습니다. 이는 경쟁사 대비 우위를 점하는 데 중요한 역할을 합니다.
고객사에서는 프로모션 분석 진행 시 앰플리튜드를 통한 단일 프로모션 위주의 분석만을 진행했었습니다.
앞서 언급했듯이 단일 프로모션 분석만 진행하게 된다면 결과적으로 장기적인 효과나 전체적인 마케팅 전략과의 연계성이 부족해지는 문제가 있습니다.
이러한 문제를 해결하기위해 프로모션을 통합적으로 확인하는 것에 대한 필요성이 대두되었습니다. 먼저, 통합 프로모션 분석을 위해 1차적으로 앰플리튜드를 통해 얻은 개별 프로모션별 데이터를 스프레드시트에서 취합해 프로모션들끼리 비교하며 인사이트를 도출했습니다.
하지만 시트를 통해 프로모션을 비교 분석하는 것에는 크게 2가지 정도의 한계가 있었습니다.첫째, 프로모션이 진행될 때마다 데이터를 확인하고, 직접 시트에 옮기는 작업을 해야 하기 때문에 자동화가 어렵다는 점입니다.둘째, 시트에 텍스트로만 적혀있다보니 해당 데이터가 무엇을 의미하는지 직관적으로 인지하기가 어렵다는 점입니다.이러한 한계를 극복하기 위해 고안한 것이 전체 프로모션을 한눈에 파악할 수 있는 대시보드를 구현하는 것이었습니다.
대시보드는 태블로(Tableau)를 사용하여 구현했습니다.
태블로는 데이터를 분석하고 시각적으로 표시할 수 있는 비즈니스 인텔리전스(BI)툴입니다. 태블로를 통해 대시보드를 제작했을 때의 장점은 다음과 같습니다.
1. 여러 raw 데이터 통합: 태블로는 스프레드시트, 데이터베이스, 클라우드 서비스 및 빅데이터 플랫폼과 같은 다양한 데이터 원본들을 원활하게 통합됩니다. 이러한 통합을 통해 다양한 소스의 데이터를 연결 가능하게 하여 데이터 사일로를 해결하고 포괄적인 분석을 가능하게 합니다.데이터 사일로(Data Silo*)**란? 서로 분리되어 기업의 다른 부서에서 액세스할 수 없는 데이터 스토리지 및 관리 시스템을 의미하며, 이는 전사관점의 의사결정을 방해하고, 비효율성이 증가시킵니다.
2. 실시간 데이터 시각화: 태블로는 라이브 데이터베이스 및 스트리밍 데이터를 비롯한 다양한 데이터 원본에 연결하여 실시간으로 데이터 업데이트할 수 있습니다. 이 기능을 사용하면 변경되는 데이터를 빠르게 모니터링하고 분석하여 빠른 의사 결정을 위한 시기적절한 통찰력을 제공할 수 있습니다.
3. 다양한 시각화 옵션: 태블로는 막대 차트, 선 차트, 산점도, 지도 등을 포함하여 다양한 시각화 옵션을 제공합니다. 정보를 효과적으로 전달하기 위해 데이터에 가장 적합한 시각화 유형을 선택할 수 있습니다.
4. 대화형 대시보드: Tableau를 사용하면 사용자가 직접 데이터를 탐색하고 상호 작용할 수 있는 고도의 대화형 대시보드를 만들 수 있습니다. 사용자는 세부 정보를 드릴다운하고, 데이터를 필터링하고, 임시 분석을 수행하여 데이터 탐색의 깊이를 향상할 수 있습니다.
통합 프로모션 분석을 위해 정의한 스케치입니다. 해당 스케치는 피그마(Figma)를 통해 작업했습니다. 스케치를 피그마로 제작한 이유는 여러가지가 있는데, 그 중 가장 중요한 이유는 피그마가 다양한 디자인 도구와 기능을 제공하기 때문에 원하는 디자인을 쉽고 효율적으로 제작할 수 있기 때문이었습니다.
스케치 대시보드를 기준으로 필요한 데이터를 정리해보면 데이터는 크게 3가지로 분류할 수 있습니다.
1. 프로모션 데이터
2. 매출 데이터
3. CRM 데이터
프로모션명, 진행일자, 분류, 컨셉 등 프로모션 진행 관련 기본 정보 및 프로모션 관련 아이템 정보가 프로모션 데이터에 해당하며, 각 프로모션에 관련된 실제 결제 정보가 매출 데이터에 해당합니다. 마지막으로 유저들에게 발송된 메시지의 발송일 및 캠페인명, 발송수 등이 CRM 데이터에 해당합니다.
다음으로 앞서 정리한 데이터를 좀 더 구체적으로 정리합니다. 각 항목별 필요한 정보가 정확히 무엇인지, 해당 데이터는 형태로 관리되어야 하는지를 비롯해 각 데이터를 연결하기 위해 어떤 컬럼을 키값으로 사용해야 하는지 등을 파악하여 정리합니다.
이때 테이블 색상에 차이를 두어 각 데이터가 어떤 소스에서 관리되는지 직관적으로 파악할 수 있도록 합니다.
필요 데이터 정의를 완료했다면, 데이터 추출을 위해 해당 데이터에 대해 알맞은 형태로 적재를 요청하는 단계가 필요합니다. 효율적인 작업을 위해 원하는 이벤트 및 세부 항목(*이벤트 프로퍼티, 유저 프로퍼티, 적재형식, 적재기준일, 요청사유 등) 관련 내용을 최대한 상세하게 기입합니다.
원하는 이벤트 및 세부 항목을 작성한 다음에 해당 내용을 정확히 어떤 형태로 적재되기 원하는지를 보여주는 샘플을 함께 작성합니다.
이제 데이터 연결을 진행해야 합니다. 해당 프로젝트에는 구글 스프레드시트, 엑셀 파일, 구글 클라우드(빅쿼리)의 소스가 사용되었습니다. 저는 그 중 ‘구글 클라우드’에 초점을 맞추어 데이터 연결과정에 대해 설명하려고 합니다.
구글 클라우드를 사용한 이유는 무엇일까요? 그 이유는 앰플리튜드(Amplitude)에 있는 매출 데이터를 연결하기 위함입니다. 앰플리튜드는 그 자체로 사용성이 높이며, 매출 데이터를 비롯하여 많은 데이터를 손쉽게 확인할 수 있는 툴입니다.
하지만 지금과 같이 더 많은 내용을 확인하기 위해서는 다른 로데이터와 결합을 해서 데이터를 확인하는 과정이 필요합니다. 이 때, 앰플리튜드에서 태블로로 데이터를 바로 전달할 수는 없습니다.
태블로로 데이터를 전송하기 위해서는 앰플리튜드의 로데이터를 가공하여 알맞은 형태로 테이블을 가공해주는 선행작업이 필요합니다. 앰플리튜드와 연동이 가능할 뿐만아니라 태블로와의 연동도 가능해야 하며 무엇보다 앰플리튜드로부터 전달받은 로데이터를 가공할 수 있는 플랫폼이여야합니다.
이 작업을 수행할 수 있는 플랫폼은 무엇일까요? 저희는 이러한 요건을 모두 고려할 때 해당 작업을 수행하기에 가장 적합한 것이 Google BigQuery라고 판단했고, 이를 활용하기로 했습니다.
앰플리튜드는 기본적으로 빅쿼리로 데이터를 바로 내보내는 기능을 제공합니다. 우선 해당 기능을 활용해 앰플리튜드 데이터를 빅쿼리에 내보내는 작업을 진행했습니다.
해당 방법을 통해 데이터를 받아올 경우, 이벤트 프로퍼티가 분리된 표 형식으로 넘어오는게 아니라 json이라는 괄호 안에 키와 값형태로 구성돼 있는 포맷(*”{”~”}”)으로 데이터가 불러와지는 문제가 발생했습니다.
태블로는 표 형태의 데이터 프레임을 인식하므로, 태블로에 데이터를 연결하기 위해서는 앰플리튜드 로데이터를 전처리하는 과정이 필요했습니다.
해당 데이터를 전처리하기 위해서는 로데이터의 형태를 파악해야 했습니다. 데이터를 확인한 결과, 텍소노미에 따라 로데이터의 구조가 다를 수 있음을 확인했습니다.
구매 이벤트의 경우 아이템 수량이 1개일 경우에는 값으로, 2개 이상일 경우에는 배열로 이벤트 프로퍼티 데이터가 들어오는 구조였습니다.
{"item_brand":"A",
"item_category":"JAJL",
"item_id":"99999",
"item_name":"GARAGEJACKET",
"item_price":"198000",
"order_id":"20240310105120687",
"total_order_items_quantity":1
…}
{"item_brand":["B","C"],
"item_category":["LFOT","반팔 셔츠"],
"item_id":["88888","77777"],
"item_name":["TRAVEL COMB","CUSTOM SHIRT"],
"item_price":[18000,113000],
"total_order_items_quantity":2}
따라서 데이터 전처리를 위해서는 각 케이스별로 다른 전처리과정을 거쳐야했습니다. 아이템 수량이 1개일경우는 JSON의 값을 파싱하는 처리를 하고, 2개 이상일 경우에는 JSON의 배열을 파싱하는 처리를 진행했습니다.
해당 내용을 처리하는 쿼리문 다음과 같습니다. 케이스별로 결과 테이블이 도출되면, 두 테이블을 유니온하여 한 테이블로 합치는 작업을 진행했습니다.
WITH single_item_orders AS (
SELECT event_time, user_id,
JSON_VALUE(event_properties, '$.order_id') AS order_id,
JSON_VALUE(event_properties, '$.item_category') AS item_category,
JSON_VALUE(event_properties, '$.item_brand') AS item_brand,
JSON_VALUE(event_properties, '$.item_name') AS item_name,
JSON_VALUE(event_properties, '$.item_id') AS item_id,
JSON_VALUE(event_properties, '$.item_price') AS item_price
FROM amplitude_test.EVENTS_353961
WHERE event_type='total_items_order_completed'
AND JSON_VALUE(event_properties,'$.total_order_items_quantity')='1'
),
multi_item_orders AS (
SELECT event_time, user_id,
JSON_VALUE(event_properties,'$.order_id') AS order_id,
item.item_category, item.item_brand, item.item_name, item.item_id, item.item_price
FROM amplitude_test.EVENTS_353961,
UNNEST(
ARRAY(
SELECT AS STRUCT
item_category, item_name, item_id, item_price, item_brand
FROM
UNNEST(JSON_VALUE_ARRAY(event_properties,'$.item_id')) AS item_id WITH OFFSET AS pos
JOIN UNNEST(JSON_VALUE_ARRAY(event_properties,'$.item_category')) AS item_category WITH OFFSET AS pos_cat ON pos = pos_cat
JOIN UNNEST(JSON_VALUE_ARRAY(event_properties,'$.item_brand')) AS item_brand WITH OFFSET AS pos_br ON pos = pos_br
JOIN UNNEST(JSON_VALUE_ARRAY(event_properties,'$.item_name')) AS item_name WITH OFFSET AS pos_name ON pos = pos_name
JOIN UNNEST(JSON_VALUE_ARRAY(event_properties,'$.item_price')) AS item_price WITH OFFSET AS pos_price ON pos = pos_price
)
) AS item
WHERE
JSON_VALUE(event_properties,'$.total_order_items_quantity')!='1'
)
-- 아이템 수량= 1인 경우의 결과와 아이템 수량= 2 이상인 경우의 결과를 합치기
SELECT *
FROM single_item_orders
UNION ALL
SELECT *
FROM multi_item_orders;
해당 작업을 완료한 결과는 다음과 같습니다.
UNNEST()함수를 포함한 단계를 거쳐 데이터 전처리를 진행할 경우 JSON을 데이터 프레임 형태, 즉 테이블 형식으로 바꾸는 것은 가능했습니다.
좀 더 직관적으로 UNNEST()함수를 이해하기 위해 예시를 들어보겠습니다. name이라는 컬럼은 값이지만, preferred langauge는 배열일 경우 빅쿼리는 테이블을 왼쪽처럼 인식합니다. 즉 값으로 구성된 행에 배열로 구성된 행을 묶어두는 구조인데요, 이 묶어둔다라는 것을 nest된 상태라고 하고, 값을 배열에 맞춰서 풀어주는 행위를 unnest라고 합니다.
하지만 UNNEST()함수를 사용할 경우 단점이 있었습니다.이 함수는 배열 내 각 요소를 별도의 행으로 확장하는 기능을 제공하기 때문에 비정규화된 데이터나 중첩된 데이터 구조를 다룰 때 필수적입니다. 그러나 비용관리의 관점에서 주의가 필요하다는 단점이 있습니다. UNNEST() 함수는 배열 내의 각 요소를 별도의 행으로 확장하기 때문에 배열에 많은 요소가 포함되어 있을 경우, 결과 데이터 세트의 크기가 급격히 증가할 수 있습니다. 이는 쿼리 처리 시간을 늘리고 처리해야 할 데이터 양이 증가함으로써 비용이 증가하는 원인이 될 수 있으며, 처리한 데이터 양에 따라 비용이 청구되는 빅쿼리에서는 쿼리 비용의 증가로 이어질 수 있습니다.
실제 프로젝트를 진행하면서 해당 쿼리문을 사용해 약 한달 간 매 시간마다 업데이트 되도록 쿼리를 돌려본 데이터 업데이트를 진행한 결과, 총 8GB를 사용해 월 40만원 가량의 비용이 소진되었습니다. 따라서 비용 효율성 측면을 고려해 전처리를 클라우드 SQL구문이 아닌 파이썬 코드로 처리하도록 우회했습니다.
앰플리튜드의 데이터를 빅쿼리로 바로 내보내는 것이 아니라 앰플리튜드 서버를 호출하여 데이터를 받아오는 방식으로, 빅쿼리에서 로우 데이터를 쌓은 후 이를 전처리하는 방식 대신 전처리를 완료한 후 가공된 데이터를 빅쿼리에 쌓는 방식으로 변경했습니다.
즉, 기존 Amplitude → Bigquery → Tableau의 단계에서 데이터 전처리를 위해 Google Cloud Storage를 추가한 Amplitude → Google Cloud Storage → Bigquery → Tableau 단계로 진행됩니다.
이 작업을 위해서는 우선 앰플리튜드와 Google Cloude Storage를 연결하는 작업을 진행해주어야 합니다. 먼저 Cloud Storage에서 고객사 프로젝트 관련 Bucket을 생성합니다.
다음으로 IAM 및 관리자 → 서비스 계정을 클릭하여 새로운 서비스 계정을 생성합니다.
서비스 계정을 생성한 후, 해당 서비스 계정에 해당하는 이메일을 확인합니다.
키 → 키 추가를 클릭하여 키를 생성합니다.
IAM 및 관리자 → 역할을 클릭하여 새로운 역할을 생성합니다. Send Amplitude Event Data to Google Cloud Storage(문서링크)를 참고해서 역할에 다음 5개의 권한을 부여해줍니다.
앞서 생성한 버킷으로 돌아가서 권한을 클릭한 후 액세스 권한 부여를 클릭합니다.
서비스 계정에서 추가한 새로운 계정에 해당하는 이메일을 입력한 후, 역할을 지정해줍니다.이때 역할은 1.저장소 기존 버킷 소유자와 2.역할 만들기를 통해 생성한 역할, 총 2개를 부여해줍니다.
해당 작업까지 완료했으면 앰플리튜드에서 Google Cloude Storage를 연결하는 작업을 진행해주어야 합니다. 앰플리튜드 Data → Destination에서 Google Cloud Storage를 클한 후 GCS로 보낼 데이터를 선택합니다.
서비스 계정 생성에서 생성한 JSON키 파일을 Service Account Key에 업로드 한 후, 하단의 Bucket Name에 구글 GCS에서 생성한 버킷 이름을 입력해줍니다.
해당 과정을 성공적으로 마치면 Google Cloud Storage Bucket에 데이터가 들어옵니다.
연동이 완료되면 다음과 같이 생성됩니다.
앰플리튜드는 export API라는 서비스를 제공하므로 이 API를 호출하여 데이터를 불러올 수 있습니다. 파이썬의 request모듈로 API요청을 보내는 함수를 구현하고, 다음으로 데이터 전처리 모듈은 pandas모듈을 활용하여 JSON 포맷을 테이블 형식의 데이터 프레임으로 전처리했습니다. 1차 시도당시 빅쿼리로 진행했던 조건문을 프로그래밍 언어로 대체한 것입니다. 마지막으로 빅쿼리 클라이언트 라이브러리를 설치하여 전처리한 테이블을 빅쿼리로 업로드하는 함수를 구현했습니다.
내용을 요약하면 다음과 같습니다.
1. 앰플리튜드
2. GCS
3. GCF
ㅤ: 버킷에 객체가 생성될 때마다 객체 데이터를 전처리한 후, 빅쿼리에 로드하는 함수 구현
해당 작업을 완료하면, 최종적으로 빅쿼리에 데이터가 정상적으로 저장되며, 태블로에 연결해서 시각화할 수 있습니다.
통합 프로모션 대시보드이므로 프로모션 간의 비교가 가능하도록 하는 것이 최우선순위 목표였습니다. 하지만 통합 프로모션 대시보드 내에서 개별 프로모션의 성과 및 관련 내용도 바로 파악이 가능하도록 대시보드를 구성하고자 했습니다.
프로모션 리스트 부분에서 프로모션 성과들을 직관적으로 비교해서 확인할 수 있도록 했으며, sales summary내의 각 KPI의 프로모션 평균값을 제공하여 프로모션의 평균값과의 비교가능하게함으로써 프로모션 간의 비교 분석이 가능하도록 대시보드를 구성했습니다. 또한 프로모션 리스트에서 개별 프로모션 클릭 시 해당 프로모션에 해당하는 내용으로 필터링이되어 표현되게함으로써 개별 프로모션의 성과 역시 파악할 수 있도록 대시보드를 구성했습니다.
데이터를 태블로로 넘긴 후 ERP 기준 매출 데이터와 정합성을 확인하는 과정에서 매출액의 약 0.2%의 차이가 발생함을 확인했습니다. 이는 최종 매출액에서 반품 및 교환 비용을 고려하지 못했기 때문에 발생한 결과였습니다.
따라서 앰플리튜드의 반품 및 교환관련 이벤트인 return_completed의 return_paid_shipping(교환 및 환불금액)관련 항목을 추가하여 해당 금액을 반영해줌으로써 데이터 정합성을 맞췄습니다.
해당 대시보드를 사용하는 고객사는 프로모션의 분류를 크게 할인과 쿠폰 2가지로 구분하고 있습니다.
즉, 1차적으로 가격을 낮춰 세일가에 제품을 구매하는 ‘할인’ 프로모션과 쿠폰을 소지하고 있는 고객이 쿠폰을 직접 사용해서 제품을 구매하는 ‘쿠폰’ 프로모션이 존재합니다. 이때 쿠폰 프로모션의 경우 총 매출 관련 항목과 쿠폰 매출 관련 항목으로 구분해서 성과를 확인할 수 있지만, 할인 프로모션의 경우 쿠폰 관련값이 존재하지 않으므로 쿠폰 매출 관련 성과는 확인이 불가능합니다. 따라서 성과를 확인함에 있어서 쿠폰 프로모션의 경우에는 쿠폰 매출 관련 항목을 확인해야 하고, 할인 프로모션의 경우에는 총 매출 관련 항목을 확인해야 합니다.
이를 적용했을 때 Sales Summary를 확인함에 있어서 결제상품수, 결제건수, 구매고객수의 경우 할인 프로모션의 경우에는 총 매출액 관련 항목으로, 쿠폰 프로모션의 경우에는 쿠폰 매출액 관련 항목으로 구분해서 표현해주어야 합니다.
이를 위해 케이스를 나누고, 쿠폰 아이디가 존재할 경우 쿠폰 프로모션으로 판단해서 쿠폰 매출 관련으로 카운트 하고, 쿠폰 아이디가 존재하지 않을 경우 할인 프로모션으로 판단해서 총 매출 관련항목으로 카운트할 수 있도록 계산된 필드를 생성합니다.
SQL
-- 결제상품수 예시
{FIXED [Promotion name1],[Classification],[Coupon Id]:
SUM(IF [Classification]='쿠폰' and ([# COUPON ID_1]= [Coupon Id]
OR [# COUPON ID_2]= [Coupon Id] OR [# COUPON ID_3]= [Coupon Id])
THEN 1
ELSEIF [Classification]='할인' THEN 1
END)}
최종적으로 제작된 통합 프로모션 대시보드는 다음과 같습니다.
대시보드 작동예시를 좀 더 자세히 살펴보면 다음과 같습니다.
1. Promotion List
Promotion List 우측 분류 및 테마 필터를 클릭하여 해당하는 프로모션을 확인할 수 있습니다.
2.Sales(sales summary)
해당 프로모션의 총 매출액, 쿠폰 매출액, 결제 상품수, 결제 건수, 구매고객수 및 각 항목에 해당하는 일평균 액수를 확인할 수 있습니다.
3. Item datail
좌측의 브랜드별, 카테고리별, 상품별 차트를 클릭해 각 항목에 해당하는 상품의 일자별 판매 현황을 확인할 수 있습니다.
우측 막대그래프에 마우스를 오버하면, 각 일자별 총 매출 및 쿠폰 매출, 총 매출 대비 쿠폰 매출 비율을 확인할 수 있습니다.
4. Sale Trend & 5.CRM Info
4. Sale Trend에서 프로모션 기간 동안의 총 매출 및 쿠폰 매출, 해당 기간 동안 CRM이 발송된 날짜에 대한 정보를 확인할 수 있습니다.
5.CRM Info에서 해당 CRM에 대한 세부 정보를 확인할 수 있습니다.
July 15, 2024
SEO 분석의 핵심 채널은 구글과 네이버 입니다. 그 중 구글에서는 사이트로 들어오는 유저의 검색 키워드를 분석 할 수 있게 도와주는 구글서치콘솔(GSC)을 제공하고 있습니다. 이를 통해 어떤 키워드가 더 노출과 클릭이 잘 되고 있는지 어떤 키워드가 문제인지를 확인할 수 있습니다.
다만 구글서치콘솔의 기본 목적은 구글이 도메인의 정보를 수집해가는 사이트맵 관리용으로 출발하다 보니 키워드별 깊이있는 통계 분석을 하기는 어렵습니다.
이로 인해 구글서치콘솔의 다소 부족한 통계를 보완하여 더 효과적인 구글 SEO 분석에 도움을 주기 위해 대시보드를 구성하였습니다. 총 4개의 영역으로 구성되어 있으며 각 대시보드의 활용 방식은 아래와 같습니다. SEO 관리를 위해 분석하면 좋을 지표와 방식들에 집중해서 같이 살펴보시면 좋을 것 같습니다.
July 12, 2024
데이터를 구성하는 형식은 크게 Long format data와 Wide format data로 구분할 수 있습니다.
각 유형 별 특징 및 장단점에 대해 살펴보겠습니다.
Wide Format Data는 각 주제 또는 관찰단위가 단일 행으로 표시되는 구조입니다.
특징:
사용시 장점:
특징:
사용시 장점:
Wide Format 데이터를 태블로에 입력하면 학생Id는 차원에, 점수관련 항목은 측정값으로 구분됩니다.
이를 활용해 하나의 테이블을 생성하기 위해서는 점수관련 항목을 모두 선택해주어야합니다.
반면 Long Format 데이터를 태블로에 입력하면 학생Id와 시험 항목은 차원에, 점수는 측정값으로 구분됩니다. 이를 활용해 하나의 테이블을 생성하기 위해서는 열에 시험 차원을, 행에 학생 Id차원을 올려놓은 후 점수 값을 표에 입력하면 됩니다.
다음은 해당 데이터들을 활용해 그래프를 생성해보겠습니다.
먼저 Wide Format 데이터의 경우 국어시험, 수학시험, 영어시험은 각각 다른 차원에 존재하는 데이터이므로 이를 하나로 합친 차트를 구현하는 것은 불가능합니다.
반면 Long Format 데이터의 경우, 시험이라는 하나의 차원을 기준으로 점수라는 측정값이 적재되어 있기때문에 해당 데이터를 이용해서는 하나의 차트 내에서 3가지 항목을 구분하여 구현할 수 있습니다.
→ 따라서 Tableau를 활용하여 시각화를 구현할 때에는 Long Format형식의 데이터를 사용하는 것이 더욱더 다양한 시각화가 가능합니다.
July 10, 2024
리텐션(Retention)은 고객이나 사용자가 특정 기간 동안 어떤 제품이나 서비스에 계속 관여하거나 이용하는 비율을 말합니다. 즉, 얼마나 많은 사용자가 시간이 지남에 따라 제품이나 서비스를 계속 사용하는지를 나타내는 지표입니다. 높은 리텐션율은 고객 충성도가 높고, 제품이나 서비스에 대한 만족도가 높음을 의미합니다.
리텐션을 지속적으로 측정하고 관리하는 것이 중요한 이유는 여러가지가 있습니다. 리텐션은 단순히 고객이 제품이나 서비스를 계속 사용하는 것을 넘어서 기업의 지속가능성과 직접적으로 연결되는 핵심 지표입니다. 리텐션이 중요한 이유를 좀 더 자세히 살펴보면 다음과 같습니다.
리텐션을 측정하는 기준에는 다양한 방법이 존재합니다. 그 중 Amplitude에서 확인할 수 있는 리텐션의 종류인 ‘N-day Retention’과 ‘Unbounded Retention’에 대해 좀 더 자세히 알아보려고 합니다.
N-day Retention은 사용자가 처음 제품이나 서비스를 이용한 후 특정 일수(N일) 후에도 계속 이용하는지를 측정하는 방법입니다. 예를 들어, 7-day Retention은 사용자가 서비스를 처음 이용한 후 7일째 되는 날에도 서비스를 이용하는 비율을 의미합니다. 해당 리텐션은 초기 사용자 참여, 온보딩, 새로운 기능, 단기 마케팅 캠페인 분석을 위해 사용됩니다.
Unbounded Retention은 특정 기간 동안 사용자가 최소 한 번이라도 제품이나 서비스를 이용했는지를 측정하는 방법입니다. 이 방법은 시간이 지나도 사용자가 이탈하지 않고 계속해서 제품을 사용했는지의 여부만을 고려합니다. 해당 리텐션은 장기적인 참여, 고객 충성도, 반복 구매, 주기적인 콘텐츠 업데이트 분석을 위해 사용됩니다.
리텐션 차트는 시간에 따른 사용자의 이탈 및 유지 패턴을 시각적으로 표현한 그래프입니다. 이 차트는 특정 기간 동안 사용자 그룹의 리텐션율 변화를 보여줍니다. 리텐션 차트를 통해 크게 행 기준 분석과 열 기준 분석을 수행할 수 있습니다.
리텐션 커브는 시간에 따른 리텐션율의 변화를 나타낸 것입니다. 이 커브는 초기 사용자 참여 이후 리텐션율의 감소 패턴을 한눈에 파악할 수 있게 해줍니다.
리텐션 커브는 감소형태에 따라 유형를 크게 3가지로 나눌 수 있습니다.
시간이 지남에 따라 사용자 참여가 감소되는 패턴의 커브입니다. 이는 가장 흔히 보이는 커브의 형태로, 초기참여 이후 사용자의 관심이 감소됨을 의미합니다.
초기 감소 후 리텐션율이 안정적으로 유지되는 패턴의 커브입니다. 이는 사용자들이 제품이나 서비스에 익숙해지고 일정수준의 참여를 계속해서 유지함을 나타냅니다.
리텐션 감소 후 시간이 지남에 따라 다시 증가하는 패턴의 커브입니다. 이는 매우 긍정적인 상황으로, 사용자들이 초기 이탈후 일정시간이 지나 다시 제품이나 서비스에 관심을 가지기 시작함을 의미합니다.
July 10, 2024
이번 글에서는 Udemy교육 플랫폼에 대한 분석과 해당 분석을 바탕으로한 대시보드를 그려보려고 합니다. 교육관련 비즈니스나 지식 기반 서비스 운영하는 경우 해당 분석과 대시보드가 참고가 될 수 있을 것입니다.
Kaggle에 올라와 있는 Udemy 데이터를 활용하여 분석을 진행하였습니다. 혹시 데이터가 필요한 분들은 아래 링크를 참고해주세요.
Udemy는 글로벌 교육 커머스 플랫폼 입니다. 마케팅이나 데이터 분석 뿐 아니라 개발, 라이프스타일, 비즈니스 등 다양한 분야의 강의들이 판매되고 있습니다. 가격이 그렇게 부담되지 않기 때문에 기회가 되신 다면 한번 들어보시면 좋을듯합니다. 다양한 국가 언어를 제공해 주지만 한글 비율은 높은편은 압니다. 다만 대부분 자막을 제공해주기 때문에 어렵지 않게 양질의 자료들을 보실 수 있습니다.
국내에서 Udemy와 비슷한 비즈니스 모델로는 패스트캠퍼스, 클래스 101, 인프런 같은 서비스가 있습니다.
지식 기반 상품을 판매하는 이러한 비즈니스 모델의 특징은 커머스와 크게 다르지 않습니다. 다양한 주제(카테고리 & 브랜드)의 강의(상품)가 있고 고객이 원하는 강의가 있다면 개별 강의를 구매하는 방식으로 구매 여정이 이루어져 있습니다.
일반 상품과 다르게 무형의 상품이다보니 체험 형식의 무료 과정이 활발하게 활용되는 편입니다. 강좌 개설도 자유롭게 할 수 있으며, 강좌에 대한 홍보도 직접 진행할 수 있다보니 스마트스토어에 상품을 직접올려서 판매하는 오픈마켓의 방식과 거의 유사합니다.
해당 분석의 목표는 강좌를 만드는 강의자와 Udemy에서 강좌를 서포트하는 매니저가 사용 할 수 있는 분석과 대시보드 제작을 목적으로 진행하려고합니다. 이를 통해 주요 인기 카테고리와 상위 강좌로 올라가기 위한 조건이나 기준들을 살펴보도록 하겠습니다.
데이터 세트는 총 12개 항목(컬럼)으로 이루어져 있습니다.
데이터 수는 3682개로 이루어져 있습니다.
EDA를 통해 기본적으로 데이터의 모양을 살펴보고, 데이터 특징을 파악하며 데이터 퀄리티를 높이는 작업을 합니다.
EDA 진행 전 필수적으로 확인해야하는 단계가 데이터 퀄리티 확인 단계입니다. 이는 '데이터 클리닝' 이라고도 부르는 단계로 데이터 결측치, 데이터 중복, 이상치를 확인하는 단계 입니다. 실제로 해당 Raw 데이터는 결측치가 있는 데이터로 적절한 결측치 처리가 필요하였습니다. 이번 데이터는 결측치가 6개 row에서 발견되어 해당 row를 제거하는 방식으로 진행하였습니다. 만약 결측치가 많다면 보간 방식으로 데이터를 적절하게 채워 분석을 진행할 수 있습니다.
EDA를 통해 몇가지 특징을 확인할 수 있었습니다.
앞서 진행한 EDA 과정을 통해 분석 대시보드는 주요 지표를 보여주는 Overview와 주요 지표를 드릴다운해서 볼 수 있는 개별 영역으로 나누어서 구성하였습니다.
각 화면별 자세한 구성은 아래와 같습니다.
개요 대시보드의 구성은 대부분 유사하게 구성합니다.
주요 KPI와 해당 KPI의 시간별 퍼포먼스를 볼 수 있는 영역을 기본으로 구성합니다. 이외에 주요 지표 구성 요소를 배치하여 가볍게 드릴 다운 해서 볼 수 있는 구성을 합니다.
시간에따른 KPI 성과 영역은 선택 측정항목 기능을 활용하여 측정항목을 자유롭게 변경하며 분석하거나 기간 단위를 일 -> 주 -> 월 로 변경하면서 트렌드를 다양하게 확인할 수 있게 구성하였습니다.
커머스로 비유하면 교육 산업에서 구독자는 구매자와 동일합니다. 다만 서비스하는 교육과정이 많다보니 적정한 기준으로 교육과정을 나누어 과정 별 특징을 확인하면 분석 편의성을 높일 수 있습니다.
가장 간단한 그룹화 방법 중 하나는 파레토 법칙을 이용하는 방식입니다. 아래 그림과 같이 가장 많은 교육과정 or 상위 10% 기준을 확인한다면 새롭게 강의를 런칭하는 신규 강사의 입장에서 바라봐야할 목표 지표를 세울 수 있습니다.
교육 산업의 특징 중 하나는 무료 강의를 통해 플랫폼에 대한 인지를 높이는 전략을 가져가는 것입니다. Udemy 또한 평균 10% 내외의 무료 강의 비율을 보이고 있습니다. 강의 수는 10% 내 외이지만 실제 해당 무료 과정을 통해 플랫폼 경험을 하는 유저 수는 30% 이상 될 정도로 무료 과정은 중요한 역할을 하고 있습니다.
상품을 구매하는데 있어 중요한 항목 중 하나는 누군가의 추천입니다. 공급자는 대부분 상품의 좋은 점을 강조하기 때문에 다른 유사 상품과의 차이가 두드러지지 않습니다. 특히나 비슷한 주제의 강의라면 커리큘럼과 실습방식 외 나머지 강의 요소를 상세페이지에 표현하기 어렵습니다. 강의 전달 방식이나 강의자의 톤, 발성, 논리정연한 강의력 등 실제 강의를 들은 수강생의 생생한 후기는 많은 경우 구매 전환에 매우 큰 영향을 줍니다. 실제로 리뷰와 수강생의 상관도가 높은 것으로 확인되며 상위 5% 강의의 리뷰율은 다른 하위 강의 대비 2배 가까이 높은것을 알 수 있습니다.
카테고리 또는 레벨, 유무료 별 평균 리뷰율을 알았다면 특정 강의의 매출을 높이는 데 있어 하나의 기준이 될 수 있습니다. 평균 대비 리뷰율이 낮다면 단기적으로 리뷰를 높이는 이벤트를 열거나 리뷰가 낮은 부분을 피드백하며 강의 자체의 개선에 활용하는 방식을 가져갈 수 있습니다.
어떤 카테고리가 현재 인기 있는지 알 수 있습니다. 카테고리에 상관없이 Beginner or All level이 개설 과정수도 많고 매출 비율도 높습니다. 레벨이 올라갈수록 타겟 가능한 사람을 찾는 것도 어렵고 해당 타겟의 구매 전환도 낮은편입니다. 실제로 강사의 입장에서도 레벨이 높아질수록 강의 준비 과정 난이도가 높아지기 때문에 낮은 레벨을 더 선호하는 편입니다.
카테고리 & 레벨 별로 현재 비어있는 과정을 보면서 전략적으로 강의를 개설할 수 있습니다.
앞서 파레토 법칙에 따라 구독자수 기준 상위 5%, 10%, 20%, 50%, 기타 그룹으로 계급을 나누었습니다. 그리고 상위 그룹과 리뷰의 상관도가 높은 것을 알 수 있었습니다. 즉, 상위 그룹에 올라가기 위해서는 필수적으로 수강생 리뷰가 쌓이고 구매 선순환이 이루어지는 시간이 필요합니다. 따라서 계급별 평균 개설 시간을 보면서 상위 계급에 올라가기 위해 얼마 만큼의 기간이 필요한지 대략적으로 가늠할 수 있습니다.
또한 계급별 주요 지표간 상관도를 보면서 어떤 지표를 우선으로 해서 강의를 만들지 전략적으로 접근할 수 있습니다. 실제 계급 구독수와 강의수 & 강의시간의 상관도가 높은것을 알 수 있습니다.
반대로 구독자수와 강의가격은 생각보다 높은 상관도를 보이지 않습니다. 충분히 유용한 강의수와 시간을 보유하고 있다면 강의 가격은 구매 결정에 상대적으로 낮은 영향력을 보입니다.
해당 글에서 예시로 활용한 데이터는 과거의 데이터다보니 앞서 도출한 인사이트가 현재 강의 환경과 맞지 않을 수 있습니다. 다만, 분석 과정과 주요 지표 표현 방식 등은 충분히 유효합니다. 앞서 서두에 설명 한 것 처럼 지식 기반 비즈니스가 아닌 일반 커머스 비지니스에서도 해당 분석 흐름과 대시보드 구성을 참고해서 활용해보시면 좋을 것 같습니다.
July 8, 2024
블로그를 하다보니 SEO에 대한 키워드 최적화와 분석을 많이 하고 있습니다.
그 중 최근 많이 활용하는 분석 방법 중 하나는 풍선 차트를 활용한 키워드 분석입니다.
풍선(버블) 차트는 여러개의 측정기준을 두고 분석할 수 있다보니, SEO 같이 단일 키워드 별로 다양한 측정기준 간 비교를 해야하는 경우 유용합니다.
아래는 풍선차트로 분석하는 SEO 예시입니다.
X축 : 클릭율(CTR)
Y축 : 노출 순위(Average position)
풍선크기 : 노출(Impression)
풍선색상 : 기기 카테고리(Device Category)
1. 날짜 필터SEO는 즉각적인 효과 분석보단 장기간에 걸친 데이터 분석이 필요합니다. 기간별 키워드 지표의 변화를 확인할 수 있습니다.
2. 검색어(Query)관리해야하는 키워드가 수 백개를 넘어갑니다. 관리 할 키워드가 많은 경우 노출이나 클릭 기준으로 키워드 필터를 걸어서 관리하면 편합니다.
3. 기기서비스의 특성에 따라 PC, MO 중 검색 선호 기기가 다른 경우가 많습니다.
4. 국가글로벌 서비스의 경우 국가별로 반응하는 키워드와 키워드별 지표 트렌드가 달라질 수 있습니다.
5. 최소노출량롱테일 키워드는 노출량이 적지만 키워드의 양이 많습니다. 따라서 최소 노출량 필터를 두어서 분석 편의성을 높일 수 있습니다.
6. 축 평균값각 축의 평균값 선을 두어서 평균값 기준 키워드 그룹을 4분면으로 나누어 관리할 수 있습니다.
7. Y축 역방향Y축은 평균 게재순위 입니다. 기본적으로 1에 가까울 수록 좋은 키워드 그룹이기 때문에 Y축 방향을 반전 시켜 1이 위쪽으로 배치될 수 있게 하면 분석 편의성을 가질 수 있습니다.
8. 로그 스케일키워드간 지표의 차이가 크게 발생하는 경우 로그 스케일을 사용하면 차트에 분포되어 있는 검색어를 더 쉽게 파악할 수 있습니다.
👉 관련 대시보드 : https://lnkd.in/gQQ9_8r7
분석은 축 평균 기준으로 4개 분면으로 키워드 그룹을 나누어 전략을 다르게 가져갈 수 있습니다.
1️사분면 : 노출순위가 높고, CTR도 우수한 유효 키워드 그룹
2️사분면 : 노출순위가 낮고, CTR은 높은 잠재 우수 키워드
3️사분면 : 노출순위도 낮고, CTR도 낮은 문제 키워드 그룹
4️사분면 : 노출순위가 높지만, CTR은 낮은 관리 필요 그룹
👉 자세한 SEO 분석 전략 : https://lnkd.in/gJDbrBzp
July 4, 2024
태그 설치를 끝낸 후 GA4 대시보드에서 데이터가 잘 수집되는 것을 확인했다면 이제 데이터 시각화 기능인 루커 대시보드와 연동하여 나만의 대시보드를 만들 수 있다.
GA4의 유입 데이터와 내부 데이터를 연동하여 한 화면에서 비즈니스 데이터를 확인할 수 있기 때문에 데이터 기반 인사이트를 용이하게 확인할 수 있다. 내 웹사이트에 어떤 경로로 들어왔는지, 어느 페이지에서 이탈률이 높은지, *스크롤은 몇 % 내리는지, 어느 광고 매체에서 구매 전환 혹은 매출이 많이 일어나는지 한 화면에서 확인이 가능하다.
그리고 루커 대시보드는 gmail 계정만 있으면 관련 담당자와 쉽게 공유할 수 있으므로 타 부서와 긴밀하게 매출과 비즈니스 KPI를 관리할 수 있다는 장점이 있다.
루커 대시보드에서 차트를 구현할 때 연동하는 데이터 세트를 ‘데이터 소스’라고 한다. 데이터 소스는 루커 스튜디오의 커넥터를 클릭하여 쉽게 연동이 가능한데, 루커는 무려 1,000개 이상의 다양한 데이터 소스를 간편하게 연동할 수 있도록 지원하고 있다. (연동 가능한 데이터 소스 종류 확인하기)
만약 내가 기존에 적재하고 있던 구글 시트 보고서의 데이터와 GA4 데이터를 기반으로 대시보드를 만들고자 한다면 구글시트와 GA4 계정을 커넥터에 연결해서 확인할 수 있다.
구글 시트 보고서와 GA4 데이터를 연결해야 하기문에 커넥터에서 ‘Google 애널리틱스’와 Google Sheet를 클릭하여 연동을 시작한다. 구글 시트는 워크시트별로 연동이 가능하고 GA4는 해당 계정에 대해 권한이 있어야 연동이 가능하다. 다만 이때 각 열의 헤더(제목)이 있어야 하고 헤더는 중복되면 안된다.
루커 스튜디오는 ‘보기’모드와 ‘수정’모드가 있다. 보기 모드는 편집자 권한이 없는 사람이 대시보드가 보이는 형태를 확인할 수 있고 편집자 모드가 있을 경우 ‘수정’모드에서 각 차트와 대시보드 스타일에 대한 요소들을 생성 및 수정할 수 있다.
수정 모드에서는 가장 우측 데이터, 속성, 필터 표시줄 이모티콘을 클릭함으로써 각 기능에 대한 툴바를 숨김 처리할 수 있다.
(상단 좌측부터 순서대로 설명)
[✔︎ 가장 많이 쓰는 차트 예시]
(1) 막대그래프 및 열 차트 (링크)
(2) 선 차트 및 콤보 차트 (링크)
(3) 스코어카드 (링크)
1개의 측정항목에 대한 요약 수치를 표시할 수 있다. 전자상거래 대시보드에서는 총매출, 구매 수, 광고소진액, 신규 유저, MAU, DAU에 대한 수치를 증감률과 함께 확인할 수 있다.
(4) 시계열 (링크)
시간의 흐름에 따라 데이터가 어떻게 변화되는지 확인할 수 있다. 전자상거래 대시보드에서는 일별 구매수, 세션별 일별 구매자 수, 일별 광고비 등을 확인할 수 있다.
(5) 원형 차트 (링크)
값 비율 차이가 큰 데이터를 비교할 때 많이 쓰는 차트로 전자상거래 대시보드에서는 광고비 비중, 채널별 비중을 확인할 수 있다.
(6) 트리맵 차트 (링크)
값이 큰 데이터 항목일수록 색상이 진하고 크기가 크게 표시되는 차트로 계층별로 정리하여 비교할 수 있다는 장점이 있다.
(7) 피벗 테이블
루커 시보드에서 데이터를 연결하고 어떤 차트를 구현할 수 있는지 파악이 완료되었다면 실제로 내가 활용할 대시보드의 목차를 기획해야 한다. 대시보드를 이용하는 사용자가 누군지 파악해야 하고 가능하면 사용자 관점에서 보기 편리하도록 대시보드를 구성해야 한다. 즉, 사용자가 무엇을 알고 싶어 하는지를 파악해야 한다.
가장 좋은 방법은 파악한 사용자들과 함께 회의를 통해 목차를 구성하고 아웃라인을 작성하는 것이지만 그것이 어렵다면 목차라도 함께 작성해야 한다. 사용자가 대시보드를 보고 의미를 쉽게 파악하지 못하거나, 알고 싶은 데이터가 대시보드에 반영되어 있지 않다면 지금까지 노력을 기울여 만든 대시보드의 활용성을 떨어지기 때문에 이 부분을 가장 중점적으로 생각해야 한다.
이커머스 서비스에서 가장 기본적으로 파악해야 하는 그래프를 바탕으로 대시보드 목차를 생각해 보면 다음과 같다.
GA4, 루커 스튜디오와 같이 구글 플랫폼을 활용할 때 많이 들어볼 수 있는 측정항목과 측정 기준의 개념을 이해하고 가는 것이 좋다.
Dimensions (측정기준)
Metrics (측정항목)
예를 들어 위 그림처럼 매체별 광고 성과에 대한 피벗 테이블 차트를 구현하고 대시보드에 추가하려고 한다면 어떻게 해야 할까?
피벗 테이블을 추가하고 수식을 걸지 않은 광고비, 노출, 클릭, 구매, 구매금액까지는 데이터 소스에서 추출하여 측정항목을 선택하여 그대로 차트에 넣으면 된다. 단, CPC, CTR, ROAS의 경우 수식 계산이 필요한데 계산된 필드로 만들어서 측정항목으로 추가할 수 있다.
계산된 필드 생성을 클릭하면 필드 생성 창이 뜨는데, 원하는 측정항목 이름으로 필드 이름을 적은 후 수식에 루커 스튜디오 함수 목록을 참고하여 수식을 입력한다.
[✔︎ 많이 쓰는 함수식]
(1) CPC
SUM(광고비) / SUM(클릭수)
(2) CTR
SUM(클릭) / SUM(노출)
(3) ROAS
SUM(구매금액) / SUM(광고비)
(4) CPI
SUM(광고비) / SUM(설치수)
(5) CPA (구매)
SUM(광고비) / SUM(구매이벤트수)
* 루커스튜디오 함수 목록 (링크)
이렇게 맞춤으로 생성한 계산된 필드는 데이터 툴바에서 파란색으로 필드명이 보이게 된다. 대시보드 화면에 추가한 차트를 클릭하여 해당 차트의 측정항목에 필드명을 가져온다.
속성 툴바에서는 설정과 스타일 탭 두 가지가 있는데 설정 탭에서는 차트에 들어가는 측정항목에 대한 추가/삭제, 필터, 정렬을 설정할 수 있고 스타일 툴바에서는 차트 색, 소수점, 글꼴, 데이터 없음 표시 종류 등 디자인과 관련한 항목을 설정할 수 있다.
(1) 소수점 변경하는 방법
(2) 색상 변경하는 방법
(3) 데이터 누락 서식 지정하는 방법
지금까지 루커 대시보드를 구현하는 방법에 대해 데이터 연결부터, 시각화 구성, 루커 대시보드 구현하는 방법까지 설명하였는데 루커 대시보드를 직접 구현해 보는 데 도움이 되었으면 좋겠다. 예시 대시보드를 참고하여 우리 서비스만의 대시보드를 만드는 것도 좋은 연습이 될 것 같다. 실제 우리 데이터를 연결해 보고 다양한 시각화를 시도해 보며 경험을 쌓는 데 좋은 시작이 될 것이라고 믿는다.
*궁금한 점이나 추가적인 도움이 필요하다면 언제든지 문의해 주세요! 여러분의 데이터 시각화 여정에 도움이 되기를 바랍니다. 감사합니다😊
July 2, 2024
블로그나 서비스를 운영하다 보면 내 게시물이나 제품이 자연스럽게 Google 또는 Naver 검색 결과에 노출되길 기대하게 됩니다.
이러한 관점에서 접근하는 방법이 Search Engine Optimization(SEO)입니다.
Google과 Naver 모두 자체 검색 엔진에서 노출되는 다양한 방법과 데이터를 제공합니다. 이는 각각 Google Search Console과 Naver Webmaster Tools입니다.
그 중 Google에서 제공하는 Google Search Console은 키워드 노출, 클릭 수, 순위 등 유용한 정보를 제공하지만, 여전히 복잡한 정보를 얻기에는 어려움이 있습니다.
저 또한 블로그를 운영하면서 Google Search Console을 자주 방문하고 관찰하지만, 이러한 점이 아쉬워 복잡한 데이터를 확인할 수 있는 대시보드를 만들었습니다.
1️. 좌측 하단의 구글서치콘솔 변경 시 내 데이터를 확인할 수 있습니다.
2️. 노출도에 따른 키워드 그룹을 두어서 그룹간 관리가 용이합니다.
3️. 새롭게 등장하는 키워드를 파악할 수 있습니다.
4️. 기간, 기기, 국가에 따라 다양한 지표 변화를 빠르게 확인할 수 있습니다.
July 1, 2024
구글 애널리틱스와 앰플리튜드의 기능, 추적 방식, 분석 항목, 의의와 장단점, 담당자를 비교하자면 하단과 같습니다. 해당 내용의 이해를 위해 차근히 퍼포먼스마케터, 그로스마케터의 직무 요건에서부터 왜 애널리틱스가 중요한지(GA든 Amplitude든) 알아보도록 하겠습니다.
마케터로 생각하는 직무는 주로 퍼포먼스 마케터일 것입니다. 퍼포먼스마케터, 소위 퍼포마는 브랜드나 대행사(에이전시)에서 마케팅 전략을 수립하고 미디어믹스를 짜고 (매체 별/광고 상품 별로 얼마나 쓸 건지를 짜는 것) 이후 해당 미디어믹스에 따라 광고를 집행한 후에 광고 성과를 관리합니다.
그렇다면 퍼포마의 채용 공고를 분석해 보겠습니다. 퍼포먼스 마케터의 직무 요건 및 우대 사항에는 Google Analytics와 Amplitude가 꽤 자주 등장합니다. 심지어 데이터 분석가 직무에도 있네요. 왜일까요?
한 건의 전환이 일어나기까지, 한 명의 사용자에게 노출되는 광고는 수도 없이 많습니다. 마케팅을 열심히 할수록 그렇습니다. 사용자가 1) 인스타그램 광고도 볼 거고, 2) 유튜브 콘텐츠를 봤을 수도 있고, 3) 카카오 배너 광고를 봤을 수도 있고, 4) 네이버 검색 광고를 봤을 수도 있습니다. 이렇게 수많은 광고 매체를 거쳐, 한 건의 전환이 일어났을 때 가장 중요한 질문은 무엇일까요?
다수의 광고 매체들은 다 자기가 기여를 했다고 말합니다. 그래서 광고 관리자로만 광고 성과를 보면 과도하게 성과가 집계될 수밖에 없고, 중복 집계될 수밖에 없는 것입니다.
일주일 안에 저 광고 매체들에 다 노출되었던 사용자가 전환을 했다고 가정해 볼까요? 그렇다면 기여 기간은 7일인 것이고 (광고 매체의 성과를 인정해 주는 기간) 노출된 매체는 4개, 그중 유상(Paid) 광고 매체 3개입니다. (유튜브 콘텐츠는 자사의 브랜딩이었다고 하면요.)
그럼 그중 누가 이 전환의 성과를 가져갈까요?
이렇게 광고 성과의 기여값을 보다 정확하게 측정하기 위해서 Attribution Tool(어트리뷰션툴), Analytics(애널리틱스)가 존재합니다. Web Analytics로 가장 유명한 것이 구글 애널리틱스인 것이고요.
글의 초반 앰플리튜드 vs 구글애널리틱스 비교표에서 언급했었죠. 구글 애널리틱스는 이처럼 광고 매체들의 전환값의 기여도를 측정하여 마케팅을 효율화하는 것을 목적으로 많이 활용합니다.
여기서 또 하나 짚어야 할 것이 있습니다. 그 광고, 클릭하면 어디로 가나요? 클릭해서 이동한 페이지에서 보통 전환이 일어날 테니까요.
마케팅 캠페인이 '웹'에 치중되어 있을 때는 구글애널리틱스의 시대였습니다. 그렇지만 '앱'이 뜨기 시작하고 앱마케팅이 활성화되면서 구글애널리틱스 또한 한계에 부딪힙니다.
웹으로 랜딩 된 후 구매라는 전환 행동이 일어날 때 구글 애널리틱스는 Last touch 기여 설정에 의해서, 해당 전환의 성과는 '페이스북'에게 있다고 측정했습니다.
그런데 웹 랜딩 이후 앱 설치가 진행되고 앱에서 구매가 일어나면 어떻게 될까요? 사용자의 흔적을 파악할 수 있던 utm (광고 매체의 소스값)이 유실되며 광고 매체의 성과를 잡지 못하고, organic (자연 유입)으로 측정하게 됩니다.
cf. 여기서 utm의 광고 매체 소스값이란...?
구글에 나이키를 검색하면 '스폰서' 광고로 나이키가 뜹니다. 이걸 클릭하면 url이 이렇게 나옵니다.
https://www.nike.com/kr?utm_source=Google&utm_medium=PS&utm_campaign=365DIGITAL_Google_SA_Keyword_Main_PC&cp=72646825390.... > utm_source=Google이라고 알려줍니다. (소스값) utm_medium=PS라고 알려줍니다. (매체) 이 두 개의 조합을 광고 매체의 소스값이라고 합니다.
그래서 앱 마케팅이 중요해질수록 MMP와 PA의 인지도 또한 높아질 수밖에 없습니다. MMP는 Mobile Measurement Partners로 앱스토어에 SDK를 붙여 앱 설치 성과를 측정해 주는 솔루션을 말하고, PA(Product Analytics)는 이러한 MMP들을 연동하여 앱 설치 성과를 분석할 수 있도록 도와줍니다.
서비스가 Web 위주인 경우 구글애널리틱스만 사용해도 충분합니다. 다만 App 위주인 경우 App 설치 성과를 분석하는 MMP (Appsflyer, Adjust, Airbridge 등)와 Web to App을 추적하고, App 내 사용자 행동을 분석하는 PA(Amplitude, Mixpanel 등)가 필요합니다!
풀스택 마케팅 컨설팅펌 마티니아이오
July 1, 2024
GA4는 유저가 수행한 행동 기반의 분석을 할 수 있게 도와주는 솔루션입니다. 기존의 세션 기반으로 획득관점의 유저분석을 목표로 했던 UA의 단점을 보완하는 업데이트였습니다. 다만, 기본적으로 제공하는 대시보드가 UA 대비 친절하지 않다보니 GA4로 넘어가는 많은 마케터분들과 분석가분들이 어려워하는 경우가 많았습니다.
이러한 단점을 보완하기위해 GA4의 데이터 + UA의 UI를 합친 루커스튜디오 대시보드를 만들었습니다.
퍼포먼스 마케팅을 처음 시작했을 때, Google Analytics(GA)는 제가 처음 접한 주요 도구 중 하나였습니다. 처음에는 기능이 많아 어색하고 어려웠지만, UA는 곧 필수적인 도구가 되었습니다. 잘 구성된 메뉴와 사용자 인터페이스(UI) 덕분에 쉽게 탐색하고 데이터를 분석할 수 있었습니다.
UA는 사용자, 획득, 행동, 전환의 네 가지 주요 영역으로 주제가 나뉘어 있어 분석이 매우 간단했습니다. 이러한 구조 덕분에 메뉴 순서에 따라 데이터를 분석함으로써 비즈니스 현상을 이해하기가 쉬웠습니다.
GA4는 UA의 획득 관점에 초점을 맞춘 세션 기반 분석에서 행동 기반 분석 방식으로 데이터 구조를 크게 변경하였습니다. 이러한 변화는 UA의 데이터 단점을 보완했습니다. 그러나 GA4의 메뉴가 UA처럼 주제별로 명확하게 구분되어 있지 않다는 점은 다소 아쉬웠습니다.
두 가지 장점을 결합한 대시보드이러한 문제를 극복하기 위해 UA의 분석 섹션과 GA4의 이벤트 수준 분석을 결합한 대시보드를 만들었습니다. 이 대시보드는 UA의 익숙한 UI를 유지하면서 GA4의 고급 분석 기능을 활용합니다.
June 28, 2024
그로스마케팅의 기본은 분석입니다. 분석 툴, 주로 Analytics라고 많이 이야기하죠. Google Analytics가 대표적이고요. 이외 Product Analytics라고 했을 때 Mixpanel(믹스패널), Amplitude(앰플리튜드) 등의 솔루션이 있습니다.
프로덕트 분석은 사용자들이 디지털 프로덕트를 쓰는 방식을 이해해보는 것입니다. 사용자의 행동 데이터를 분석하고, 전환 기회를 파악하고, 사용자의 평생 가치(LTV: Long Time Value)를 높이는 경험을 만들어 사용자를 비즈니스의 핵심으로 만듭니다.
프로덕트 분석을 통해 사용자의 실시간 참여 및 행동 데이터를 추적, 시각화, 분석하여 전체 고객 여정(User Journey)을 최적화할 수 있습니다. 사용자의 라이프사이클 모든 단계를 데이터로 확인하여 디지털 경험을 개선하고, 충성도를 확보하고, 비즈니스 성과로 연결하도록 지원합니다.
(사용자 여정 예시) 광고를 클릭하고 ~ 계정을 생성하고(Onboarding Process라고 함) ~ 가입하고 ~ 기능 A를 경험하고 ~ 모바일로 로그인하고 ~ 첫구매를 하고 ~ 기능 B를 경험하고 ~ 기능 C를 경험하고 ~ 앱푸시를 받고 ~ 구독할 것 같은데 ~ A/B 테스트를 경험하고 ~ 파워 유저가 되고 ~ 남에게 추천하고...
위와 같은 사용자 여정 중에서 하기 질문에 앰플리튜드를 통해서 답할 수 있습니다.
프로덕트 분석이라고 하면 거창해 보이지만 실전은 생각보다 단순합니다. 커머스에서 가장 중요한 지표가 무엇일까요? 바로 매출/주문수/객단가/건단가입니다.
매출=주문수X건단가, 매출=주문자수X객단가 개념으로, 결국 '매출'이 가장 중요한데요.
동일한 매출을 기준으로 주문수가 많아지면 건단가가 낮아지고, 건단가가 높아지면 주문수가 적어집니다. 아주 당연한 얘기지만, 이 내용이 무엇과 연관이 있을까요? 바로 물류비입니다.
건단가가 낮아서 주문수가 많아지면 택배 물량이 많아집니다. 물론 합배송이 가능하냐, 물류 체계가 자체 배송이냐 위탁 배송이냐, 물류 센터가 있느냐 등에 따라 상황은 다를 수 있겠지만 대개 커머스는 주문수와 건단가 중 굳이 택한다면, 건단가를 높이고 주문수를 줄이는 것이 좋습니다. (객단가는 유저수와 객단가를 둘 다 올리는 게 좋고요...ㅎㅎ)
*매출, 주문수, 객단가, 건단가 차트 모두 '주문 완료'/'구매 완료'/'결제 완료' 와 같은 이벤트와 '주문 금액'/'구매 금액'/'결제 금액'을 뜻하는 이벤트 프로퍼티가 필수입니다.
*여기서 이벤트와 프로퍼티는 모두 개별적으로 설정되는 것으로 통용되는 단어가 아님을 참조해주세요.
1. Segmentation by 에서 주문 완료 이벤트를 설정해줍니다.
해당 택소노미에서는 total_items_order_completed 가 주문 완료/결제 완료 이벤트입니다.
그리고 by order_total 이라는 이벤트 프로퍼티를 사용하여 값을 표현해줍니다.
2. ...performed by Any Users는 따로 설정하지 않아도 됩니다. (전체 유저의 매출을 보는 것이고, 특정 유저의 행동을 보고자 하는 것이 아니니까요.)
3. ...measured as 에서 'Properties'를 선택하고 Sum of Property Value를 설정합니다.
4. 일자까지 설정해주면 그래프가 구현됩니다!
5. 그래프 하단에는 데이터 테이블이 표 형식으로도 나오고, 이는 CSV로 다운로드 받을 수 있습니다.
주문수는 쉽습니다! ...measured as Sum of Property Value를 Event Property로 바꿔주면 됩니다.
매출이 구매 이벤트의 금액의 총합이었다면, 주문수는 이벤트가 발생한 수이기 때문입니다.
Event Totals로 바꿨는데 그래프가 조금 이상하죠? order_total이라는 주문금액값이 grouped by 필터로 걸려있어서 그렇습니다. 금액값 별로 어떻게 구성되어져있는지 보여주는 거죠. 해당 필터를 지워주면 됩니다.
객단가는 매출/주문자수입니다. 그러므로 매출=주문완료 이벤트(+order_total 프로퍼티)의 PROPSUM (PropertySUM)/주문완료 이벤트의 유니크(사용자수)로 수식을 만들어서 적용하면 됩니다. 즉 객단가는 PROPSUM/UNIQUES입니다.
객단가의 추이를 과거와 비교할 수도 있습니다. Comparing to date range ending _ 여기서 일자를 설정하여 두 개의 그래프로 구현되도록 할 수 있습니다. 과거 일자와 비교하면 그 시점의 유저가 **[Previous]**로 표시되고, 이후 시점의 유저가 All User로 표시됩니다.
건단가는 매출/주문수입니다. 그러므로 주문완료 이벤트의 속성값, 주문액 평균을 확인하면 됩니다. ...measured as Average of Property Value로 설정해줍니다.
건단가는 주로 프로모션을 진행할 때 부차적으로 확인합니다. 평상시 대비 프로모션 진행 시에 카테고리/브랜드/상품/장바구니 할인 쿠폰이 발급되어 건단가가 낮아지는 경우가 많기 때문입니다.
건단가/객단가는 대개 유사합니다. 다만 예외도 존재합니다. 리셀러가 커머스에 많은 경우, 상품을 대량하는 구매하므로 경우 주문수가 주문자수보다 월등히 많아 건단가는 낮고, 객단가는 높을 수 있습니다.
건단가/객단가는 시즈널리티를 탑니다. 특히 의류 커머스의 경우 S/S에는 반팔 티셔츠가 주가 되기에 객단/건단이 낮아지고, F/W에는 아우터 상품이 메인이 되면서 객단/건단이 높아집니다.
대시보드 한 판에 차트들을 모을 수 있습니다. 매출도, 구매전환율도, 상품수도 여러 필터로 쪼개보면서 프로덕트의 현황을 확인할 수 있습니다.
앰플리튜드 차트로 확인한 데이터들은 구글 스프레드시트로 이전 성과들과 비교하거나, 노션으로 정리하거나, 간단하게는 슬랙으로 정리하여 공유합니다.
그로스마케터가프로모션/쿠폰 분석을 하는 과정 중에 앰플리튜드로 세그먼트 차트 (커머스에 꼭 필요한 매출, 주문수, 건단가, 객단가) 그리는 법을 알아보았습니다! 감사합니다.
풀스택 마케팅 컨설팅펌 마티니아이오
June 24, 2024
데이터를 다루다보니 링크드인 컨텐츠도 데이터로 관리하고 싶은 마음이 컸습니다.
링크드인에서 가장 많이 들어가는 항목이 통계 부분인데 들어갈때마다 아쉬운건 제공 되는 데이터가 너무 제한적이라는 것이었습니다.
링크드인이 제공해주지 않아서 직접만들어 봤습니다.
1️. 평균/누적 컨텐츠 노출, 참여도(좋아요, 댓글), 팔로워에 대해서 알 수 있습니다.
2️. 노출, 참여도, 팔로워에 긍정적인 컨텐츠 종류를 확인할 수 있습니다.
3️. 컨텐츠 개별 누적 지표와 계정 지표를 분리해서 볼 수 있습니다.
링크드인이 제공하는 API가 페이지 데이터다 보니 개인용 컨텐츠에 대한 통계를 자동화 하지 못한 게 아쉽긴 하지만 주기적으로 데이터를 다운받아서 스프레드시트에 올리기만 하면 자동으로 시각화에 업데이트가 되게 했습니다.
+ Social Selling Index (SSI)와 같은 지표를 추가하면 좋을 것 같아 점진적으로 추가할 계획입니다.
+ 각 콘텐츠 유형에 대한 레이블을 추가하여 분석을 다양화하려고 합니다.
+ 링크에서 썸네일 이미지 자동으로 가져올 수 있게 하는 방법 없을까요?! 고민중입니다.
June 17, 2024
왜 유니콘 스타트업에서는 앰플리튜드를 쓰는 그로스마케터를 구할까?
웹/앱 서비스 내에서 사용자들의 행동을 분석할 수 있는 프로덕트 애널리틱스(Product Analytics), 서비스 분석 툴입니다.
앰플리튜드는 프로덕트 애널리틱스(Product Analytics)입니다. 단어가 영어일 뿐, 직역하면 서비스 분석 솔루션/툴입니다. 온라인 비즈니스, 서비스, 프로덕트, 마케팅 서비스들을 도와주는 기능들을 솔루션(Solution)/툴(Tool)이라고 많이 지칭합니다. 특히, 마케팅 쪽에서는 마테크 솔루션(Mar-tech Solution), 마테크 툴(Mar-tech Tool)이라고도 하죠.
가장 유명한 마테크 솔루션으로는 구글 애널리틱스(Google Analytics)가 있습니다. 무료인 만큼 대중성이 높고 자사몰이 있는 웹 서비스를 하신다면 들어보셨을 것입니다. 이전에는 앱이 약하다는 단점이 있었지만, 최근 GA4는 앱까지 커버합니다.
GA4가 앱까지 커버한다 해도 아직 앱 분석의 디테일은 앰플리튜드가 강합니다. 즉 GA는 웹(Web)>앱(App), Amplitude는 앱(App)>웹(Web)의 순으로 장점이 있습니다.
또한 구글애널리틱스는 사용자를 서비스 웹/앱에 들어오게 하는 유입에 초점이 맞춰져있습니다. 사용자 획득이라고 하여, UA(User Acquisition)으로도 이야기하는데요. 모든 서비스의 첫 시작이라고 할 수 있습니다.
유튜브를 구독하기 위해서, 무신사에서 상품을 사기 위해서, 밀리의 서재에서 책을 읽기 위해서는 결국 유튜브, 무신사, 밀리의 서재에 유입되어야 하니까요. 즉 목표가 되는 전환을 위해서는 유입이 필수 요건입니다.
일례로 구글애널리틱스는 사용자의 유입을 만들어내는 채널(Organic, Paid, Refferal)의 데이터를 세부적으로 확인할 수 있습니다. (물론 앰플리튜드로도 확인할 수 있습니다.)
UA 관점 (User Acquisition) 이후로 언급되는 것은 리텐션 (Retention)인데요. 첫 방문, 첫구매로 사용자의 행동이 끝난다면 서비스가 장기적으로 살아남기는 어렵겠죠? 이에 따라 두 번, 세 번 방문하고 또 전환되는 재방문과 재구매가 중요합니다.
(*코호트: 동일 특성을 가진 사용자의 집단화) 충성 사용자들의 코호트를 분석하여 특성을 파악하고 다른 사용자들이 충성 사용자가 될 수 있도록 유도할 수 있습니다.
즉, 구글 애널리틱스가 UA에 강점이 있는 솔루션이라면 앰플리튜드는 리텐션에 강점이 있는 솔루션이라고도 이야기할 수 있겠습니다. (물론 GA도 Retention을 볼 수 있고, 앰플리튜드도 UA를 볼 수 있습니다.)
스타트업 쪽에서 데이터 분석 역량을 요하는 직군에게는 우대 사항 혹은 자격 요건이 됩니다. 오늘 기준 원티드에서 찾아본 채용 공고인데요.
채널톡의 마케팅 매니저 채용 공고 내에도 우대사항으로 세일즈포스(아마 태블로겠죠?), 앰플리튜드 등 데이터 솔루션을 통한 성과 측정이 언급됩니다.
왜 앱 데이터를 분석해야 할까요? 더 좋은 앱을 만들기 위해서겠죠. 앱 데이터는 무엇으로 구성될까요? 사용자들의 정보와 행동에 의해서 앱 데이터가 쌓입니다.
사용자들이 불편을 느끼는 지점이 사용자들이 이탈하는 지점일테고, 불편을 개선하면 이탈률이 낮아지고 잔존율이 높아지며, 잔존율이 높아지면 전환의 대상이 되는 모수가 많아지기 때문입니다. 즉 더 많은 전환을 유도할 수 있게되어 서비스가 목표하는 KPI - 매출이나 회원수 등 - 을 달성할 수 있게됩니다.
앰플리튜드를 사용하면
대시보드는 여러 차트의 구성으로 이루어져있는데요.
예를 들어 UA 대시보드라고 하면, 첫방문수 추이(차트1), 가입수 추이(차트2), 첫구매수 추이(차트3), 첫방문을 광고 매체 별로 쪼갠 것(차트1-1) 등으로 구성될 수 있겠습니다.
이외 데이터에 대한 접근성을 높여서 회사 구성원들의 데이터 기반 의사 결정 (data-driven) 의사결정을 돕습니다. 데이터를 sql, python으로만 추출하는 경우 이 데이터 스킬셋이 있는 사람들만 데이터를 추출할 수 있는데요. Amplitude는 한 번 도입해두면 차트를 그리는 것이 훨씬 쉬워, 원하는 것을 보기도 쉽습니다.
마지막으로 데이터의 연동이 빠르다는 것 또한 장점입니다. 어제의 매출 데이터도, 오늘 오전의 유입 데이터도 바로 확인할 수 있습니다.
마케터와 서비스기획자(PM/PO), 데이터 분석가(Data Analyst), UIUX 디자이너 등 여러 직군에서 활용할 수 있습니다.
전체 구성원들이 함께 확인할 수 있는 KPI 대시보드
마케터가 사용하는 마케팅 대시보드
서비스기획자(PM)이 사용하는 프로덕트 대시보드
디자이너가 사용하는 디자인 대시보드 등이 있습니다.
무료 버전이나 구독 모델을 사용해볼 수 있습니다.
앰플리튜드 정규 도입은 한국 공식 리셀러인 AB180/CJ맥소노미를 통해 진행할 수 있습니다. 이후 기획자들의 택소노미 설계와 개발자들의 구현을 통해 도입이 완료됩니다.
앰플리튜드를 한 번 사용하면 없는 것을 상상하기 어렵습니다. 앰플리튜드의 효능을 체감하는 곳들은 많습니다. 29CM, 무신사, SSG, 올리브영 등 '앱'이 중요한 주요 커머스들은 많이들 사용합니다!
(참조) 29CM의 데이터 그로스팀의 데이터 분석가 분이 쓰신 글
앰플리튜드의 한국 공식 판권은 AB180과 CJMaxonomy(CJ맥소노미)가 가지고 있습니다. 제가 재직 중인 마티니아이오(martinee.io)는 컨설팅펌입니다.
마티니의 그로스팀은 Amplitude를 도입할 때 택소노미 설계를 도와주고 데이터 파이프라인을 구축을 지원하며, 대시보드의 기획과 제작을 돕습니다. 즉 앰플리튜드가 '참고서'라고 했을 때 이를 판매하는 서점은 AB180과 CJ맥소노라면, 마티니는 과외 선생님입니다. 어떤 식으로 과외가 진행되는지, 시연을 원하시는 분들은 연락주세요!
June 14, 2024
왜 다들 데이터드리븐을 이야기할까요?
데이터드리븐의 중요성을 논하기 전에, 어제 회의를 떠올려 보면... 회의 때 다들 어떤 이야기를 하고 계신가요?
눈치채셨나요?
같은 상황(가입 과정, UI, 상품 매출, 체류시간)에 대해서 이야기하고 있는데 숫자가 더해진 것만으로 내용이 구체적이 되었습니다.
As-is의 상황은 상황 설명과 추측으로만 이루어져 특정 팀을 탓하는 것처럼 들리기도 하네요. (마케팅팀, UIUX팀, 상품팀, 프로덕트팀...에게 잘못을 전가하는 느낌이 묘하게 들죠.) 이에 반해 To-be의 상황은 상황 설명에 숫자가 붙고 비교군이 명확해지면서 문제를 정확히 직시하게 해줍니다.
✅ 카카오로 간편 가입하면 핸드폰 인증은 필요 없으니, UI에서 카카오를 좀 더 강조한 A/B 테스트해보시죠!
✅ 개선안 내에서 어떤 영역의 클릭률이 가장 높고 어느 영역에서 이탈하는지 추가 분석해볼까요?
✅ 클릭률이 높은 상품들의 썸네일들을 모아서 다른 점이 있는지 인사이트 찾고, 이미지 A/B 테스트 운영해보죠!
✅ 신규 캠페인에 의해서 유입 채널별 비중이 달라졌는지 확인해보고 사용자 특성 및 체류시간 점검해보죠.
구성원 별로 한 상황에 대해 여러 측면의 추측을 하는 것이 아닌, 동일한 시야를 가질 수 있게 되어 의견 교환이 훨씬 원활하고 빠르게 같은 결론에 도달할 수 있죠. 결국 데이터드리븐은 내 머릿속 드리븐이 아닌, 팀장님 머릿속 드리븐도 아닌, 사장님 머릿속 드리븐(....!)도 아닌
데이터드리븐의 중요성은 인지했다면 그 다음은 무엇일까요?
데이터드리븐 의사결정과 그것이 가능해지는 환경을 구축하는 것이겠죠.
보통은 엑셀, 구글 스프레드시트, PPT등으로 데이터를 봅니다. 엑셀/스프레드 시트의 단점은 숫자의 나열이기에 표를 해석하기가 쉽지 않다는 것이고 (물론 엑셀로 그래프를 구현할 수 있지만요!) 엑셀/시트를 raw data로 그래프를 그려 PPT에 얹으면 보기는 좋아지만 수작업이 필요하다는 것이 단점입니다.
특히 마케터들은 다수의 광고 매체와 MMP, 내부 DB의 데이터를 함께 봐야하므로 아무리 pivot을 돌린다고 해도 재가공해야하는 rawdata가 꽤나 많고 일간/주간 성과를 정리하는 것이 결국 시간을 왕창 잡아먹는 업무가 되죠.
결국 대시보드의 가장 좋은 점은 '자동화' 입니다. 직접 다운로드 받던 데이터들은 API로 호출해서 받아내고, 직접 정제하던 데이터들 또한 미리 정의해둔 데이터 스키마에 의해 분류되어 적재됩니다. 그래프, 필터, 전일/전주/전월 추이 등 형식을 미리 정해두면 데이터가 자동 업데이트되며 값은 채워집니다.
태블로 대시보드를 제작하기 위해는 4단계의 프로세스가 필요합니다.
환경 점검 > 데이터 수집 > 데이터 저장 > 데이터 시각화인데요.
자세한 내용은 다음 번 글에서 다뤄보도록 하겠습니다!
June 4, 2024
프로모션 시작날짜, 종료날짜, 프로모션 이름만 있다면 간단하게 구현가능 합니다.
커머스 뿐 아니라 프로모션이 빈번한 서비스에서는 다양한 프로모션이 진행되기도 하고 심지어 겹쳐서 진행되기도 합니다.
프로모션은 매출에 직접적인 영향을 주는 중요한 요소이기 때문에 프로모션에 대한 매출 영향도를 잘 분석해서 프로모션 효과를 지속적으로 높여나가야 합니다.
다만, 앞서 말한 것처럼 여러 개가 동시에 진행되는 프로모션의 매출과 영향도를 구별해서 보는 것은 쉽지 않습니다.
아래의 루커스튜디오 차트를 활용하면 프로모션에 대한 타임라인을 간단하게 시각화할 뿐 아니라 각 프로모션 주요 지표도 동시에 확인 가능합니다.
차트 내 필터 클릭 시 발생하는 기능 오류가 있긴 하지만 추후 차트에 대한 완성도가 높아진다면 날짜별 액션에 대한 성과분석이 중요한 프로모션 & CRM 마케터 분들에게 유용한 방식이 될 것 같습니다.
원본 포스팅 링크
June 3, 2024
비즈니스의 주요 지표를 파악하고 데이터 기반 의사결정을 하는 것은 매우 중요합니다.
다양한 기업들을 대상으로 데이터 드리븐 환경 구축을 목적으로 데이터 대시보드를 만들고 있습니다.
그 중 무엇보다 우선적으로 구축하는 것은 비즈니스 주요 지표를 한판에 보면서 전반적인 흐름을 살펴보는 KPI 대시보드 입니다.
KPI 대시보드를 구축하는 방법은 다양하지만 중요한 기준 중 하나는 지표의 표현 방식입니다.
비즈니스 주요 지표는 집계된 숫자로는 그 의미를 한눈에 알 수 없습니다.
(e.g.오늘의 매출 100만원)지표가 데이터로서 충분한 의미를 가지기 위해서는 비교와 비율이 필요합니다.
만약 해당 지표가 시계열 데이터라면 트렌드까지 더해주면 더욱 완벽한 지표 기준이 될 수 있습니다.
예를 들어 아래와 같이 해석할 수 있게 분석과 대시보드가 구성되어야 합니다.
"오늘 매출 100만원은 전일대비 30% 상승한 수치입니다. 다만 최근 1주일 트렌드 기준 하락추세이기 때문에 추가적인 매출 상승 전략이 필요합니다."
해당 내용을 담은 대시보드가 궁금하신 분들은 아래 링크를 확인해주세요.
원본 포스팅 링크
May 10, 2024
마티니는 최근 버거킹 코리아와 함께 Amplitude를 활용한 그로스 프로젝트를 진행하고 있습니다.
고객의 참여를 유도하고 장기적으로 수익 증대를 실현하는 그로스 마케팅의 첫 단추인 AARRR 퍼널 구현 사례를 공유하고자 합니다.
이 글에서는 AARRR 프레임워크의 정의부터 해당 프레임워크를 적용하여 어떻게 대시보드 목차를 구성하고 직접 구현하는지에 대한 플로우를 설명하였습니다. 차트 예시는 Amplitude의 데모 계정의 데이터를 활용하여 구현하였습니다.
‘그로스 해킹’이라는 단어를 처음으로 만들어낸 션 앨리슨은 비즈니스가 성장하기 위해서는 ‘좋은 제품을 사람들이 어떻게 사용하게 만들지’를 고민하는 것이 매우 중요한 시작점이라고 했습니다. 그는 비즈니스가 최대한으로 성장할 수 있는 방법을 계속해서 실험하여 그로스 해킹의 프레임워크가 있다고 주장했습니다.
실제로 이러한 프레임워크를 활용해서 Dropbox는 10명의 직원에서부터 지금은 10억 달러 (한화 1조원)이 넘는 초 대기업이 되었습니다.
그로스 분석의 목적은 서비스별 지속 가능한 선순환의 비즈니스 사이클을 만드는 것입니다.
그럼, 이 사이클은 어떻게 찾아낼 수 있을까요? 지금까지 해왔던 대로의 ‘관습’은 새로운 소비자의 변화를 쫓아가기에 느리고, ‘감’은 불확실합니다. 이때 우리는 ‘데이터’를 활용하게 됩니다.
과학적으로 접근해서 이러한 사이클의 단서를 찾을 수 있습니다. 즉, 션 앨리스가 강조하는 ‘과학적 접근’의 ‘그로스 해킹 프레임워크’가 바로 ‘AARRR’입니다.
그로스 해킹 퍼널인 AARRR은 Acquisition(유입), Activation(활성화), Retention(리텐션), Revenue(매출), Referral(추천)의 5단계로 이루어져 있습니다.
버거킹 서비스에 대조해 보면 아래와 같은 질문들을 나열해 볼 수 있으며, 해당 질문들이 바로 각 단계별로 고려해야 하는 지표를 의미합니다.
📝 AARRR Funnel
(1) Acquisition (유입, 획득)
(2) Activation (활성화)
(3) Retention (리텐션)
(4) Revenue (매출)
(5) Referral (추천)
그럼 우리는 위 질문에 대한 답을 어떻게 찾을 수 있을까요? Amplitude라는 프로덕트 분석 툴을 활용하여 AARRR 대시보드를 구현하여 확인할 수 있습니다.
📝 AARRR Funnel에 따른 대시보드 목차 구성
(1) Acquisition (유입, 획득)
(2) Activation (활성화)
(3) Retention (리텐션)
(4) Revenue (매출)
(5) Referral (추천)
우선 서비스 특성에 맞춰 유저 코호트를 생성합니다. 예를 들면 앱 주문, 웹 주문과 같이 주문 채널, 주문 횟수, 연령대, 주문 금액대, 성별 등 특성을 기반하여 유저 코호트를 생성하고 코호트와 전체 유저별 차이를 확인합니다.
더불어 프로모션의 주기, 사용 주기를 바탕으로 각 차트의 기간을 정합니다. 최근 30일 자, 일자별 혹은 최근 90일, 월별 등의 날짜 옵션으로 정할 수 있습니다.
*Amplitude 차트는 목업 데이터를 활용하였습니다.
*각 항목별 주요 테이블 차트만 예시로 설명하였습니다.
1️. DAU (Daily Active User, 일별 활성 유저)
📌 체크 포인트
2️. 회원가입
3️. 설치
📌 체크 포인트
1️. 첫 구매 경로
View Item Details
→ Add to Cart
→ Checkout
→ Complete Purchase
순이라고 가정했을 때, 첫 구매 경로를 구하기 위해서는 기준이 되는 이벤트에 Historical Count = 1 조건을 걸어 확인할 수 있습니다.View Item Details
에서 마지막 이벤트인 Complete Purchase
까지 대부분의 유저가 5일 내에 전환을 완료했기 때문입니다. 이는 Time To Convert 측정을 통해 확인할 수 있습니다.
📌 체크 포인트
1️. 리텐션 Engagement Matrix
App Push
, In_App_Message Impression
과 같은 분석과 관련도가 낮은 이벤트는 수동으로 체크박스 해지하여 필터링 적용할 수 있습니다.
📌 체크 포인트
1️. 주문 이벤트 Compass
2️. 건단가
Average of
Property Value
대신 Sum of Property Value
로 선택하여 확인이 가능합니다.
3️. 객단가
📌 체크 포인트
1️. 입소문 계수 (WOM, Word Of Mouth) (출처:Reforge)
Amplitude는 프로덕트를 이용하고 있는 고객을 이해할 수 있도록 도와주는 매우 유용한 분석 툴입니다. 하지만 동시에 처음 시작하기에 어려운 툴이기도 합니다. 어떠한 데이터 차트를 만들고 무슨 지표를 봐야 할지 결정하기란 쉽지 않기 때문입니다.
이때 그로스 해킹의 AARRR 프레임워크를 기반으로 질문들을 써 내려가다 보면 답을 얻기 위해 필요한 데이터와 지표가 눈에 보이기 시작할 것입니다. AARRR 대시보드를 통해 서비스의 성장을 확인하고 추가적으로 시도해 볼 만한 인사이트를 얻으시길 바랍니다.
- AARRR: Come Aboard the Pirate Metrics Framework
- Engagement Matrix: discover what your users love (and don't love) about your product
- How to Calculate The Word of Mouth Coefficient in Amplitude
January 13, 2024
GTM은 Google Tag Manager의 약자로 구글이 쉽게 웹 사이트에 구글의 태그(코드)를 설치할 수 있도록 도와주는 솔루션이다.
여기서 잠깐... 그럼 태그(Tag)는 무엇일까?
태그는 뭐고 픽셀은 뭔가요? 다른 걸까요?
디지털 마케팅을 접해본 사람이라면 픽셀, 태그라는 용어를 정말 많이 들었겠지만 저렇게 질문을 했을 때 명확하게 답하는 사람은 많지 않다.
정답은 태그(Tag)와 픽셀(Pixel) 모두 같은 말이다(!).
GA4과 같은 제삼자에게(메타일 수도, 구글애즈일 수도, 앰플리튜드일 수도 있다.) 정보를 전송하는 자바스크립트(전송 컴퓨터 언어 종류) 코드 조각을 '태그'라고 부른다.
메타, 카카오에서는 '픽셀'이라 말하고 구글에서는 '태그'라고 지칭한다.
태그 스니펫(=코드 조각)은 이렇게 생겼다.
위 코드 스니펫은 유저가 로그인 성공했을 때 gtag(구글태그)라고 하는 해당 코드를 발동시켜 user_id를 포함한 login 이벤트를 구글 매체에게 전송하는 역할을 가지고 있다.
즉, 유저가 내가 추적하고자 하는 행동(이벤트)을 했을 때 코드가 작동하면서 유저 행동 정보를 매체에게 전송하고 매체들은 본인들의 집계 기준을 통해서 필터링하여 대시보드에 적재하게 된다.
만약 대시보드 내에 확인되는 수치들이 이상하다면 태그가 정상 발동되는지 가장 먼저 의심해보아야 한다.
자 그렇다면 GA4를 설치하기 위해서는, 당신의 사이트에 1) GTM의 코드와 2) GTM 안에 GA4코드를 설치해야 한다. 그래야 GTM이 작동하면서 GTM 내부에 있는 GA4 코드를 실행시켜 유저 액션 데이터를 GA4 대시보드에 보여주니까!
우선 GTM 사이트(링크)에 들어가서 GTM의 계정과 컨테이너를 생성한다.
1개의 계정 안에는 복수 개의 컨테이너를 추가 생성할 수 있다.
컨테이너를 생성하면 GTM id가 부여되고 GTM id를 클릭하면 GTM 코드를 확인할 수 있다. <head> 영역의 코드를 복사한다.
<head> 코드에 부여된 GTM id가 내가 생성한 id와 동일한지 확인을 하고 맞다면 웹 페이지의 HTML <head> 영역의 가장 최상단 영역에 코드를 넣는다.
(가능하면 최! 상단에 넣도록 한다. GTM 코드가 가장 우선적으로 실행되어야 하기 때문에..)
만약 내부 개발자가 자체적으로 구축한 사이트라면 개발자에게 부탁하여 디자인 소스 <head> 영역에 넣어달라고 요청해야 하고 카페24, 아임웹, 고도몰과 같은 호스팅사를 이용해 구축했다면 관리자에 들어가서 쉽게 코드를 추가할 수 있다.
📝 호스팅사 별 GTM 삽입하는 방법
(1) 카페24: 쇼핑몰 설정 > 기본설정 > 검색 엔진 최적화 > 고급 설정 > 코드 직접입력
(2) 고도몰: 기본 설정 > 기본 정책 > 외부스크립트 관리
(3) 아임웹 (링크)
(4) 식스샵 (링크)
단, GTM은 내 사이트 영역에만 삽입되어 작동하는 코드이므로 내 사이트 내에 열리는 다른 소유의 사이트에 대해서는 추적이 불가능하다.
가장 대표적인 예로는 Npay 버튼을 클릭했을 때 넘어가는 Npay 결제 화면으로, 해당 페이지는 네이버 페이 권한이기 때문에 GTM으로는 정확하게 결제 완료까지 추적이 불가능하다.
대신 Npay 버튼 클릭 값으로 수치를 추측할 수 있다.
예외적으로 카페24처럼 매체와 네이버 간 API로 직접 연동이 되어 있는 호스팅사라면 매체 대시보드에서 API로 받아오는 구매 건수와 결제금액을 확인할 수 있다.
(카페24 <> 메타의 경우)
커머스 사이트라면 기본적을 아래 이벤트를 가장 많이 활용할 것이다.
pageview (페이지뷰)
전자상거래 이벤트의 경우 GA4 매뉴얼 문서에 이벤트 명을 명시해 두었으므로 문서를 참고해서 내 사이트에 필요한 이벤트를 선별 하면된다. (링크)
GTM으로 삽입하는 방식은 크게 (1)페이지 URL과 (2)버튼 클릭 조건으로 삽입할 수 있다.
마티니 아이오 페이지를 예시로 들어보자.
마티니 아이오 홈페이지에 들어가면 상단 바에 'Our Workflow', 'Success Stories', 'Meet Martinee' 탭이 보인다.
만약 방문 유저가 'Meet Martinee' 페이지에 랜딩 했을 때 view_item(상세페이지 조회) 이벤트를 추적하고 싶다면 가장 쉬운 방법으로는 페이지 URL이 변경될 때를 조건으로 설정하는 것이다.
GTM에서 '트리거'는 발생 조건을 의미한다.
우리는 특정 페이지 주소를 조건으로 잡아야 하기 때문에 GTM > 트리거에서 새로 만들기를 클릭한다. 트리거 유형은 'DOM 사용 가능'으로, 특정 페이지 URL이 랜딩 됐을 때만 이벤트가 발동해야 하므로 '일부 DOM 사용 가능 이벤트'로 설정한 후 page path 조건을 걸어둔다.
만약 유저가 'Meet Martinee' 페이지에 랜딩 했을 때가 아닌, 'Meet Martinee' 버튼을 클릭했을 때 view_item(상세페이지 조회) 이벤트를 발동하고 싶다면 트리거를 클릭요소로 바꾸면 된다.
우선은 웹 사이트 상에서 개발자 도구를 연다. 그 후 내가 추적하고 싶은 아이콘(버튼)에 마우스 커서를 갖다 대면 해당 버튼의 html 코드가 같이 표시된다.
개발자 도구에서 보면 해당 버튼의 클래스 이름은 "font-poppins-bold text-base text-white"이고 버튼 텍스트는 "Meet Martinee"임을 알 수 있다. 그럼 우리는 Click Classes와 Click Text를 가지고 GTM에서 트리거 조건을 걸 수 있다.
자, 이제 이벤트 발동 조건을 모두 설정하였으니 이벤트만 설정하면 된다. 이벤트는 GTM의 태그에서 생성할 수 있다. 트리거와 마찬가지로 태그에서 '새로 생성하기'를 클릭하고 이벤트 명을 설정해 준다. 이벤트 명은 내가 대시보드에서 확인할 수 있는 이벤트명과 매체를 명시하는 것이 추후 수정/관리가 용이하다.
GTM은 구글 마케팅 플랫폼으로 GA4와 연동이 되어 있어 어려운 코드가 필요하지 않다.
이벤트 이름과 내가 설정한 meet_martinee_landing_page 트리거를 설정한 후 '저장'을 클릭하면 Meet Martinee 페이지에 랜딩 할 때마다 GA4의 view_item 이벤트가 발동하게 되는 것이다.
트래킹이 필요한 이벤트의 태그 삽입을 완료하면 GTM 컨테이너 상단의 '미리 보기'를 통해 이벤트가 잘 발동되고 있는지 체크를 해보고, 문제가 없다면 '배포'를 클릭하여 실제 사이트에 코드를 배포하면 된다.
January 12, 2024
태그(Tag 혹은 Pixel)는 디지털 마케팅을 하기 위해 데이터를 전송하는 역할을 하는 코드 조각으로 디지털 마케팅의 첫 단추라고 생각하면 된다.
약간의 컴퓨팅 지식(예를 들면 javascript, 웹/앱 구조 등등)이 필요할뿐더러 매체마다 메뉴얼이 다르고 업데이트가 빨라 한 번에 지식을 터득하기가 매우 어려웠다. 국내외 블로그, 매뉴얼 문서, 오프라인 강의 등 닥치는 대로 찾아보면서 공부했었다.
그렇게 한 땀 한 땀 구슬 꿰듯이 터득하고 보니 결국 하나의 매체 혹은 마테크(MartTech, Marketing + Technology) 툴을 활용하기 위한 순서가 크게 다르지 않다는 것을 깨달았다.
보통은 아래와 같은 일련의 순서를 따르게 된다.
📝 연동 플로우
1. 내 사이트/앱 컨디션 점검
2. (웹) GTM 태그 설치 / (앱) SDK 설치
3. QA 및 배포
4. 대시보드 설정
5. 활용하기
5-1. 데이터 분석
5-2. 데이터 시각화
5-3. 다른 마테크 툴 또는 매체와 연동
우선은 내가 분석해 보고 싶은 사이트/앱의 (접근 권한을 가지고 있어야 하므로 보통은 내 서비스의 사이트 혹은 앱)의 현황을 체크해야 한다. 어떻게 사이트를 구축했는지, 개발자의 지원은 받을 수 있는지, 이전에 사이트에 설치해 놓은 다른 분석 툴이나 매체 코드가 있는지 등을 주로 확인한다.
GTM(Google Tag Manager)은 구글에서 2012년에 웹 사이트 추적 코드를 빠르게 삽입하기 위해 론칭한 솔루션으로, 추적 코드를 매우 빠르게 설치하고 쉽게 수정할 수 있다.
웹 사이트는 주로 GTM을, 앱은 SDK를 활용하여 필요한 태그를 설치하면 된다. 단, 어떤 데이터를 추적하고 싶은지 목적을 잘 설정해야 하고 해당 목적에 따라 세부적으로 어떤 유저 행동을 각각 봐야 하는지('이벤트'라고 부른다.) 잘 설계해야 한다.
이렇게 체계적으로 추적할 이벤트를 설계하는 것을 '택소노미'(Taxonomy)라고 한다.
QA(Quality Assurance)는 새로운 코드나 기능을 배포하기 전 해당 코드를 실제처럼 구현해 보고 문제가 있는지 여러 번 확인하거나 모니터링하는 단계라고 보면 된다.
QA 단계가 끝나면 실제 웹/앱 서비스에 신규 코드를 배포하여 반영될 수 있도록 한다. QA 단계에서 테스트를 여러 번 진행했더라도 실제 서버에서 에러가 나는 경우도 많으므로 배포 직후에도 테스트를 해보는 것이 중요하다.
실제 사이트에서 매체나 마테크 툴 연동 코드를 배포하고 나면 해당 매체나 마테크 대시보드에 수치가 찍히게 된다.
이때 각 대시보드에서 설정해야 하는 기본적인 사항들이 있으므로 잘 숙지를 하고 미리 세팅을 해놓아야 한다. 그렇지 않으면 대시보드에 수치가 반영되지 않기도 한다.
기본적으로 제공해 주는 툴을 사용하다 보면 내가 가지고 있는 추가적인 데이터와 연결하여 분석하고 싶거나 다른 부서의 사람들과 함께 활용하거나 보고용으로 시각화하는 작업이 필요하기도 하다.
이때는 빅쿼리, 스노우 플레이크, AWS와 같은 클라우드 서비스와 연동해서 데이터를 추가하고 정제하는 작업을 하거나 태블로, 루커 스튜디오와 같은 데이터 시각화 툴과 연동해서 추가 작업을 한다.
세상에는 많은 마테크 툴이 있지만 사업 규모나 예산에 상관없이 한 개만 선택해야 한다면, GA4(Google Analytics)를 추천하고 싶다.
일단은 무료인 데다가 다른 구글 마케팅 플랫폼과 연동이 쉬워 진입 장벽이 낮기 때문이다. 그리고 GA3에서 GA4로 업데이트 되면서 대시보드 업로드 속도도 개선되었고, 데이터 분석에 익숙하지 않은 사용자들이 비교적 쉽게 이해할 수 있도록 직관적인 시각화 기능도 추가되어서 초기 도입 툴로 좋다. (실제로도 많은 기업들이 초기 도입 툴로 GA4를 많이 활용하고 있다.)
위에 나열한 것과 같이 많은 단계를 거쳐야 하지만 내 사이트를 방문하는 고객들을 분석하고 기본적인 대시보드(리포트)를 만드는 것, 디지털 마케팅의 필수 단계이다. 다만, 관련된 도메인이 많아서 흩어진 자료를 취합하고 이해하는 과정에서 굉장히 시간이 많이 소요될 것이다.
소규모 기업부터 대기업까지 여러 규모의 담당자들을 만나면서 느낀 점은 치열한 경쟁 속에 비즈니스를 성장시키는 것은, 그야말로 전쟁터 같았다. 그 망망대해 같은 전쟁터에서 누군가의 직관적인 '감'으로만 고객을, 그리고 팀원을 설득한다는 것은 매우 불안한 일이다. 그 말을 하고 있는 나 조차도 흔들리기 때문이다.
데이터는 그때마다 등대와 같은 역할을 해주는 것을 많이 보았다. 어디로 나아갈지 확신을, 방향을 가르쳐줬다. 그래서 누구나 데이터를 활용할 수 있고 볼 수 있어야 한다.
어렵지만 어려운 것으로만 남아서는 안되므로, 혼자라도 GA4를 연동하고 루커 스튜디오를 활용해 기본적인 대시보드를 만들 수 있도록 필요한 개념과 과정들을 이 시리즈로 한 번에 끝낼 수 있도록 소개하려고 한다.
January 2, 2024
게임 런칭 후, 규모가 큰 예산을 다양한 매체에 투입하여 빠른 최적화를 위해
MMP(Mobile Measurement Platform)와 광고비 데이터를 매칭하는 일은 게임 마케터들에게는 매일이 도전이다.
성과를 리포팅하기 위해 매일 오전에 엑셀로 기계적으로 해야만 하는 매칭 작업은 정말 번거롭다.
엑셀에서의 작업은 단순하지 않다.
굉장히 많은 시트를 참조하는 수식과 표들이 엄청나게 많다.
아래처럼 데이터가 정리되어 있다면 보는 사람도 힘들다.
이 엑셀에 있는 수 많은 테이블들을 깔끔하게 시각화 대시보드를 만들어서 성과를 볼 수 있는 방법에 대해서 소개하려고 한다.
(다만 약간의 파이썬으로 데이터를 약간 다룰 수 있다면 가능한 수준)
시각화해서 보면 데이터 분석이 용이해져서? 편해서?
대시보드가 마케터에게 필요한 이유는 전체적인 상황을 빠르게 파악해서 문제 발생 시 빠르게 대응하는데 도움을 준다.
엑셀로 시각화 해서 볼 수 있겠지만..
아무래도 BI툴(Business Intelligence Tool)은 데이터가 많아졌을 때와 지표를 복합적으로 다양한 분석 단위와 엮어서 볼 때 힘을 발휘한다고 생각한다.
Looker Studio(구) Data Studio와 빅쿼리(BigQuery)를 활용하여 속도와 효율성을 높일 수 있다.
특히 BI engine이 빅쿼리를 사용하면 빠른 속도로 대시보드를 사용 수 있다.
(대시보드도 데이터 양이 많거나 수식 등이 많아지면 당연히 느려지긴 하지만 엑셀처럼 '응답 없음' 이런 에러는 발생하지 않음)
루커스튜디오에서 BI 엔진이 작동하는지 어떻게 알 수 있는지는 아래 이미지 캡쳐의 번개모양이 표시되고 있다면 지금 BI 엔진이 동작한다는 뜻이다.
빅쿼리는 뭐냐? 데이터 웨어하우스 종류의 하나다. 쉽게 말해 데이터 저장소이다.
우리는 이걸 활용해서 엑셀에 데이터만 모아서 구글 저장소에 던져주면 우리는 데이터 해석만 하면 된다!
광고 데이터 분석에 시간을 더 투입할 수 있다.
게임 성과에 중요한 지표는 ROAS, CPA, NRU, CPI, ROAS D+1, ROAS D+7 , LTV 등이 있다.
이해를 위해 쉽게 설명하면 내가 우리 게임을 위해 10억을 광고비에 투자했을 때, 이 돈이 한 명의 잠재 고객을 데려오기 위해 얼마나 효율적으로 쓰였는지?
신규 유저를 효율적인 단가에 잘 데려와서 우리 게임을 얼마나 오랫동안 즐기고 있는지를 파악하기 위해 숫자로 분석하는 지표다.
이 지표들은 트렌드들을 한눈에 볼 수 있어야 되고 특정 지표가 상승하거나 하락했을 때 원인을 분석 단위(광고 매체, 광고 캠페인, 광고 소재) 등에서 빠르게 찾아낼 수 있어야 한다.
여기 소개드리는 마케팅 대시보드 구축을 위한 데이터 파이프라인은 아래와 같다.
게임 회사들은 대부분 모든 회사들이 MMP(AppsFlyer, Adjust, Airbridge 등)를 쓸 것이다.
(보통 대행사들은 광고주 측과 엑셀 파일에 성과를 정리하여 핑퐁 한다)
1. 엑셀 파일에 Raw Data를 수집한다. (MMP, 광고 채널별 데이터) - API를 활용해서 자동으로 데이터를 수집할 수 있지만, 개발자 없이 마케터 혼자 할 수 없다.
2. 데이터 전처리 : 여러 데이터를 네이밍 컨벤션을 기준으로 엮어서(JOIN) 해서 MMP 데이터를 통한 지표와, 광고비, 클릭수와 같은 광고 성과 데이터를 하나의 테이블로 만들어낸다.
3. 전처리한 데이터들을 구글 클라우드 스토리지(GCS)에 파일을 업로드한다.
(여기서 바로 그냥 스프레드시트와 데이터 혼합해서 사용해도 되지 않냐고 할 수 있지만 한 번 해보면 너무 느려서 대시보드를 사용할 수 없을 정도..)
4. 파일을 업로드하면 자동으로 Google Cloud Functions 에서 GCS파일이 업데이트될 때마다 읽어서 빅쿼리에 기존 데이터를 업데이트한다.
5. Looker Studio로 데이터 원본을 만들고 대시보드 구축을 시작한다.
마케터들이 직접 수행 가능한 대시보드 구축 프로세스를 통해 모바일 게임 마케팅에서의 복잡한 데이터 작업을 효율적으로 해결할 수 있다.
Looker Sudio와 BigQuery를 활용해서 빠르게 인사이트를 얻을 수 있을 것이다.
원래는 광고 데이터까지 API를 활용해서 자동으로 데이터를 소싱해서 전처리까지 자동화시킬 수 있으나 개발자와의 소통과 개발 리소스를 실무에서 획득하기가 쉽지 않을 것이다.
하지만 오늘 소개한 방법은 실제 퍼포먼스 마케터들도 충분히 활용 가능한 방법이고 엑셀 내 수많은 시트와 장표 지옥에서 해방되고 싶다면 무조건 시도를 해보면 많은 도움을 받을 수 있지 않을까 생각된다.
December 29, 2023
이 지표는 서비스의 일일 사용량과 참여도를 측정하는 데 유용합니다.
이 지표는 장기적인 사용자 참여와 서비스의 월간 성장을 파악하는 데 도움이 됩니다.
DAU와 MAU는 서비스의 성공과 성장을 측정하고, 전략적 의사결정을 내리는 데 중요한 역할을 합니다.
- DAU와 MAU를 통해 사용자들이 얼마나 자주 서비스를 이용하는지 파악할 수 있습니다.
- DAU의 중요성
- MAU의 중요성
- 참고) DAU & MAU
- DAU와 MAU를 시간에 따라 추적함으로써, 서비스의 성장 추세의 변화를 분석할 수 있습니다.
1. Amplitude에서 New Chart > Segmentation을 클릭합니다.
2. 이벤트 모듈에서 Amplitude 자동생성 이벤트인 Start Session를 선택합니다.
"Start Session" Event 정의
A marker indicating the start of a user session.
A session is a period of time that a user has your app in the foreground.
By default, events within 5 minutes of each other are combined into a single session on a mobile app.
On web, events within 30 minutes of each other are combined into a single session.
유저수를 확인하는 것이 목적이므로 Measure 기준을 Uniques로 선택합니다.
3. 해당 방식을 통해 Amplitude에서 DAU를 확인할 수 있습니다. 추가로 메트릭 모듈에서 날짜 설정을 통해 원하는 기간을 설정하여 확인할 수 있습니다.
1. Amplitude에서 New Chart > Segmentation을 클릭합니다.
2. 이벤트 모듈에서 Amplitude 자동생성 이벤트인 Start Session를 선택합니다.
3. 우측의 Advanced 버튼을 클릭해 Rolling Window를 클릭해줍니다.
월 기준 확인을 위해 기준 day를 30일로 설정해줍니다.
4. 해당 방식을 통해 Amplitude에서 MAU를 확인할 수 있습니다. 추가로 메트릭 모듈에서 날짜 설정을 통해 원하는 기간을 설정하여 확인할 수 있습니다.