Popular

Recommend

recomm_thumbnail
MARTECH

데이터 분석의 새로운 파트너: Ask Amplitude

December 11, 2025

Ask Amplitude: AI 비서로 데이터 분석을 더 쉽게

Amplitude,앰플리튜드,Ask Amplitude, Amplitude AI, 데이터분석, 데이터분석 솔루션

데이터를 분석하다 보면 ‘이 질문에 답하려면 어떤 차트를 만들어야 할까?’라는 고민을 자주 하게 됩니다. 앰플리튜드(Amplitude)는 이러한 고민을 덜어주기 위해 Ask Amplitude를 선보였습니다.

Ask Amplitude는 사용자가 자연어로 질문을 입력하면, 곧바로 적합한 차트를 생성하고 인사이트를 제공합니다. 지금부터 Ask Amplitude를 실무에서 어떻게 활용할 수 있는지, 구체적인 사례를 통해 살펴보겠습니다.

사용자의 질문을 적용 가능한 인사이트로

Amplitude,앰플리튜드,Ask Amplitude, Amplitude AI, 데이터분석, 데이터분석 솔루션

행동 데이터의 핵심 가치는 질문에 답하고, 의사 결정에 필요한 인사이트를 도출하는 데 있습니다. 그러나 지금까지 앰플리튜드를 사용하는 많은 사용자들은 제품 UI에서 차트를 단계별로 직접 구성해야 했습니다.

이제 Ask Amplitude를 통해 이러한 복잡한 차트 작성 과정을 대폭 간소화할 수 있습니다. 여러 단계를 거쳐 차트를 구성할 필요 없이, 아래 예시처럼 궁금한 내용을 질문 형태로 입력하기만 하면 됩니다.

콜아웃 박스 - 회색 링크 Hover
- 추천 상품을 본 후 구매율이 가장 높은 카테고리는 무엇입니까?
- 사용자가 최소 5곡을 재생하는 세션의 평균 길이는 얼마입니까?
- 무료 플랜과 유료 플랜을 제공하는 회사가 처음 세 명의 사용자를 초대하는 데 걸리는 시간은 얼마나 걸립니까?

Ask Amplitude는 질문을 이해하고, 적절한 차트 유형과 이벤트, 속성을 자동으로 선택해 결과를 보여줍니다. Amplitude AI Agent 기능과 함께 활용하면, 데이터 분석에 필요한 시간과 노력을 크게 줄일 수 있습니다.

실무자를 위한 AI 비서

Ask Amplitude는 데이터팀에 의존하지 않고도 누구나 스스로 데이터를 탐색할 수 있도록 설계되었습니다. 단순히 질문에 답하는 AI가 아니라, 실무자가 제품 데이터를 직접 활용할 수 있도록 돕습니다.

Amplitude,앰플리튜드,Ask Amplitude, Amplitude AI, 데이터분석, 데이터분석 솔루션

예를 들어 ‘사용자 가입부터 노래 또는 영상 구매까지의 퍼널 전환율은 어떻게 되나요?’라고 질문했다고 가정해 보겠습니다.

Ask Amplitude는 전환율 수치만 제공하는 데서 그치지 않고, A/B 테스트 가입 그룹별로 데이터를 분할하고, 전날 대비 지표를 비교하며, 첫 단계에서 안드로이드(Android)와 iOS 플랫폼만 필터링하는 방법까지 함께 보여줍니다.

또한 자연어 기반으로 데이터 분석을 구성할 수 있게 되면서, 실무자가 필요한 시점에 직접 서비스 데이터를 분석하고 인사이트를 도출할 수 있게 되었습니다. 이렇게 생성된 차트는 단순한 보고용 결과가 아니라, 실무자가 스스로 지식을 쌓고 다음 질문에 주도적으로 답할 수 있는 토대가 됩니다.

더 쉬운 데이터 분석을 위한 더 정확한 관리

Amplitude,앰플리튜드,Ask Amplitude, Amplitude AI, 데이터분석, 데이터분석 솔루션

편리함만을 이유로 AI가 차트를 무분별하게 생성하게 두면 문제가 발생할 수 있습니다. 비슷한 내용의 차트가 여러 개가 있으면, 오히려 어떤 차트를 신뢰해야 할지 판단하기 어려워지기 때문입니다.

Ask Amplitude는 시맨틱 검색을 활용해 이러한 문제를 방지합니다. 새로운 차트를 만들기 전에 먼저 앰플리튜드 내에 이미 존재하는 콘텐츠를 검색하고, 동료들이 만들고 검증한 차트 중 유사한 것이 있는지부터 확인합니다.

이러한 검색 기법은 ‘스트리밍된 비디오 시간’과 ‘총 시청 시간’처럼 표현은 다르지만 같은 의미를 가진 용어까지 인식합니다. 덕분에 사용자는 대부분의 경우 새로운 차트를 추가로 생성하지 않고도 필요한 콘텐츠를 찾을 수 있으며, 앰플리튜드 내 콘텐츠의 품질과 신뢰도를 함께 유지할 수 있습니다.

마티니는 앰플리튜드를 활용해 고객사가 데이터에서 인사이트를 얻고, 더 나은 의사결정을 할 수 있도록 돕고 있습니다. 데이터 환경을 구축하고 마케팅 성과를 높이고 싶다면, 지금 바로 마티니와 만나보세요.

CTA 이미지

실무자에게 적합한
데이터 분석 솔루션을 찾고 있다면?

앰플리튜드 도입을 검토하고 있다면,
지금 바로 마티니와 만나보세요.

콜아웃 박스 - 회색 링크 Hover
원문 출처 | ©Amplitude
이미지 출처 | ©Amplitude
본 게시물은 Amplitude에서 작성한 글을 참고하여, Amplitude의 공식 파트너인 마티니가 한국어로 편집 및 재구성하였습니다.
recomm_thumbnail
CRM

Braze Release Note 25.11

December 9, 2025

2025년 11월 주요 업데이트 요약

2025년 11월 주요 업데이트 요약

  • 브레이즈에서 간편하게 RFM 세그멘테이션을 할 수 있습니다.
  • Custom Attribute 값들의 비중을 확인할 수 있습니다.

RFM SQL Segment Extension

이제 브레이즈에서 RFM 세그멘테이션을 활용할 수 있게 되었습니다.

RFM 세그멘테이션은 최근성(Recency), 빈도(Frequency), 금액(Monetary)를 기준으로 각 지표를 스코어링하고, 점수별 유저 그룹의 특성을 정의하는 세그멘테이션 방식입니다.

브레이즈의 SQL Segment Extension에서 사전 정의된 템플릿을 활용해 간편하게 사용할 수 있습니다.

RFM 세그먼트에 대한 상세한 내용은 마티니의 RFM 분석 사례 아티클에서도 확인해보실 수 있습니다.

🔎 브레이즈의 RFM 세그멘테이션에서 정의한 기준은 아래와 같습니다.

*쿼리문에서 일부 데이터를 조정하여 기준을 변경하는 것도 가능합니다.

Custom attributes — Values

Custom Attribute별로 각 데이터가 차지하는 비중을 확인할 수 있는 기능이 생겼습니다.

예를 들어, ‘멤버십’ 정보를 저장한 Custom Attribute에 각 멤버십 등급별 비중을 확인하거나, 유저가 ‘구매한 카테고리 리스트’에 가장 많이 담긴 카테고리 비중을 확인하는 등의 인사이트 확인이 가능합니다.

다만, 25만 명 이상으로 유저수가 큰 경우, 샘플링된 데이터로 제공되어 실제와 오차가 발생할 수 있는 점 참고가 필요합니다.

Data Settings > Custom Attribute 메뉴로 진입하여 보고 싶은 데이터의 우측 메뉴에서 View Usage 버튼을 눌러 확인할 수 있습니다.

recomm_thumbnail
CRM

Braze Release Note 25.10

November 3, 2025

2025년 9월 주요 업데이트 요약

2025년 10월 주요 업데이트 요약

  • BrazeAI Decisioning Studio™의 활용 가이드가 배포되었습니다.
  • Currents로 RCS, Line 이벤트를 전송할 수 있습니다.
  • Surppression List를 활용해 특정 집단에게 메시지 발송을 차단할 수 있습니다.
  • CDI를 활용한 Zero-copy 개인화가 가능해졌습니다.

BrazeAI Decisioning Studio™

지난 BrazeAI 신규 기능 소개에서 BrazeAI Decisioning Studio™를 소개드렸었습니다. BrazeAI Decisioning Studio™는 유저 행동 데이터를 바탕으로 적합한 메시지, 발송시간, 개인화 등 CRM 메시지에 필요한 모든 요소를 스스로 의사결정하는 신규 기능입니다.

AI가 직접 의사결정을 내림에 따라 A/B 테스팅, 개인화 구현, 목표 최적화 등에 들이는 시간을 최소화하고, 더 높은 성과까지 기대할 수 있습니다.

이번 릴리즈 노트에는 BrazeAI Decisioning Studio™를 사용하기 위한 가이드 문서가 업데이트되었습니다. 가이드 문서에는 연동, 에이전트 활용, 리포트 확인 관련 내용이 추가되었으며, 링크에서 확인하실 수 있습니다.

앞으로 AI를 활용한 CRM 마케팅이 마케터의 업무와 필요 역량에 큰 변화를 가져올 것으로 예상되니, 미리 파악해두시면 좋을 것 같습니다.

신규 채널 활용 준비: RCS, Line

올해 브레이즈는 WhatsApp을 비롯하여 RCS, Line등 신규 채널 추가에 힘쓰고 있습니다. 이번 업데이트에서는 새롭게 추가된 RCS, Line에 대한 클릭, 발송 등 메시지 상호작용 관련 데이터도 Currents로 데이터를 전송할 수 있도록 추가되었습니다.

💡 Currents란?

브레이즈에서 수집되는 메시지 상호작용 관련 이벤트를 비롯하여 다양한 이벤트들을 외부 데이터 소스로 전송할 수 있는 기능입니다.

주로 앰플리튜드(Amplitude)와 같은 PA(Product Analysis) 솔루션으로 전송하여 메시지 활동과 유저 행동을 함께 분석하거나, 스노우플레이크(Snowflake)와 같은 DW(Datawarehouse)와의 연동을 통해 다양한 방식으로 2차 활용을 진행할 수 있습니다.

특히, 한국에서는 문자 대비 비용 효율이 좋고, 보다 양방향 소통이 가능한 채널인 RCS 활용량이 증가할 것으로 기대되는데요. 브레이즈에서 RCS가 신규 기능으로 출시되고 그에 대한 데이터 연결까지 수월해져, 브레이즈를 통한 RCS 메시지가 더욱 중요해질 것 같습니다.

🔎 RCS와 관련된 상세한 정보는 아래 글에서 확인해보실 수 있습니다.
🔗 떨어지는 CRM 성과, 어떻게 개선할까?: RCS 알아보기

메시지 피로도 관리 도구: Suppression List

CRM 마케터라면 모든 캠페인에 매 번 필터링으로 특정 유저들을 타겟에서 제외하거나, Frequency에 대한 고민을 가진 경험이 있으실텐데요. 이제는 Suppression List를 활용하여 편리하게 이 고민을 해결할 수 있습니다.

Suppression List는 특정한 세그먼트를 설정하여, 해당 세그먼트는 아무런 메시지도 받지 않도록 하는 기능입니다. 기존의 베타버전에서 General Access 버전으로 정식 출시되었습니다.

Suppresion List에 특정 유저들을 의도적으로 메시지 수신 대상에서 제외하거나, 메시지의 노이지함을 막기 위해 N일 내 메시지 열어본 사람을 대상에서 제외하는 등 다양한 조건을 적용할 수 있습니다.

*Suppression List는 원하는 집단의 조건을 설정할 수 있다는 점에서 무작위로 메시지를 받지 않을 N%의 유저를 설정하는 Global Control Group과 차이점이 있습니다.
Suppression List 활용 예시

💡 Suppression List 활용 예시

  • 메시지 피로도 관리: 10일 내 이메일 열어본 사람 제외, 기존 메시지에 상호작용을 한/안한 사람
  • 특정 집단 대상 제외: N세 미만 유저
  • 목표 액션을 이미 수행한 유저 제외: 3일 내 구매 이벤트를 수행한 이력이 있는 유저

데이터 수집 없이 즉각적인 개인화 반영

제로카피 개인화(Zero-copy Personalization)는 별도로 브레이즈 내에 데이터 수집 과정을 거치지 않고 즉시 개인화에 데이터를 사용하는 방법입니다. 데이터 수집 과정이 없기 때문에 개발의 편리함도 챙길 수 있고, 동시에 Datapoint나 보안 문제 등으로부터 상대적으로 자유로워질 수 있습니다.

이제 브레이즈 캔버스(Canvas)에서 CDI(Cloud Data Ingestion)를 이용하여 DW에 수집된 데이터를 브레이즈로 보내어 데이터 저장 없이 개인화에 사용할 수 있습니다.

아직은 얼리 액세스 단계로, 사용을 위해서는 리셀러를 통해 오픈 요청을 해야하는 단계이며, 상세한 사용 방법은 링크를 통해 확인하실 수 있습니다.

Recent

CRM

패스트푸드 F&B 브랜드 CRM 트렌드 분석 1

October 24, 2024

요즘 물가가 오르면서 패스트푸드를 간편한 한 끼로 즐기는 분들 많으시죠? 그런데 각 브랜드들이 전하려는 메시지가 비슷하면서도 조금씩 다른 느낌을 받으신 적 있으신가요? 이번 시리즈에서는 F&B 브랜드들의 CRM 메시지를 목적별로 비교하고 분석해 드리려고 합니다. 각 브랜드가 어떤 기능을 중심으로 메시지를 전달하는지 함께 살펴보면 더욱 흥미로울 거예요.

[시리즈 목차]

  1. 모바일 앱과 오프라인 매장 연계
  2. 멤버십 분류 체계 비교 및 혜택 안내
  3. 쿠폰 전략
  4. 구매 유도
  5. 옴니채널 마케팅

이번 아티클에서는 모바일 앱과 오프라인 매장 연계에 대한 이야기를 나눠보겠습니다.

모바일 앱과 오프라인 매장 연계

기존의 프랜차이즈 패스트푸드 브랜드들은 매장 데이터와 온라인 데이터의 통합 관리가 어려웠습니다. 매장별 특성과 문제점을 모두 반영하고, POS 데이터를 온라인과 연계하기 어려웠죠. 그러나 최근에는 지속적인 관리와 개선을 통해 많은 F&B 브랜드들이 매장 데이터를 효과적으로 연계하고 있습니다. 

이들은 또한 모바일 앱과 오프라인 매장 데이터를 연계하여 마케팅에 활용해 왔는데요, CRM 마케팅에 있어 활용되는 IT 기술의 대표적인 사례로 모바일 앱 주문 기능과 위치 정보 수집 기능을 들 수 있습니다.

이러한 기능들을 통해 어떻게 고객과의 관계를 강화하고 있는지, 지금부터 자세히 살펴보겠습니다.

모바일 앱 주문 기능 체험기

모바일 앱 주문 기능은 F&B 브랜드라면 거의 필수라고 할 정도로 모든 브랜드에서 도입하고 있는 기능입니다.

모바일 앱 주문을 통해 매장의 POS 주문 데이터를 온라인상의 멤버십이나 주문 내역 데이터와 매칭시켜 동일한 고객임을 구분할 수 있습니다.

유저를 매칭하여 동일인임을 확인했다면 이제 본격적으로 메시지에 이 데이터들을 활용할 차례입니다. 이제 각 F&B 프랜차이즈 브랜드(A/B/C/D)별로 모바일 앱 주문부터 실제 상품 수령까지의 과정을 비교해 볼게요.

브랜드 A
  • 주문 제품의 현황 및 픽업 정보 앱 내 표기

브랜드 A는 앱 딜리버리 서비스를 자체적으로 운영하지 않고 외부 서비스에 맡기고 있어요. 딜리버리 앱이 별도로 있긴 하지만 활성화되어 있진 않죠. 그래서인지 모바일 앱을 통한 주문 기능에 집중하고 있는 것 같아요. 

  • 매장 내 픽업 공간
브랜드 B
  • 주문 제품의 현황 및 픽업 정보 앱 내 표기

브랜드 B는 주문 현황을 앱 내에 표시하고, 고객이 선택한 픽업 방법에 따라 다른 안내를 제공합니다. 이 표기를 통해 고객에게 이후 과정을 자연스럽게 안내합니다.

  • 주문 제품 수령 안내에 대한 알림톡 발송

또한 픽업 번호와 주문 번호를 별도의 알림톡으로 발송해 줍니다. 실제로 픽업 번호 안내가 명확해서 매장에서 주문을 찾는 데 어려움이 없었어요. 모든 주문에 대해 유료 채널로 메시지를 발송하면 비용이 부담될 수 있지만, 고객 입장에서는 가장 친절한 방법인 것 같아요.

브랜드 C

  • 구매 현황에 대해서 앱 내에서 표기

브랜드 C도 모바일 오더와 딜리버리 내역을 앱에서 동시에 제공하고 있어요. 픽업 번호 안내와 주문진행 현황을 실시간으로 확인할 수 있는데요, 조리 중, 조리 완료, 수령 완료 단계로 나뉘어 있어서 매장 데이터와 앱이 잘 연계되어 있음을 보여줍니다.

브랜드 D
  • 구매 현황에 대해서 앱 내 표기

브랜드 D 역시 주문진행 현황을 앱 내에서 표시해 줍니다. 자체 딜리버리 서비스를 제공하고 있는데, 배달 예정 시간을 예측하여 안내하는 부분이 인상적이었어요. 다른 배달 앱과 비슷한 예측 로직을 사용하는 것으로 보이는데, 실제로 제품을 받아보는 시간도 예측 시간 범위 내에 들어왔습니다.

  • 주문 제품 수령 안내에 대한 앱푸시 알림

또한 배달이 완료되었을 때 앱 푸시로 알림을 보내주는데요, 배달을 기다리는 고객 입장에서는 메뉴가 언제 도착하는지 실시간으로 알고 싶기 때문에 이런 안내는 매우 유용하다고 생각됩니다. 딜리버리 시스템과 매장 내 POS/조리 상태 데이터, 모바일 앱 주문 데이터가 모두 연동되어 있다는 점을 알 수 있어요.

위치 정보 기반 메시지

다음으로는 기기 위치 정보에 기반한 메시지를 살펴볼게요. 네 개의 F&B 브랜드 모두 위치 정보를 수집하고 있는데, 그중 흥미로운 기능과 메시지를 분석해 보았습니다.

브랜드 A 
  • 매장 내 테이블에서 받기 서비스 

브랜드 A는 모바일 오더 주문 시 수령 장소 옵션이 다양한 것이 특징이에요. 드라이브 스루 옵션이나 테이블에서 받기 옵션 등이 있는데, 특히 테이블에서 받기 옵션은 고객이 입력한 매장 위치와 테이블 번호를 기반으로 서비스를 제공하기 때문에 오프라인 매장 데이터와 모바일 앱이 잘 연동된 사례라고 볼 수 있어요.

브랜드 B
  • 오프라인 매장 방문 유도

브랜드 B는 수집한 위치 정보를 이용해 매장 근처에 인접했을 때 매장 방문을 유도하는 앱 푸시를 발송하고 있습니다.

메시지를 살펴보면, 매장의 위치를 상세하게 알려주어 고객이 한 번 더 매장을 눈여겨보고 방문하도록 하는 좋은 사례인 것 같아요.

브랜드 C
  • 특정 매장 판매 상품 구매 유도

브랜드 C는 브랜드 B와 비슷해 보이지만 조금 다른 점을 강조하고 있어요. 브랜드 C는 매장의 위치나 존재를 알리는 것보다 해당 매장에서 판매하는 특정 상품을 소개하는 데 초점을 맞추고 있습니다.

메시지를 보면, 매장 구매 이력이 있는 유저에게 판매하는 특정 상품에 대한 정보를 전달하여 구매를 유도하려는 목적이 강하게 나타나요.

브랜드 D

  • 위치 기반 원활 매장 표기

마지막으로 브랜드 D입니다.

브랜드 D는 위치 정보를 활용한 CRM 메시지를 발송하지는 않지만, 앱 내에서 각 매장의 혼잡도와 운영 정보를 제공하고 있어요.

점심과 아침 시간대에 확인해 보니, 고객들이 많이 붐비는지, 시간대에 따라 딜리버리 가능 여부를 매장에서 실시간으로 수정할 수 있게 구현되어 있었습니다. 이는 고객 입장에서 대기 시간을 줄이고 더 나은 서비스를 받을 수 있도록 도와주는 좋은 기능이라고 생각됩니다.

맺음말.

이렇게 각 F&B 브랜드들이 강조하는 메시지와 기능들을 살펴보았는데요, 조금 더 이해가 되셨나요? CRM 마케팅은 다양한 경로에서 수집한 데이터를 활용할 수 있다는 점이 가장 큰 장점이자 매력인 것 같아요.

이러한 데이터를 바탕으로 CRM 마케터들은 개인화된 정보를 담은 메시지를 고객들에게 전달할 수 있게 됩니다. 이런 초개인화 메시지는 결국 매출 성장으로 이어지죠. 기계적인 광고 노출에 비해 개인화 요소가 포함된 광고는 피로감이 적게 느껴지기 때문이에요.

본인에게 필요한 정보나 특정한 목적을 가진 광고라면 거부감 없이 받아들였던 경험, 다들 한 번쯤 있으시죠?

저희 마티니 CRM 팀에서는 다양한 기능과 상황에 맞는 메시지를 전달하기 위해 항상 노력하고 고민합니다. CRM 캠페인의 더 자세한 구현 사례가 궁금하시다면, 마티니 CRM 팀의 성공 사례를 확인해 보세요!

👉🏻 마티니 CRM 캠페인 성공 사례 바로 가기

👉🏻 더 많은 아티클 보러가기

👉🏻마티니에게 문의하기

PERFORMANCE

풀퍼널 퍼포먼스 마케팅에서 매체란 어떤 의미일까?

October 10, 2024

풀퍼널 퍼포먼스 마케팅에서 매체란 어떤 의미일까?

『Tested advertising methods』

“광고가 저지를 수 있는 최대의 죄악은 눈에 안 띄는 것이다.”

존 케이플즈는 미국에서 100년 전에 활동했던 카피라이터입니다. 카피라이터로 널리 알려져 있지만, 그는 오늘날 널리 쓰이는 광고 효율 테스트의 기틀을 다진 분석가이기도 했습니다. 1932년에 출간된 그의 책 『Tested advertising methods』에는 헤드라인 기반의 광고 효율 테스트 방법론과 20세기 초반의 실제 테스트 결과가 수록돼 있습니다.

그는 살아 있을 때 ‘광고가 눈에 띄는 것’을 강조했습니다. 그의 책과 카피라이터 커리어를 살펴보면 그는 단순히 “눈에 띄는 것”이 아니라 눈에 띄면서 ‘광고 효율이 좋은 것’을 중요하게 여겼습니다. 눈에 띄면서 광고 효율을 좋게 만드는 방법은 크게 세 가지가 있습니다. 첫 번째는 눈에 띄는 광고를 고객에게 보여주는 것이고, 두 번째는 마케터가 원하는 행동(KPI)을 할 가능성이 높은 고객에게 광고를 보여주는 것이며, 마지막으로 세 번째는 첫 번째와 두 번째 모두를 만족시키는 것입니다.

존 케이플즈는 광고의 성공을 결정짓는 요소로 매체, 카피, 위치, 계절을 꼽았습니다. 네 가지 요소 중에서 “매체”는 최근 기술이 발달함에 따라 급격하게 진화됐습니다. 한국광고총연합회의 광고정보센터에 따르면 매체는 “광고를 소비자에게 전달하는 도구”입니다. 이제는 우주의 은하 개수(약 1천 7백억 개) 보다도 많은 ‘광고 전달 도구(매체)’가 한 사람의 손바닥에 들어왔습니다. 실시간으로 광고의 성과를 측정하게 됐으며, 고객 행동 데이터를 분석해 ‘효율이 높을 것으로 추측되는 고객’을 특정해서 광고를 보여줄 수 있게 됐습니다. 매체가 진화됨에 따라 이제는 존 케이플즈의 시대보다 쉽게 눈에 띄면서 광고 효율을 좋게 만들 수 있는 환경이 갖춰줬습니다.

기술이 광고 시장의 변화를 이끌면서 매체를 나누는 기준도 새로 생겼습니다. 과거에 매체는 장소, 비용유무, 운영주체, 송출방식, 과금방식 등으로 분류됐습니다. 머신러닝에 기반한 개인화 광고 시대에 들어서면서 매체의 기술력에 따라 광고를 소비자에게 전달하는 방식이 달라졌고, 따라서 매체 자체가 지닌 기술스펙으로도 매체를 분류하게 됐습니다.

다양한 매체 분류 기준

그럼 무수히 많은 기준들 중에서 퍼포먼스 마케팅에 가장 타당한 매체 분류 기준은 무엇일까요? 사실 , SA/DA, UA/RT, CPC/CPM, SAN(orSRN)/표준광고네트워크 등 널리 알려진 매체 분류 기준들은 하나의 특징을 임의로 선정해 분류한 결과일 뿐입니다. ‘타당한 매체 분류 기준’은 브랜드의 KPI가 결정합니다. 브랜드와 매체에 대한 퍼포먼스 마케터의 이해도는 브랜드의 비즈니스 임팩트를 촉발시키는 KPI 설정에 큰 영향을 줍니다.

예를 들어, KPI가 매출이라면 매출과 상관관계가 높은 지표(ex. ROAS, CVR(Purchase), ARPU, ARPPU 등)에 영향을 미치는 정도에 따라 매체를 분류하게 됩니다. 반대로 KPI가 신규고객유치라면 CAC(Costomer Acquisition Cost)와 상관관계가 높은 지표(CPC, CTR, CVR(Regi), CVR(Install), IPM, Retention 등)에 따라 매체를 분류하게 됩니다. 어느 매체가 어느 지표에 얼만큼의 영향을 주는지 아는 퍼포먼스 마케터만이 타당한 매체 분류 기준을 제시할 수 있습니다.  결국, 퍼포먼스 마케터의 역량 자체가 매체를 분류하는 기준이라고도 말할 수 있습니다.

퍼포먼스 마케팅, PA, CRM 솔루션을 연계해 진정한 풀퍼널 마케팅 전략을 구현하는 Martinee는 한 걸음 더 나아가서 매체와 주요 마테크 솔루션 사이의 연계 용이성도 매체를 분류하는 기준으로 설정합니다. 예를 들어, Meta, Tiktok 등은 PA 솔루션인 Amplitude와 연계해 세그먼트를 세분화하고 타겟팅에 활용할 수 있습니다. 유입 채널/캠페인별로 유저를 세분화하고 각 유저의 후행지표를 분석하는 것도 가능합니다.

실제로 퍼포먼스 마케터 박한석 매니저가 웹툰 카테고리에서 Amplitude를 활용해 고객 여정을 분석하고 퍼포먼스 마케팅 타겟팅 전략에 활용했던 사례를 소개해드리겠습니다. 고객 여정 중 특정 이벤트가 구매까지의 전환율이 높다는 점을 확인하고 신규 타겟팅 세그먼트로 활용해 MAU 10% 상승 및 D1 ROAS를 30% 달성했던 경험입니다.

유명 웹툰 플랫폼 A는 신규 유저의 유입이 줄고 기존 유저의 이탈이 가속화되는 상황이었으며, 전체 매출도 감소하는 추이를 보이고 있었습니다. RT 담당자였던 저는 기존 유저의 이탈을 막고, 이미 이탈한 유저는 재유입을 시켜 MAU 및 매출을 증대시켜야 했습니다.

이벤트별 세그먼트 구매전환율 분석을 통한 교효율 타겟 모수 선율 분석세입벤

해당 문제를 해결하기 위해서는 가장 먼저 고가치 유저의 이탈을 막는 것이 급선무라고 판단했습니다. Amplitude에서는 인 앱 이벤트별로 구매까지의 전환율이 얼마나 되는지 확인할 수 있었습니다. 다양한 이벤트 중 특정 이벤트의 구매 전환율은 12.17%였습니다. 다른 이벤트의 구매 전환율 1~6%에 비하면 약 6%p 높은 수치였습니다. 해당 이벤트를 발생시킨 유저의 특성은 프로덕트의 핵심 유저의 특성과 유사할 가능성이 높다라는 가설을 세웠습니다. 가설에 따라 이벤트의 ADID를 추출해 Amplitude와 연동된 매체(ex. Meta)에서 타겟팅했으며, 그 결과 MAU는 10% 상승했고 D1 ROAS는 30% 개선됐습니다. 해당 세그먼트는 RT 캠페인 뿐만 아니라 UA 캠페인의 유사 타겟(ex. Meat LAL)으로도 활용됐습니다.

타겟팅 전략을 기반으로 UA에 집중하는 퍼포먼스 마케팅 전략은 점차 효용이 떨어지고 있습니다. 개인정보보호 이슈가 붉어지면서 정교한 타겟팅이 어려워졌기 때문입니다. 그 연장선 상에서 1st-Party 데이터를 활용한 Growth, CRM 마케팅의 중요성이 강화됐습니다. 퍼포먼스 마케팅의 불황은 곧 매체의 불황이기도 했습니다. 매체들은 앞다퉈 Growth, CRM 솔루션 연계 기능을 도입하기 시작했습니다. 이제 매체는 퍼포먼스 마케팅과 Growth, CRM 마케팅을 연결하는 다리로서 기능합니다. 결국, 오늘날 “퍼포먼스 마케팅에 가장 타당한 매체 분류 기준”은 퍼포먼스 마케터의 브랜드, 매체, 그리고  Growth&CRM 솔루션들에 대한 이해까지 확장됐습니다. 그리고 Martinee는 그런 역량을 내재화한 업계 유일의 풀퍼널 마케팅 대행사입니다.

100년 전, 존 케이플즈는 온갖 데이터가 수기로 처리되고 성과의 추적조차 불가능했던 시절에 광고 효율을 테스트하고 마케팅 전략을 수립한 데이터 드리븐 마케팅의 선구자였습니다. 그런 그가 오늘날 마테크의 발전을 본다면 얼마나 기쁠까요? 그 기쁨을 누리기 위해 존 케이플즈는 오늘과 내일이 다른 기술의 발전을 불철주야 공부했을 테죠. 그런 그에 대한 오마주 문장으로 이 글을 마치겠습니다.

“퍼포먼스 마케터가 저지를 수 있는 최대의 죄악은 매체의 변화에 둔감한 것이다.”

EVENT

[종료] Martinee Growth팀 채용설명회

October 7, 2024

마티니 Growth팀 채용설명회 메인배너
마티니 Growth팀 채용설명회 개요

행사명 : 마티니 Growth팀 채용설명회

장소: 서울 서초구 서초대로38길 12 마제스타시티 타워2 12F

일시: 2024년 10월 22일 화요일 오후 7시 ~ 9시

추천 참여 대상

마티니 Growth팀 채용설명회 추천 참여 대상
  • 그로스 마케팅 분야에 관심 있거나 추천하고 싶은 분이 있으신 분
  • 마케팅 현직자들과 편하게 네트워킹하고 싶으신 분
  • 그로스 매니저로 이직 의사가 있으신 분
  • 업계 전문가들과 함께 커리어를 성장시키고 싶으신 분

설명회 신청 CTA 버튼

마티니 Growth팀 채용설명회

마티니 Growth팀 채용설명회 상세페이지

2024년 10월 22일 목요일 오후 7시 Marketing Intelligence People, 마티니와 마티니 Growth팀을 여러분들께 소개합니다.

Growth팀에서는 그로스 매니저를 채용 중에 있으며, 진행했던 고객사 및 프로젝트 사례들을 기반으로 업무방식과 직무 및 채용 관련 설명을 드릴 예정입니다.

추천인 보상금도 지급하고 있으니 네트워킹하러 편히 들러주세요!

Agenda

마티니 Growth팀 채용설명회 아젠다

19:00 - 19:20 Martinee Marketing Intelligence 2024 | 이선규 Martinee CEO

19:20 - 19:40 About Martinee Growth Team | 이재철 Martinee Growth Lead

19:40 - 19:50 사전 QnA (현장질문포함)

19:50 - 21:00 Networking

안내사항

*주차권 제공 가능하며 리셉션 데스크 문의바랍니다.

*네트워킹 시간에 참석자분들께 간단한 음식이 제공됩니다.

*문의사항은 mkt@martinee.io 로 문의바랍니다.

설명회 신청 CTA 버튼
EVENT

[Review] 데이터 기반 고객 여정 설계를 위한 CRM과 PA 연계 전략 세미나

September 30, 2024

마티니와 CRM과 PA 연계하기

행사명 : 데이터 기반 고객 여정 설계를 위한 CRM과 PA 연계 전략 세미나

장소: 서울 서초구 서초대로38길 12 마제스타시티 타워2 12F

일시: 2024년 9월 25일 수요일 오후 4시

비즈니스를 성장시키기 위해 제품/서비스 분석이 중요해진 만큼 마테크 솔루션 도입을 고민하는 상황이 많아졌는데요.

각 솔루션 기능을 효과적으로 잘 활용하는 과정에 대한 어려움을 해소하고자 이번 세미나에서는 PA 솔루션 AmplitudeCRM 솔루션 OneSignal을 어떻게 활용하면 좋을지와 두 솔루션의 연계 활용에 대해 설명해드렸습니다.

사례로 배우는 앰플리튜드 활용

마티니의 Amplitude 활용 사례는 MGS 2024에서 버거킹 사례로 설명드렸었는데요. 이번엔 웍스아웃오늘의 집 사례로 Amplitude를 효과적으로 활용하는 노하우를 공유해드렸습니다.

웍스아웃 케이스에서 가장 주의 깊게 살펴볼 점은 라플 이벤트 응모유저와 일반유저의 차이를 분석하는 점입니다.

Amplitude 유저 세그먼트와 클러스터링 맵을 통해 차이점을 명확하게 분석하여 그룹을 나누고 그룹 별로 개인화된 메시지와 랜딩 페이지를 적용하여 구매 전환을 높일 수 있습니다.

오늘의 집 케이스는 카테고리별 연관성을 기반으로 교차 구매 분석을 진행했는데요. 사용자의 로그 데이터 분석을 통해 장바구니 상품 간 연관성을 파악하고 연관성 높은 상품을 추천하는 방법으로 크로스 셀링과 CRM 재구매 주기를 단축시킬 수 있습니다.

사례로 배우는 원시그널 활용

CRM 솔루션 중 하나인 원시그널을 성공적으로, 잘 활용한 기업은 어디일까요? 원시그널을 활용하여 두 달만에 유저 인게이지먼트 16% 증가를 이뤄낸 아이웨어 판매 기업 Zenni 입니다.

Zenni는 세그멘테이션 없이 전체 유저 대상 메시지만 전달하다가 원시그널로 상세한 세그먼트를 트리거로 설정하여 블랙 프라이데이 프로모션 개인화 메시지를 자동화하는 세밀한 CRM 캠페인을 진행할 수 있었습니다.

웹 기반 사용자 데이터를 통해 앱 참여 비중이 높은 점을 확인하여 멀티 채널을 활용한 터치포인트를 통해 유저들에게 연결된 메시징 경험을 제공할 수 있었습니다.

CRM과 PA의 연계 전략 세우기

CRM과 PA의 연계는 크게 2가지로 나눌 수 있습니다.

  • PA to CRM
  • CRM to PA

PA to CRM에는 재구매주기를 분석 활용, 코호트 싱크를 통한 분석 대상 활용, IAM을 트리거할 시점 찾기 등으로 연계 활용이 가능한데요. 구매시점 이후 크로스 세일을 유도하거나 최근 활동 유저에 따른 프로모션, 이탈방지 캠페인 등으로 연계 활용이 가능합니다. 유저 데이터로 코호트를 생성하여 그룹별로 나누고 최적의 IAM 트리거 시점을 찾아 노출시킬 수 있습니다.

CRM to PA는 CRM 솔루션을 통해 진행한 캠페인 및 실험의 성과를 디테일하게 분석하는 연계 활용법입니다. CRM 메시지 수신 전후 임팩트를 분석하거나 수신자와 미수신자의 리텐션, 전환율을 비교하는 방법을 설명해드렸습니다.

Side-by-Side Images
QnA중인 마티니 이선규 대표와 이건희 CRM팀 리더 QnA중인 마티니 이재철 그로스팀 리더

정확한 분석을 기반으로 섬세한 CRM을 해야 하는 만큼 CRM과 PA 연계가 어려우시다면 마티니가 함께 하겠습니다.

FULL FUNNEL

차트 강조? 조건부 서식 활용하기

September 27, 2024

Looker studio-조건부서식
Looker studio-조건부서식

엑셀과 스프레드시트를 어느정도 다루시던 분들은 조건부 서식에 어느정도 익숙하실 겁니다.

조건부 서식은 데이터를 보다 효과적으로 표현하고 분석하는 강력한 기능입니다. 이는 특정 조건에 따라 셀의 모양(글자 색상, 셀 색상)을 자동으로 변경하여 중요한 정보를 시각적으로 돋보이게 만드는 기능입니다.

구글스프레드시트 - 조건부서식
구글스프레드시트 - 조건부서식

위의 이미지 예시를 보면 더 쉽게 이해할 수 있습니다. 왼쪽은 아무런 설정을 하지 않은 차트라면 오른쪽은 숫자의 백분위수를 기준으로 색상을 표현하였습니다. 오른쪽의 표가 일자별 노출수의 차이를 훨씬 쉽게 이해할 수 있습니다.

조건부 서식의 가장 큰 특징은 데이터에 기반한 동적인 시각화입니다. 사용자가 정의한 규칙에 따라 데이터가 변경될 때마다 서식도 자동으로 업데이트됩니다. 이는 단순히 정적인 색상이나 서식을 적용하는 것과는 다르게, 항상 최신 데이터를 반영한 시각적 표현을 제공합니다.

루커스튜디오와 같이 실시간으로 변하는 데이터 시각화 솔루션에서는 필수적으로 활용하면 좋을 기능입니다.

조건부 서식 특징

  1. 데이터에 기반한 시각적 강조
  2. 사용자 정의 규칙 적용 가능
  3. 동적으로 업데이트되는 서식
  4. 다양한 서식 옵션 (색상, 아이콘, 데이터 막대 등)

조건부 서식 장점

  1. 데이터 가독성 향상
  2. 중요 정보의 빠른 식별
  3. 데이터 트렌드 및 패턴 파악 용이
  4. 보고서 및 대시보드의 시각적 매력 증대

활용 방법

  1. 임계값 기반 하이라이팅
  2. 범주형 데이터 구분
  3. KPI 달성도 표시

루커스튜디오의 조건부 서식

루커스튜디오에도 이러한 조건부 서식이 있으며 다른 엑셀과 Tableau와 같은 BI와 유사한 기능을 사용할 수 있습니다.

기본적으로 'Tablea' 차트와 'Score' 차트에서 활용가능합니다.

규칙 만들기

Looker studio - 조건부서식 - 규칙만들기
Looker studio - 조건부서식 - 규칙만들기
  1. 색상 유형

단색과 색상스케일에 따라 구분할 수 있습니다. KPI 달성이나 임계값 달성에 대한 강조를 원한다면 단색 유형이 유용합니다. 반면에 데이터의 양이 많고 데이터간 상대적 차이가 중요하다면 색상 스케일이 유용합니다.

  1. 서식 규칙
  • Number 기준 대소 구분, Boolean 기준 참 거짓 구분, Text 기준 포함 구분 이외 정규식 등 다양한 조건을 선택할 수 있습니다.
Looker studio - 조건부서식 - 서식규칙
Looker studio - 조건부서식 - 서식규칙

규칙별로 하나의 조건만 가능하며 조건 형식은 셀 또는 전체 행에 적용할 수 있습니다.

  1. 색상 및 스타일
  • 단색 : 조건에 맞는 경우 글자색과 셀 색상을 모두 따로 설정 가능합니다.
  • 색상 스케일 : 최대 5개의 지점을 선택하여 정수/백분율에 따라 색상 스케일을 선택할 수 있습니다.
Looker studio - 조건부서식 - 색상 및 스타일
Looker studio - 조건부서식 - 색상 및 스타일

활용 예시

Looker studio - 조건부서식 - 활용 예시 : KPI 대시보드
Looker studio - 조건부서식 - 활용 예시 : KPI 대시보드

  • 여러 Text에 따른 조건 서식을 활용한 고객 세그먼테이션 : RFM 대시보드
Looker studio - 조건부서식 - 활용 예시 : RFM 대시보드
Looker studio - 조건부서식 - 활용 예시 : RFM 대시보드

  • 데이터 차이에 대한 값을 직관적으로 확인가능한 Raw Data : CRM 대시보드
Looker studio - 조건부서식 - 활용 예시 : CRM 대시보드
Looker studio - 조건부서식 - 활용 예시 : CRM 대시보드

FULL FUNNEL

데이터 혼합 대시보드 | 루커스튜디오

September 24, 2024

루커스튜디오 데이터 혼합 | Looker Studio 표지
루커스튜디오 데이터 혼합 | Looker Studio

대부분의 비즈니스 문제는 두 가지 이상의 데이터 소스들을 결합하여 바라봐야 의미 있는 인사이트를 도출 할 수 있습니다. 광고데이터와 성과데이터, 매출데이터와 쿠폰데이터, 사용자데이터와 행동데이터 등과 같은 여러 데이터 조합들이 존재합니다.

루커 스튜디오의 기능 중 하나인 데이터 혼합은 두 가지 이상의 데이터간 결합을 제공하는 기능으로 데이터 시각화 및 분석을 더욱 풍부하게 만들어줍니다.

이러한 데이터 혼합 방식은 루커 스튜디오만의 방식은 아닙니다. 이미 데이터를 처리하는 데이터베이스 분야에서는 널리 사용 되고 있습니다.

루커스튜디오의 데이터 혼합 종류
루커스튜디오의 데이터 혼합 종류

이번 시간에는 루커 스튜디오 데이터 혼합 기능에 대해 배워보고 루커 스튜디오의 대시보드를 더 깊이 있게 만들어봅시다.

루커 스튜디오 데이터 혼합 대시보드

데이터 혼합 방식을 처음 접한 분들은 개념이 생소할 수 있습니다. 뿐만 아니라 이미 SQL 등을 공부하면서 혼합 방식을 알고 계셨던 분들도 혼합은 헷갈리는 개념입니다. 먼저 루커 대시보드를 가지고 혼합에 대한 개념을 가볍게 살펴보도록 하겠습니다.

루커 스튜디오가 제공하는 5가지 조인방식을 동일한 데이터를 가지고 혼합하였을 경우 혼합된 최종 결과 데이터가 어떻게 구성되는지 시각적으로 본다면 이해가 좀 더 편할 것입니다. 아래의 이미지에 각 혼합 방식에 따른 결과 테이블을 살펴보실 수 있습니다.

데이터 혼합 방식 대시보드
데이터 혼합 방식 대시보드

데이터 혼합 방식 종류

  • 레프트 아우터(Left Outer Join)
  • 라이트 아우터(Right Outer Join)
  • 풀 아우터(Full Outer Join)
  • 이너 조인(Inner Join)
  • 교차 조인(Cross Join)
Text in Box
💡혼합방식 대시보드가 궁금하신 분들은 아래에 댓글을 남겨주세요! 대시보드 링크를 보내드려요🙌

1. 루커 스튜디오 데이터 혼합

먼저, 루커 스튜디오 데이터 혼합에 대한 기본적인 내용을 알아보겠습니다. 데이터 혼합은 최대 5개의 데이터 소스를 조합하여 차트를 생성하는 기능을 제공합니다. 이를 통해 서로 다른 데이터 소스 간 측정항목과 측정기준을 조합한 새로운 차트를 만들 수 있습니다. 데이터 혼합을 통해 다양한 데이터 소스의 구성을 효과적으로 활용할 수 있습니다.

여러 데이터 소스를 기반으로 차트를 만들 수 있습니다.

  • 최대 5개의 데이터 소스 결합
  • 최대 10개의 조인 키를 사용하여 결합

데이터 혼합을 추가하는 3가지 방법

1) 기본 : 리소스 → 혼합 소스 관리 클릭 후 데이터 혼합

데이터 혼합 추가하는 기본 방법
데이터 혼합 추가하는 기본 방법

2) 설정탭 이용 : 설정탭 내 데이터 소스 → 데이터 혼합 클릭

데이터 혼합 추가하는 응용 방법 1
데이터 혼합 추가하는 응용 방법

3) 차트 이용 : 두 개 이상의 차트를 선택하고 데이터 혼합 생성

데이터 혼합 추가하는 응용 방법2
데이터 혼합 추가하는 응용 방법2

Styled Text in Box
🔥응용 꿀팁
  • 혼합된 데이터는 계산된 필드 기능을 제공하지 않지만 혼합화면 내에서 테이블 내 계산된 필드를 생성하여 추가적인 측정기준 또는 측정항목을 만들 수 있습니다.
  • 데이터 혼합을 사용하면 기존 측정항목이 자동 집계되지 않습니다. 새 집계 방식을 사용하여 측정기준과 측정항목을 사용할 수 있습니다.

2. 데이터 혼합 기본 구성

혼합 데이터는 루커 스튜디오의 데이터 혼합 부분에서 새롭게 만들거나 업데이트를 합니다. 해당 화면과 데이터 혼합에 대한 기본적인 구성을 살펴봅시다.

Styled Text

- 조인구성 : 조인구성은 조인 연산자와 조인조건(조인 키)을 설정할 수 있습니다.

Styled Text

- 테이블 : 혼합에 사용할 소스 데이터의 구성을 의미합니다. 측정기준, 측정항목, 기간, 필터로 이루어져있습니다.

Styled Text

- 혼합 데이터 이름 : 혼합데이터를 생성하면 기본으로 혼합데이터라는 이름으로 생성되어 여러개의 혼합데이터간 구분이 어렵습니다. 혼합데이터 생성 시 이름을 설정하며 이러한 문제를 해결할 수 있습니다.

Styled Text

- 혼합 데이터 요약 : 실제로 혼합된 데이터에 포함되어 사용할 수 있는 측정기준과 측정항목 리스트를 확인할 수 있습니다.

데이터 혼합 기본 화면 구성
데이터 혼합 기본 화면 구성
데이터 혼합 조인 화면 구성
데이터 혼합 조인 화면 구성

Styled Text in Box
🔥응용 꿀팁
  • 두 가지 데이터 소스에 동일한 필드 이름을 가진 경우 이를 구분하기 위해 필드 이름 접미사로 테이블 이름이 사용됩니다.
  • 데이터 소스 접미사
  • 혼합데이터 이름과 더불어 테이블 이름도 지정하면 추후 혼합데이터 수정 시 훨씬 편리합니다.

3. 혼합 유형 (조인 유형)

1) 레프트 아우터 / 왼쪽 조인 (Left Outer join)

루커스튜디오 레프트 아우터 조인
루커스튜디오 레프트 아우터 조인

왼쪽 조인 유형은 가장 기본적인 조인 유형입니다. 왼쪽 테이블을 기준으로 모든 행을 반환하고 오른쪽 테이블은 왼쪽 테이블 조인 키값과 일치하는 행만 반환합니다.

오른쪽 테이블에 존재하지 않거나 누락된 값은 최종 혼합 데이터에서 빈칸 혹은 null 값으로 표현됩니다.

Styled Text with Backgrounds

아래의 예시에 왼쪽 유저 테이블사용자 이름김아우인 경우, 매출 테이블에는 조인 키에 해당하는 사용자 ID = 3번이 없기 때문에 최종 유저 이름별 매출 테이블에서는 사용자 이름은 등장하지만 해당 유저의 매출이 빈칸으로 반환되는 것을 알 수 있습니다.

루커스튜디오 레프트 아우터 조인 데이터 필터 예시
루커스튜디오 레프트 아우터 조인 데이터 필터 예시

Styled Text in Box
💡사용 예시
  • 광고 데이터GA 성과 데이터는 광고 캠페인과 UTM이라는 키값을 기준으로 광고에서는 노출, 클릭, 비용이 집계되고 성과에서 매출이 집계 됩니다. 이때 광고 데이터를 기준으로 레프트 조인을 합니다.

2) 라이트 아우터 / 오른쪽 조인 (Right Outer join)

루커스튜디오 라이트 아우터 조인
루커스튜디오 라이트 아우터 조인

라이트 아우터 조인 유형은 왼쪽 조인과 반대로 오른쪽 테이블을 기준으로 왼쪽 테이블을 모두 반환합니다. 테이블이 반대일 뿐 왼쪽 조인과 동일한 원리 입니다.

활용

2개의 보완적인 데이터 소스로 하나의 데이터 소스를 만드는 경우에 활용 가능합니다. 예를 들어 아래와 같이 매출 데이터 소스를 확장하기 위해 한쪽에는 유저 소스를 레프트 조인으로(키값은 유저 ID), 다른 한쪽에는 제품 정보 소스(키값은 판매 상품)를 넣어서 매출 데이터 분석을 더욱 풍부하게 만들 수 있습니다.

3가지 데이터 소스 결합의 예시
3가지 데이터 소스 결합의 예시
루커스튜디오 라이트 아우터 조인 데이터 필터 예시
루커스튜디오 라이트 아우터 조인 데이터 필터 예시

3) 이너 / 내부 조인 (Inner join)

루커스튜디오 이너 조인
루커스튜디오 이너 조인

내부 조인은 두 테이블 조인 조건 모두에서 일치하는 행만 반환합니다. 각 데이터 세트의 다른 모든 행은 제거됩니다.

두 데이터 소스 간 중복에 관련한 분석을 하는 경우 많이 사용합니다. 또한 동적 데이터로 데이터 세트를 필터링하는 쉬운 방법입니다.

활용
  1. 코호트 집단 간 교차 인원 분석
  2. GA4의 웹 앱 디바이스 교차 사용 분석
루커스튜디오 이너 조인 데이터 필터 예시
루커스튜디오 이너 조인 데이터 필터 예시

4) 풀 아우터 / 외부 조인 (Full Outer join)

루커스튜디오 풀 아우터 조인
루커스튜디오 풀 아우터 조인

외부 조인은 조인 조건이 충족되지 않더라도 두 테이블의 모든 행을 반환합니다.

조인 조건을 충족하는 행은 해당하는 값을 반환하지만 조인 조건에 해당하지 않는 필드 값은 null이 반환됩니다.

활용

데이터베이스(1st party data)와 GA4(3rd party data)를 연결하며 데이터베이스에서 삭제된 데이터가 GA4에서 확인 가능하며 GA4에서 추적되지 않은 값이 데이터베이스에서 확인 가능합니다. 이처럼 양쪽의 환경을 모두 고려해야 하면서 서로의 데이터가 모두 필요한 경우 사용합니다.

루커스튜디오 풀 아우터 조인 데이터 필터 예시
루커스튜디오 풀 아우터 조인 데이터 필터 예시

5) 교차조인 (Cross join)

루커스튜디오 교차 조인
루커스튜디오 교차 조인

교차 조인은 모든 테이블 행의 데카르트 곱(두 소스의 모든 구성요소의 순서 쌍)을 반환합니다.

즉, 왼쪽 데이터 세트의 모든 행은 반복을 통해 오른쪽 데이터 세트의 모든 행과 곱해져서 데이터를 반환합니다.

이는 조인 키가 필요하지 않은 유일한 조인 유형입니다.

활용

데이터의 각 행 별 조인이 필요한 경우에 사용합니다.

루커스튜디오 교차 조인 데이터 필터 예시
루커스튜디오 교차 조인 데이터 필터 예시

마무리

데이터 혼합의 조인 조건을 잘 활용한다면 분석을 더욱 풍부하게 만들어주는 게임 체인저가 될 수 있습니다.

이러한 기능을 활용하기 위해서는 처음에는 까다로울 수 있지만 연습해서 여러분들 것으로 만든다면 멋진 대시보드를 만드시는데 도움이 되실 겁니다.

GROWTH

데이터마케팅 정의와 사례 (ft. 패션 커머스)

September 20, 2024

데이터마케팅이란?

데이터마케팅이란 [데이터]를 활용하여 마케팅한다는 뜻으로 데이터드리븐마케팅(Data-driven Marketing)으로도 불릴 수 있습니다.

데이터마케팅과 데이터드리븐마케팅의 차이는 미미하나, 데이터마케팅은 데이터를 [활용] 하나 데이터 드리븐 마케팅은 데이터를 [기반]으로 하기에 후자에서 데이터의 중요성이 좀 더 강조된다고 볼 수 있습니다.

데이터마케팅의 프로세스

데이터마케팅을 위해서 필수 조건은 (당연하게도) 데이터 분석입니다. 결괏값을 측정하여 데이터를 잘 쌓아두고, 보유한 데이터를 가공하여 상황을 해석하고 문제나 개선점에 대한 인사이트를 도출하는 것이 기본적인 데이터 마케팅의 프로세스라고 할 수 있습니다.

그로스 조직(=그로스팀)은 기본적으로 데이터 드리븐 마케팅을 하기에, 프로세스가 같습니다.

데이터를 기반으로 가설을 세우고, 실험을 바탕으로 검증하고, 배움을 축적하는 과정을 빠르게 반복합니다. (*출처: 양승화 님의 그로스해킹)

양승화 님의 [그로스해킹] 책을 기반한 이미지 | 그로스 조직이 일하는 방식
양승화 님의 [그로스해킹] 책을 기반한 이미지

데이터 분석 사례

마티니에서 진행한 컨설팅 프로젝트였던, 패션 커머스를 기준으로 데이터마케팅의 사례를 보겠습니다.

커머스 내에서도 여러 안건의 데이터 분석이 있는데요. 1. 에디토리얼(=콘텐츠), 2. 프로모션 간의 비교 (미드세일 vs 시즌오프세일), 3. 주요 대시보드 (KPI, AARRR) 4. 특정 프로모션 (블랙프라이데이) 등입니다.

커머스 내 여러 안건의 데이터 분석 - 1. 에디토리얼(=콘텐츠), 2. 프로모션 간의 비교 (미드세일 vs 시즌오프세일), 3. 주요 대시보드 (KPI, AARRR) 4. 특정 프로모션 (블랙프라이데이)

데이터 분석 수단: 앰플리튜드(Amplitude)

블랙프라이데이 프로모션을 세부 사례로 앰플리튜드(Amplitude)를 활용했던 분석을 예시로 들어보겠습니다.

*앰플리튜드는 SaaS(Software as a Service: 클라우드 기반의 소프트웨어 제공 모델) 솔루션으로 웹/앱 서비스 내의 사용자 행동 분석을 할 수 있는 프로덕트 애널리틱스(Product Analytics)입니다.

앰플리튜드(Amplitude) 23FW 블랙 프라이데이 쿠폰 적용 매출 대시보드

데이터 분석의 이유

왜 프로모션 데이터 분석을 해야 할까요? 그 배경부터 먼저 짚고 넘어갑시다.

Boxed Text
✅ 목적/목표에 따른 성과 분석과 회고가 필요합니다.

다양한 형태로 스스로에게 질문을 해봅니다.

Q. 프로모션을 기획하고 운영한 후 가장 궁금한 것은?

Q. 프로모션을 운영한 이유는 무엇일까요?

여러 가설을 세워봅니다.

  • 활성 사용자 수를 늘리기 위해서
  • 재고 소진을 위해서
  • 매출을 늘리기 위해서

이렇게 물어보면, 보통은 '셋 다'라고 대답하는 경우가 많은데요. 충분히 이해는 하지만(^^...!) 우선순위는 정해야 합니다. 대개 우선순위는 [매출]이기에, 매출 관련 분석을 먼저 진행합니다.

매출 분석

매출의 기본적인 구성 요소를 먼저 파악합니다.

Boxed Text
매출 = 구매건수X구매건당 단가 = 주문수 X 건단가
Boxed Text
매출 = 구매자수X구매자당 단가 = 구매자수 X 객단가

*건단가와 객단가

건단가와 객단가는 혼용되어 쓰이기도 하는데요. 주문[건]의 건, 고[객]의 [객]을 생각하시면 됩니다.

즉 어제 제가 배민에서 점심 주문 건으로 1.5만 원을 쓰고 저녁 주문 건으로 2.5만 원을 썼다면 일 기준 제 건단가는 [1.5만 원] / [2.5만 원] 두 건일 것이고 제 객단가는 [1.5만 원]+[2.5만 원]의 4만 원이 될 수도 있습니다.

*물론 건단가와 객단가는 내부적으로 정의하기 마련입니다! 일간 건단가를 평균으로 낼 수도 있으니까요.

이에 따라 앰플리튜드(Amplitude)에서 매출, 주문수/건단가, 구매자수/객단가로 그래프를 구성합니다. 우선 매출로 전체적인 추이를 보고 주문수/건단가, 구매자수/객단가를 개별로 쪼개보는 것이죠.

앰플리튜드(Amplitude) 23FW 블랙 프라이데이 쿠폰 매출 비교, 객단가, 건단가, 주문수 비교 그래프 대시보드

해당 프로모션에서는 객단가와 건단가가 유사한 추이를 보이기에 특이 사항이 없다고 판단되었지만, 가끔 특정 프로모션에서 객단가와 건단가의 차이가 크게 발생하는 경우도 있습니다. (리셀러의 등장?!)

이외 위 그래프에서 두 개의 선이 있는데요. 데이터를 볼 때의 꼭 필요한 [비교 기준]입니다. 비교 기준은 사용자 특성이 될 수도, 행동이 될 수도 있지만 [기간]을 가장 기본적으로 고려합니다.

*비교 기준: 기간(일간, 주간, 월간, 분기, 반기, 연간… 시즌성 고려!

블랙프라이데이 프로모션의 분석이라면 전년도 11월과 비교하는 것 vs 전월인 10월과 비교하는 것 - 어떤 것이 더 합리적일까요? 당연히 전년도일 것입니다.

전월 10월과 당월 11월의 할인율, 마케팅 수준 등이 다를 테니까요. 물론 전년 대비 회원수도 브랜드수도 많아졌고 등의 변동 요인들이 많아 YoY만 비교하는 것이 의미가 없다고 판단된다면 결국 전년도(YoY)/전월(MoM)/전주(WoW) 등 비교 대상들이 많아질 수 있습니다.

데이터 분석의 차별점

현대의 직장인이라면 대개 모든 업무의 결과를 [숫자]로 보긴 합니다. 그렇다면 그냥 숫자를 확인하는 것과 데이터 분석의 가장 큰 차이점은 무엇일까요?

비교할 수 있어야 합니다!

예를 들어 2024년 7월 A 커머스의 구매 전환율 (메인 페이지 조회 > 결제 완료)이 10%라고 했을 때, 어떤 해석을 할 수 있을까요?

비교 기준 없이는 평가가 불가능합니다.

전월 대비 높아졌다/낮아졌다, 전년 대비 높아졌다/낮아졌다의 판단을 위해서는 전월 데이터, 전년도 데이터가 필요합니다.

전년, 전월, 전주의 데이터를 보며 추이를 확인했을 때 눈에 띄게 높거나/낮은, 혹은 변동이 생기는 시점을 찾아내어 그 배경이 무엇이었는지 파악하는 것이 필요합니다.

  • 최근 시일 내, 지난 시점과의 비교
Boxed Text
1️⃣ 시점을 기준으로 데이터 변화의 배경을 찾는 경우

혹은 유사한 프로모션이 진행되었던 시기와 비교하여 구매전환율이나, 구매수, 유입수, 가입수 등의 주요 지표에서 차이가 있었는지를 파악해 보는 것도 좋습니다.

  • 이전 유사 프로모션과의 비교
Boxed Text
2️⃣ 상황(배경)을 기준으로 데이터 변화의 시점을 찾는 경우

프로모션 vs 프로모션 간의 비교 외에도 uiux를 개선하거나 특정 기능을 배포했을 때 그 시점 이후의 변화가 있는지를 확인할 수 있습니다.

장바구니 구매 퍼널 /UIUX 개선 테스트 케이스
UIUX 개선 이후 전환율 비교를 통한 성과 분석

매출 세부 분석

매출을 구매수와 건단가, 구매자수와 객단가로 나눠 전반적인 추이를 파악한 후 세부 분석을 진행합니다.

매출은 결국 [사용자]가 [상품]을 [구매]하여 발생하는 결괏값입니다. 이에 따라 [사용자]와 [상품]의 측면에서도 분석을 진행합니다.

어떤 사용자가 구매했을까?

  • 기본적인 인구 통계: 성별, 연령 등
    *이를 기반으로 퍼포먼스 광고에서 타겟팅을 할 수 있습니다. (구매력이 높은 2534 여성 유저 등)
  • 기존 사용자 vs 신규 사용자
    *[신규]의 정의는 달라질 수 있습니다. (당월 가입, 최근 3개월 가입, 미구매 등)
  • RFM으로 구분해 본 사용자
  • 라플 응모/당첨 여부로 구분해 본 사용자
    ex. 라플에 응모했던 사용자, 라플에 응모하고 당첨됐으나 미구매한 사용자
  • 멤버십으로 구분해 본 사용자
  • 콘텐츠를 n회 이상 조회한 사용자

유저 특성(User Segment) 별로 구매전환율 비교 예시 이미지
유저 특성 별로 구매전환율 비교

어떤 상품을 구매했을까?

  • 카테고리
  • 남성, 여성, 생활, 세이버 스케이트, 브랜드, 세일
  • 브랜드
  • 상품

: 카테고리별, 브랜드별, 상품별 매출 추이

앰플리튜드(Amplitude) 23FW 블랙 프라이데이 쿠폰 매출 by 브랜드, 카테고리 그래프 대시보드

프로모션의 매출을 브랜드, 카테고리 등으로 나눠서 확인해 봅니다.

더 개별적으로는 브랜드를 기준으로 매출과 월별 성장률 등을 확인하며 주요 브랜드를 도출하기도 합니다.

그래서 데이터 마케팅

프로모션을 진행하고 쌓인 데이터를 분석하고 회고하고 다음 프로모션에 적용하는 것. 그것이 프로모션 측면에서 데이터를 활용한 데이터 마케팅이라고 볼 수 있습니다.

이외 데이터마케팅은 어떤 부문에도 동일하게 적용됩니다. 정량적인 수치로 표현되는 데이터를 쌓고, 데이터를 여러 측면에서 분석하고, 다음 유사 업무 시 배운 점을 적용하고 또 실험하는 것입니다.

EVENT

[종료] Martinee AP 본부 채용설명회

September 13, 2024

Martinee AP 본부 채용설명회 메인 배너
Martinee AP 본부 채용설명회 개요 이미지

행사명 : 마티니 AP 본부 채용설명회

장소: 서울 서초구 서초대로38길 12 마제스타시티 타워2 12F

일시: 2024년 9월 26일 목요일 오후 7시 ~ 9시

대상:

  • 디지털 마케팅 광고 에이전시로 이직 의사가 있으신 분
  • 퍼포먼스 마케터 및 광고기획자(AE)에 관심 있으신 분
  • 직접 다양한 프로젝트에 참여하여 성과를 개선시키고 싶으신 분
  • 업계 전문가들과 함께 커리어를 성장시키고 싶으신 분

Martinee AP 본부 채용설명회 CTA 버튼

마티니 AP 본부 채용설명회

Martinee AP 본부 채용설명회 상세설명 이미지 및 추천 참여 대상

2024년 9월 26일 목요일 오후 7시 Marketing Intelligence People, 마티니와 마티니 AP 본부의 퍼포먼스 마케팅을 여러분들께 소개합니다.

AP 본부에서 진행했던 고객사 및 프로젝트 사례들을 기반으로 직무 및 채용 관련 설명을 드릴 예정입니다.

마티니 근무환경과 문화, 복지도 함께 살펴보세요!

Agenda

Martinee AP 본부 채용설명회 세션 아젠다

19:00 - 19:20 Martinee Marketing Intelligence 2024 | 이선규 Martinee CEO

19:20 - 19:40 About Martinee Account Planning | 김영근 Martinee Account Planning Lead

19:40 - 19:50 사전 QnA (현장질문포함)

19:50 - 20:00 Break Time

20:00 - 20:15 About Martinee Culture & Benefits | Aimed People Team

20:15 - 21:00 Networking & QnA

안내사항

Martinee AP 본부 채용설명회 안내사항

- 자리가 한정되어 있어 별도로 선정 안내를 드릴 예정입니다.

- 주차권 제공 가능하며 리셉션 데스크 문의바랍니다.

- 참석자분들에게 간단한 음식이 제공됩니다.

- 문의사항은 mkt@martinee.io 로 문의바랍니다.

Martinee AP 본부 채용설명회 CTA 버튼
GROWTH

B2B SaaS MRR 계산하기

September 12, 2024

Monthly Recurring Revenue, MMR 표지
MRR

MRR 이란?
Monthly Recurring Revenue로 월간 반복 매출 구독형 서비스의 경우 핵심 지표로 활용됩니다.

요즘은 누구나 한 번 쯤은 구독형 서비스를 결제해본 경험이 있을텐데 구독 비즈니스는 사용자가 카드를 등록하면 자동으로 월마다 반복적으로 자동결제가 됩니다. (유튜브 프리미엄 구독, 넷플릭스 등)

MRR 산출 공식은 다음과 같습니다.

Centered Boxed Text
MRR = 고객수 * 평균 청구 금액

예를 들면, 유튜브 프리미엄 월 구독 비용이 10,000원이고 이용자가 10명이라면 MRR 은 100,000원이 되는 겁니다. 

그런데 MRR이 100,000원 입니다. 에서  끝나면 안되겠죠?

MRR이 어떻게 변화했는지를 분석하는 것도 굉장히 중요합니다.

MRR 지표를 쪼개보면 아래와 같습니다.

  • NEW MRR : 신규 고객의 MRR
  • Expansion MRR : 기존 고객의 구독 상품 업그레이드의 MRR
  • Contraction MRR : 기존 고객의 구독 상품 다운그레이드의 MRR
  • Churn MRR : 구독 취소 
  • Reactivation MRR : 재활성화된 MRR 

그러면 이 지표를 가지고 우리는 New MRR을 구할 수 있습니다. 

Text Color Change

Net MRR = New MRR + Upgrade MRR - Churned MRR - Downgrade MRR + Reactivation MRR

 

실무하면서 MRR calculation 하는데 고생 고생을 했는데 이 방법으로 도움을 받을 수 있는 누군가를 위해 공유합니다.

우선 방법은 DB에 적재된 결제 데이터와 구글 스프레드 시트에서 세금계산서로 처리되는 고객 결제 내역을 바탕으로 Rawdata를 준비하고 파이썬을 활용해서 frequency(월결제, 연결제)를 flatten 해주고 이를 Looker Studio로 시각화해줍니다. 

1. DB에서 데이터 불러오기

2. 구글 스프레드시트에서 데이터 불러오기

3. 파이썬으로 데이터 클렌징하기

4. 클렌징한 DB, 스프레드시트 데이터 합치기

5. 클렌징 결과 시각화를 위해 구글 스프레드시트로 보내기

6. Looker Studio로 시각화 하기

아래는 실제 활용했던 MRR 대시보드 입니다. 

첫 번째 대시보드는 월매출과, MRR 지표 현황을 살펴보고 고객사별 월간 구독 현황을 확인 해볼 수 있고 ARR, 이번달 예상 매출도 확인 할 수 있게 구성했었습니다.

MRR 대시보드 예시 이미지 1
MRR 대시보드 예시(1)

두 번째 대시보드는 위에서 언급한 대로 MRR 지표를 쪼개서 모니터링하는 대시보드입니다.

이를 통해 MRR 상승하는데 어떤 지표 때문에 상승했는지 한눈에 볼 수 있습니다.  또한 MRR 성장추이도 함께 볼 수 있도록 구성되었습니다. 이제 이 대시보드를 통해서 전사가 우리 서비스의 MRR 현황을 볼 수 있고 이탈한 유저수가 특히 많았던 월에는 고객 인터뷰를 진행해보거나 해당 유저들의 특징을 파악해보면 어떤 지점에서 불편함을 느꼈는지 페인 포인트는 무엇이었는지 원인을 파악하고 제품 개선에 반영해볼 수 있겠죠? 

MRR 대시보드 예시 이미지 2
MRR 대시보드 예시(2)

DB에서 결제 데이터를 위의 컬럼만 파이썬 SQLAlchemy 를 활용해서 데이터를 불러옵니다. 

SELECT  
            user_id,
            company_name,
            sales,
            pay_datetime_id,
            freq,
            user_status    
FROM
        (SELECT tmp2.user_id,
               tmp2.company_name,
               tmp2.id,
               tmp1.sales,
               date_format(tmp1.auth_date, '%Y-%m-01') auth_date,
               tmp1.subscription_id,
               tmp1.user_status,
               tmp1.card_updated_at
          FROM
                    (SELECT B.user_id,
                           A.sales,
                           A.auth_date,
                           A.subscription_id,
                           A.user_status,
                           A.card_updated_at
                    FROM
                    (SELECT st0.*,
                            st1.user_status,
                            st1.card_updated_at
                    FROM
                    -- billing_payment_history 테이블에서 조건에 맞는 데이터 가져오기
                    (SELECT billing_id,
                           subscription_id,
                           auth_date,
                           IF(cancelled_at IS NULL ,amount, IF (amount <= cancellation_cancel_amount,0,cancellation_remain_amt)) AS sales
                    FROM nicepay_billing_payment_history
                    ) st0
                    left join
                    	-- nicepay_card_info 테이블에서 가장 최근의 카드 정보(created_at이 최대인)를 가져오며, user_status를 is_deleted와 is_active 값에 따라 ‘churned_user’ 또는 ‘active_user’로 설정
                        (select t1.billing_id,
                                t1.created_at,
                                t1.is_deleted,
                                t1.is_active,
                                t1.created_at card_updated_at,
                                (case when t1.is_deleted = 1 and t1.is_active = 0 then 'churned_user' else 'active_user' END) user_status
                                from nicepay_card_info t1
                        inner join (select billing_id,
                                            max(created_at) max_date
                                    from nicepay_card_info
                                    group by 1) t2
                        on t1.billing_id = t2.billing_id and t1.created_at = t2.max_date) st1
                    ON (st0.billing_id = st1.billing_id)) A
                    LEFT OUTER JOIN
                                    (SELECT billing_id,
                                            user_id
                                     FROM nicepay_billing_info) B
                    ON (A.billing_id = B.billing_id)) tmp1
INNER JOIN (SELECT user_id,
                        company_name,
                        id
            FROM user
          ) tmp2
ON (tmp1.user_id = tmp2.user_id)) tmp3
inner join
                    (select seq,
                            freq,
                            date_format(plan_start_datetime_id, '%Y-%m-01') subscription_plan_start_datetime_id
                     from subscription) tmp4
ON (tmp3.subscription_id = tmp4.seq)
where sales > 0;

 

먼저 계산을 위해 필요한 데이터를 DB에서 추출해주고 flatten을 해줄껍니다.

 

flatten이 뭐냐 뜻 그대로 평탄화한다는 의미입니다. 예를들어 고객이 연간 결제를 1,200,000원을 했다고 하면 월별 결제액은 12개월로 나눠서 월별로 데이터를 평탄화 해주는 과정이라고 보시면 됩니다.

 

#expand the yearly records
mrr_base = mrr_df.loc[np.repeat(mrr_df.index, mrr_df['freq'].map({"years":12,"months"1}))]
mrr_base.loc[mrr_base["freq"] == "years""sales"] /= 12
mrr_base.loc[mrr_base["freq"] == "years""pay_datetime_id"] += \
mrr_base.groupby(["user_id""freq"]).cumcount().loc[mrr_base["freq"] == "years"]\
.map(lambda i: pd.DateOffset(months=i)) 

저의 경우 DB에 기록되지 않은 세금계산서 데이터를 가지고 있었는데 

 

해당 데이터는 구글 스프레드시트에 기록하고 있으므로 구글 스프레드시트에서 데이터를 불러옵니다. 

#구글 스프레드시트에서 data load하기
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'credential 파일 경로(json파일)', scope)
gc = gspread.authorize(credentials)
spreadsheet_url = "가져올 스프레드시트 주소"
gc1 = gc.open_by_url(spreadsheet_url).worksheet('시트 이름')

#기존에 기록된 데이터 가져와서 리스트 형태로 리턴
gc2 = gc1.get_all_values()

#데이터프레임으로 판다스로 가져오기
gc2 = pd.DataFrame(gc2, columns=gc2[0])
gc2 = gc2.reindex(gc2.index.drop(0))

#날짜 형식으로 변경
gc2['pay_datetime_id'] = pd.to_datetime(gc2['pay_datetime_id'])

#sales 컬럼 숫자로 변경
gc2['sales'] = gc2['sales'].astype(str).astype(int)

#expand the yearly records
gc2_base = gc2.loc[np.repeat(gc2.index, gc2['freq'].map({"years":12"months"1"2years":24}))]

# compute monthly fee and join date
#years 12개월로 나누기
gc2_base.loc[gc2_base["freq"] == "years""sales"] /= 12
gc2_base.loc[gc2_base["freq"] == "years""pay_datetime_id"] += \
gc2_base.groupby(["user_id""freq"]).cumcount().loc[gc2_base["freq"] == "years"] \
.map(lambda i: pd.DateOffset(months=i))

#2years 24개월로 나누기 / years 12개월로 나누기
gc2_base.loc[gc2_base["freq"] == "2years""sales"] /= 24
gc2_base.loc[gc2_base["freq"] == "2years""pay_datetime_id"] += \
gc2_base.groupby(["user_id""freq"]).cumcount().loc[gc2_base["freq"] == "2years"] \
.map(lambda i: pd.DateOffset(months=i))

gc2_base_result = gc2_base[['user_id''company_name''sales''pay_datetime_id''freq']]
출처: https://botongsaram.tistory.com/entry/B2B-SaaS-MRR-계산하기 [알랭드보통사람:티스토리]

 

위의 과정에서 DB에서 불러온 데이터와 구글 스프레드시트의 데이터 형태를 통일 시켰습니다. 

이제 Raw Data를 만들기 위해서 합쳐줍니다.

#구글시트rawdata와 DB에서 불러온 데이터의 결합
df_union= pd.concat([mrr_result, gc2_base_result])

 

데이터를 통합한 다음에 데이터 시각화를 위해 데이터 시각화를 위해 스프레드시트에 최종 정리된 데이터를 다시 구글 스프레드시트로 전달합니다.

 

# union 된 결과를 다시 구글 스프레드시트로
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'credential 파일 경로(json)', scope)
gc = gspread.authorize(credentials)
spreadsheet_url = '스프레드시트주소
gc_mrr = gc.open_by_url(spreadsheet_url).worksheet('새로 데이터를 업로드할 시트명')
#기존에 기록되어 있던 데이터 삭제(처음 업로드할 때는 필요 없음)
gc_mrr.clear()
# 오늘 가져온 데이터 업로드
gd.set_with_dataframe(gc_mrr,merge)

 

위의 결과는 MRR 대시보드 예시(1)에서 활용했던 과정입니다. 

Text Color Change

New MRR + Upgrade MRR - Churned MRR - Downgrade MRR + Reactivation MRR

 

다음으로 MRR detail view 에 사용될 지표를 만들 차례입니다. 

 

# pay_datetime_id 열에서 월과 연도를 추출하여 새로운 열 생성
mrr_detail_result['month_year'] = mrr_detail_result['pay_datetime_id'].dt.to_period("M")

# max_date 컬럼 만들기
mrr_detail_result['max_date'] = pd.NaT

mrr_detail_result.head()

# user_id를 기준으로 그룹화
grouped = mrr_detail_result.groupby('user_id')

# 각 그룹에서 최대 결제일을 찾고 max_date 열에 할당
for name, group in grouped:
    max_date = group['pay_datetime_id'].max()
    max_index = group['pay_datetime_id'].idxmax()
    mrr_detail_result.loc[group.index, 'max_date'] = max_date

# 데이터프레임을 corporate_id와 pay_datetime_id 기준으로 정렬
transactions_ver2 = mrr_detail_result.sort_values(by=['corporate_id', 'pay_datetime_id'])

# 이전 거래 금액을 저장할 새로운 열 prev_amount 추가
transactions_ver2['prev_amount'] = transactions_ver2.groupby('corporate_id')['sales'].shift(1)

# 사용자 상태를 저장할 새로운 열 user_status 추가
transactions_ver2['mrr_status'] = 'new'

# 이전 거래 금액과 동일한 금액을 가진 사용자에게 'existing' 할당
transactions_ver2.loc[transactions_ver2['sales'] == transactions_ver2['prev_amount'], 'mrr_status'] = 'existing'

# 이전 거래 금액보다 높은 금액을 가진 사용자에게 'upgrade' 할당
transactions_ver2.loc[transactions_ver2['sales'] > transactions_ver2['prev_amount'], 'mrr_status'] = 'upgrade'

# 이전 거래 금액보다 낮은 금액을 가진 사용자에게 'downgrade' 할당
transactions_ver2.loc[transactions_ver2['sales'] < transactions_ver2['prev_amount'], 'mrr_status'] = 'downgrade'

# 이전에 'churned' 상태였고 이제 새로운 거래가 있는 사용자에게 'reactivation' 할당
# 모든 고유한 corporate_id 값을 포함하는 리스트 생성
corporate_ids = transactions_ver2['corporate_id'].unique()

# 각 corporate_id에 대해 루프를 돌며 각 거래의 상태를 업데이트
for corporate_id in corporate_ids:
    user_data = transactions_ver2[transactions_ver2['corporate_id'] == corporate_id]
    for i in range(1, len(user_data)):
        prev_month = user_data.iloc[i-1]['month_year']
        curr_month = user_data.iloc[i]['month_year']
        if (curr_month - prev_month).n > 1:
            transactions_ver2.loc[(transactions_ver2['corporate_id'] == corporate_id) & (transactions_ver2['month_year'] == curr_month), 'mrr_status'] = 'reactivation'

# user_status가 churn_user인 사용자의 마지막 결제일에 'churn' 상태 할당
transactions_ver2.loc[(transactions_ver2['user_status'] == 'churned_user') & (transactions_ver2['pay_datetime_id'] == transactions_ver2['max_date']), 'mrr_status'] = 'churned'
transactions_ver2.head()

 

이제 MRR 대시보드 예시(2)에 활용된 데이터가 전처리되었고 구글 스프레드시트로 데이터를 적재해주면 됩니다. 

 

이걸 매일 하기는 귀찮으니 Airflow DAG를 활용해서 자동화해주면 됩니다. 

 

여기까지 MRR계산을 위해 SQL, 구글 스프레드시트, python을 활용한 과정을 소개해봤습니다.

누군가 B2B SaaS에서 MRR 계산을 위해 고군분투하고 계시다면 이 코드가 도움이 되시면 좋겠네요 

 

추가로 초기에 대시보드 기획에 많은 참고가 되었던 Baremetrics라는 MRR 대시보드 외산 툴이 있는데 상당히 잘만들었다고 생각되는 서비스입니다.

 

SaaS 비즈니스를 운영하신다면 참고해보시면 좋을 서비스네요!