Popular

Recommend

recomm_thumbnail
MARTECH

AppsFlyer MCP: AI 시대를 위한 마케팅 인텔리전스

February 4, 2026

아티클 요약

아티클 요약

  • 앱스플라이어 MCP란?: 자연어만으로 앱스플라이어의 마케팅 데이터에 바로 접근할 수 있는 앱스플라이어의 새로운 AI 모델입니다.
  • 자연어 기반 데이터 접근: 앱스플라이어 MCP는 간단한 질문만으로 캠페인 성과, 오디언스 분석, 딥링크 관리 등 필요한 데이터에 즉시 접근할 수 있습니다.
  • 실시간 인사이트와 자동화: 앱스플라이어 MCP는 별도의 설정이나 엔지니어링 작업 없이 실시간으로 인사이트를 확인하고, AI 에이전트를 통해 분석부터 최적화까지 자동으로 처리할 수 있습니다.

MCP란 무엇일까요?

MCP(Model Context Protocol)는 AI가 외부 데이터를 활용할 수 있도록 연결해 주는 개방형 표준 프로토콜입니다. 쉽게 말해, AI 도구가 실시간으로 필요한 데이터를 가져와 활용할 수 있게 만드는 기술입니다.

앱스플라이어는 이 기술을 활용해 자연어만으로 마케팅 데이터에 바로 접근 가능한 MCP를 선보였습니다. Claude, ChatGPT 같은 AI 도구와 앱스플라이어를 연결하면, 캠페인 성과 분석부터 오디언스 관리, 딥링크 문제 해결까지 질문만으로 처리할 수 있습니다.

또한 앱스플라이어 MCP는 기술적 배경과 관계없이 누구나 필요한 데이터를 즉시 확인할 수 있도록 지원합니다. 사용자가 직접 질문하든, AI 에이전트에게 작업을 맡기든, 대기 시간 없이 명확한 정보와 실행 결과를 바로 받아볼 수 있습니다.

AppsFlyer MCP 작동 방식: 솔루션과 LLM의 연결 고리

앱스플라이어, 앱스플라이어 MCP, AppsFlyer, 마케팅 AI, 마케팅 솔루션, 퍼포먼스 마케팅

앱스플라이어 MCP는 Claude, ChatGPT, Gemini 같은 사용자가 선호하는 LLM(Large Language Model) 도구와 앱스플라이어를 연결합니다. 사용자가 질문을 입력하면 MCP가 자동으로 필요한 데이터를 찾아 이해하기 쉬운 형태로 보여줍니다. 어트리뷰션, 분석, 오디언스, OneLink(원링크) 등 앱스플라이어의 모든 기능을 자연어로 바로 활용할 수 있습니다.

또한 앱스플라이어는 7,000개 이상의 주요 브랜드가 신뢰하는 풍부하고 정확한 데이터를 제공하기 때문에 개인정보 보호를 철저히 준수하며 마케터가 필요한 인사이트를 즉시 확인하고 빠르게 의사결정을 내릴 수 있도록 돕습니다.

앱스플라이어 MCP는 개방형 구조로 설계되어 있어, 원하는 방식으로 커스터마이징할 수 있습니다. 미디어 믹스를 최적화하는 AI를 만들거나, 오디언스를 자동으로 관리하는 시스템을 구축하거나, 내부 도구에 MCP를 연결하는 등 복잡한 설정 없이도 필요한 기능을 유연하고 자유롭게 구현할 수 있습니다.

MCP가 중요한 이유: AI를 마케팅에 활용하기

앱스플라이어, 앱스플라이어 MCP, AppsFlyer, 마케팅 AI, 마케팅 솔루션, 퍼포먼스 마케팅

1. 개발 없이 즉각적인 인사이트 확인

채널별 ROAS를 확인하고 싶거나, 어떤 캠페인이 가장 높은 LTV를 만드는지 알고 싶을 때 앱스플라이어 MCP를 활용해 보세요. 질문만 입력하면 필요한 데이터를 바로 확인할 수 있습니다.

2. 모든 팀에서 동일하게 사용

앱스플라이어 MCP는 사람이 직접 질문하거나 AI 에이전트가 자동으로 작업하는 방식 모두 지원합니다. Growth, CRM, 제품, 마케팅 팀 등 어떤 팀이든 별도의 설정이나 개발 작업 없이 필요한 인사이트를 바로 확인할 수 있습니다.

3. 더 강력한 정보 보호

앱스플라이어 MCP는 앱스플라이어의 어트리뷰션 기술을 기반으로 만들어졌습니다. 모든 데이터는 개인정보 보호 규정을 철저히 준수하며, 설계 단계부터 암호화와 보안을 적용했습니다.

MCP 활용하기: 링크 관리부터 성과 분석까지

앱스플라이어, 앱스플라이어 MCP, AppsFlyer, 마케팅 AI, 마케팅 솔루션, 퍼포먼스 마케팅

1. 마케팅 성과 분석

캠페인 성과를 실시간으로 확인하고, ROI를 비교할 수 있습니다. 채팅창에서 직접 확인하거나, AI 에이전트를 활용해 성과 모니터링부터 최적화, 작업 실행까지 자동으로 처리하세요.

2. 잠재고객 관리

오디언스가 어떻게 나뉘고 활용되는지 한눈에 확인할 수 있습니다. 질문만으로 오디언스 현황을 조회하거나 실시간 성과를 분석할 수 있으며, 중복된 오디언스를 찾아내고 개선 방안을 제안하는 AI를 직접 만들 수도 있습니다. 필요하다면 여러 채널의 오디언스 정보를 자동으로 동기화하거나 작업을 실행할 수도 있습니다.

3. 링크 관리

대화형 인터페이스로 OneLink 템플릿과 링크 동작을 간편하게 점검하거나, 에이전트를 활용해 링크 상태를 지속적으로 모니터링할 수 있습니다. 문제가 있는 링크를 자동으로 찾아내고, 모든 캠페인이 올바르게 운영되도록 관리할 수 있습니다.

4. 고객 지원 어시스턴트

앱 설정이나 구현 방법이 궁금할 때 질문만으로 바로 확인할 수 있습니다. AI 어시스턴트가 설정 오류를 찾아내 해결 방법을 알려주거나, 상황에 맞는 가이드 문서를 자동으로 보여줍니다.

앱스플라이어 MCP와 함께 AI 기반 마케팅의 미래를 만들어 가세요

앱스플라이어 MCP는 AI 기반 마케팅을 향한 중요한 첫걸음입니다. 사람의 창의성과 AI의 분석 능력이 결합되면, 마케터는 더 나은 의사결정을 내릴 수 있습니다.

MCP는 캠페인 분석, 오디언스 확인, 딥링크 관리 같은 마케터들의 핵심 업무를 지원하고 있으며, 추후 예측 분석과 에이전트 기반 자동화까지 확대 될 예정입니다. 데이터 기반으로 더 빠르고 정확한 의사결정을 내리고 싶다면, 지금 바로 앱스플라이어 MCP를 경험해 보세요.

CTA 이미지

앱스플라이어 도입을 고민중이라면?

마티니는 앱스플라이어 도입부터 실무 활용까지 전 과정을 지원하는 풀퍼널 마케팅 에이전시입니다. 지금 아래 버튼을 눌러, 마티니와 만나보세요.

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

브레이즈 캔버스(Canvas) 활용하기

January 9, 2026

아티클 요약

아티클 요약

  • 브레이즈 캔버스(Canvas)는 고객의 행동과 속성을 기준으로 개인화된 메시지 흐름을 설계하는 고객 여정 오케스트레이션 도구입니다.
  • 캔버스를 활용하면 실시간 데이터를 반영해, 여러 채널을 하나의 흐름으로 연결할 수 있습니다.
  • 다양한 Step(스텝)을 활용하여 마케터가 다양한 시나리오를 직접 구현할 수 있습니다.

캔버스(Canvas)란?

브레이즈 캔버스(Canvas)는 고객의 행동과 속성을 기준으로 개인화된 메시지 흐름을 설계하는 고객 여정 오케스트레이션 도구입니다. 단일 캠페인이 하나의 캠페인을 특정 조건에 따라 발송하는 데 초점을 맞춘다면, 캔버스는 고객의 행동에 따라 여러 메시지와 채널을 유기적으로 연결합니다.

예를 들어, 회원가입 후 7일까지의 유저 저니 설계, 첫 구매까지의 지속적인 구매 유도 메시지 발송 등 단일 순간에 그치지 않고 지속되는 기간 동안 유저 저니에 따라 메시지를 보낼 수 있습니다.

왜 캔버스를 활용해야 할까요?

캔버스를 활용하면, CRM 마케팅을 ‘단발성 메시지 발송’에서, 지속적인 고객 경험 관리로 확장할 수 있습니다.

왜 캔버스를 활용해야 할까요?
  • 고객 행동에 따른 실시간 반응 설계
  • 여러 채널(푸시 메시지, IAM, 이메일 등)을 하나의 흐름으로 운영
  • 마케터가 직접 고객 여정을 시각적으로 설계 가능

특히 고객 행동이 빠르게 변화하는 환경에서는, 잘 설계된 캔버스가 마케터의 반복적인 운영 부담을 크게 줄여줍니다.

캔버스의 기본 속성 이해하기

브레이즈 캔버스는 크게 진입 조건(Entry), 액션(Step), 분기(Split)으로 이루어져 있습니다.

브레이즈 캔버스 구성 요소
  • Entry: 어떤 고객이 언제 캔버스에 진입할지 정의합니다.
  • Step: 메시지 발송, 대기 시간, 조건 확인 등 실제 액션을 설정합니다.
  • Split: 고객의 행동이나 속성에 따라 흐름을 분기합니다.

해당 속성을 잘 활용하면, CRM 마케터는 하나의 캔버스 안에서 다양한 시나리오를 운영할 수 있습니다. 그뿐만 아니라 고객의 입장에서도 ‘자연스러운 경험’이 가능해져 더 높은 전환 성과를 기대할 수도 있습니다.

캔버스 활용 시 유의할 점

브레이즈 캔버스는 강력한 도구이지만, 설계 목적이 명확하지 않으면 오히려 캠페인 운영이 복잡해질 수 있습니다. 하나의 캔버스에는 하나의 목표를 두고, 온보딩•전환•리텐션 등 목적별로 캔버스를 분리해 설계하는 것이 효과적입니다.

또한, 지나치게 많은 분기와 조건은 운영 중 오류나 누락을 유발할 수 있습니다. 초기에는 단순한 구조로 시작하고, 성과와 데이터를 기반으로 점진적으로 고도화하는 방법이 안정적입니다.

마지막으로 데이터 반영 시점을 고려하여 적절한 대기 시간과 조건을 설정해야 합니다.

캔버스는 한 번 만들고 끝나는 것이 아니라, 운영 후 지속적으로 점검하고 개선해야 성과로 이어집니다.

💡 더 많은 브레이즈 활용 방법이 궁금하다면 아래의 아티클을 참고해 보세요.

CTA 이미지

브레이즈, 믿을 수 있는
전문가와 상담하세요

지금 아래 버튼을 눌러 브레이즈 전문가 마티니에게 도움을 받아보세요.

recomm_thumbnail
CRM

[브레이즈 활용도 자가진단] 브레이즈(Braze), 잘 활용하고 계신가요?

January 6, 2026

브레이즈, 정말 제대로 활용하고 계신가요?

CRM 마케팅의 중요성이 높아지면서, 많은 기업에서 브레이즈(Braze)를 활용해 CRM 마케팅을 진행하고 있습니다. 간단하게는 푸시 메시지 발송부터, 깊게는 캠페인 자동화까지. 브레이즈는 많은 CRM 마케터들에게 익숙한 도구가 되었습니다. 하지만 실제로 현장에서 듣는 이야기는 조금 다릅니다.

“기능은 많은데, 어디까지 쓰고 있는지 모르겠다”
”이 정도면 잘 쓰고 있는 건지 감이 안 온다”

브레이즈를 사용하는 것과 잘 ‘활용’하는 것은 다른 문제이기 때문입니다.

브레이즈 활용도를 점검해야 하는 이유

마티니는 이러한 고민에서 출발해, 브레이즈 활용도를 자가진단 해볼 수 있는 질문을 마련했습니다. 자가진단의 목적은 단순히 점수를 매기는 것이 아니라, 현재 우리 팀의 CRM 운영이 어느 단계에 와 있는지, 그리고 다음 단계로 나아가기 위해 무엇이 필요한지를 스스로 인식할 수 있도록 돕는 데 있습니다.

실제로 자가진단에 참여한 기업들을 살펴보면, 캠페인과 자동화는 잘 운영되고 있지만, 데이터 활용, AI 기능, 신규 채널(RCS 등)은 아직 충분히 활용되지 못하고 있는 경우가 많았습니다.

브레이즈 활용도 점검하기

브레이즈를 사용하고 있다면, 이제는 ‘얼마나 잘 활용하고 있는지’를 점검해야 할 시점입니다. 지금 바로 우리 팀의 브레이즈 활용도를 진단해 보세요.

자가진단 점수 구간에 따라 현재 브레이즈 활용도가 어느 수준인지 쉽게 확인해볼 수 있습니다. 결과 페이지에서는 현재 활용 단계에 따른 제안도 함께 확인해볼 수 있습니다.

브레이즈 활용의 다음 단계가 궁금하다면?

마티니가 정리한 브레이즈 활용 인사이트와 실제 사례를 통해, CRM을 한 단계 더 고도화하는 방법을 확인해 보세요.

Recent

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 비즈니스를 운영하신다면 참고해보시면 좋을 서비스네요!

EVENT

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

September 9, 2024

데이터 기반 고객 여정 설계를 위한 CRM과 PA 연계 전략 세미나 메인 배너
데이터 기반 고객 여정 설계를 위한 CRM과 PA 연계 전략 세미나 개요

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

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

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

대상

  • 퍼포먼스+그로스+CRM 통합 인사이트를 얻고 싶은 분
  • 개발 부담 없이 개인화/자동화 마케팅 캠페인을 운영하고 싶은 분
  • PA와 CRM 솔루션의 연동 및 효과적인 활용법이 궁금한 분
  • CRM 캠페인 AB 테스트 설계부터 대시보드 구축까지 필요한 분

행사 신청 버튼

데이터 기반 고객 여정 설계를 위한  CRM과 PA 연계 전략 세미나 소개 및 추천 참여 대상

2024년 9월 25일 수요일 오후 4시 마티니, 앰플리튜드, 원시그널이 함께하는 세미나에서각 솔루션의 활용 사례와 고객 경험을 최적화할 수 있는 PA & CRM 솔루션 연계 활용법을 알려드립니다.

이번 세미나에서 PA 및 CRM 솔루션 활용 사례를 확인하고 비즈니스에 직접 적용할 수 있는 과정들을 살펴보세요.

세션소개

행사 타임테이블 이미지
세션소개 및 연사자 사진 이미지

16:05 ~ 16:30

[앰플리튜드 세션] 이재철 연사

앰플리튜드 국내 활용사례

16:30 ~ 16:55

[원시그널 세션] 서영진 연사

원시그널 글로벌 활용사례

  • 원시그널 기능 및 강점 소개
  • 원시그널 CRM 캠페인 글로벌 사례

16:55 ~ 17:20

[마티니 세션] 이건희 연사

CRM 자동화 & PA 솔루션 시너지 발휘하기

  • PA를 활용한 CRM 성과 분석
  • PA 분석을 통한 CRM 캠페인 아이디어 발굴

세션 이후에는 자유로운 네트워킹과 QnA를 할 수 있는 시간이 마련되어있어 솔루션 연계 활용 및 PA와 CRM 솔루션 도입 관련해서 고민을 나누고 소통할 수 있습니다.

안내사항

안내사항 이미지

- 신청 시 회사 이메일이 아닐 경우 등록이 제한될 수 있습니다.

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

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

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

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

행사 신청 버튼
GROWTH

구글애널리틱스4 (GA4) 세그먼트 제대로 활용하기

September 9, 2024

GA 세그먼트란?

분석 데이터의 하위 집합입니다. 

사용자, 세션, 이벤트 데이터를 분리해서 세그먼트를 정의하면 분석하고자 하는 대상을 쉽게 정의할 수 있게 만드는 기능입니다. 

세그먼트를 정의하게 되면 특정 유저의 그룹 vs 나머지 유저의 특징을 비교 분석해 볼 수 있습니다. 

활용 방법 및 예시

GA4에서 세그먼트 기능을 통해 웬만한 유저들의 특징을 잡아낼 수 있습니다.  

그런데 GA4가 어떻게 유저들의 행동 데이터를 수집하고 활용하는지 제대로 알지 못하면 활용하기 힘들겠죠?

이번 글에서는 큰 틀에서 GA4가 어떤 원리로 조건이 설정되는지 알아보려고 합니다. 

세그먼트 유형 선택하기

세그먼트 생성화면을 들여다보면 꽤 많은 조건들을 설정할 수 있는 기능들이 많습니다.

일단 크게 3가지 유형의 세그먼트가 있습니다. (아래 유형에 대한 이해를 잘하셔야 합니다.)

세그먼트 유형 선택은 세그먼트를 조건에 해당하는 결과와 관련이 있는 거라고 생각하시면 이해하시기 쉬울 겁니다. 

특히! 각 유형별로 소스 / 매체 선택할 때 주의할 점을 꼭! 숙지하시길 바랍니다! 

GA4 세그먼트 생성
GA4 세그먼트 생성

Text with Indented Bullet Points
  • 사용자 세그먼트 : 특정 기준을 충족하는 사용자의 모든 이벤트를 포함하게 만듦
    • "방문자"와 관련된 분석을 한다면 사용자 세그먼트를 활용
    • 아래 세그먼트 중에 가장 큰 범위
    • 룩백 윈도우 (일반적으로 90일) 내에 사용자의 전체 구매 경로를 고려함
    • 트래픽 소스를 정의할 때는 First User(첫 사용자) ~ 로 시작하는 접두사만 선택됩니다.

사용자 세그먼트 내 트래픽 소스 정의할 때 범위가 사용자 범위로 되어 있는 첫 사용자 소스/매체 선택
사용자 세그먼트 내 트래픽 소스 정의할 때 범위가 사용자 범위로 되어 있는 첫 사용자 소스/매체 선택

Text with Indented Bullet Points
  • 세션 세그먼트 : 모든 이벤트가 포함되지만 기준과 일치하는 세션만 포함
    • 방문자보다 "방문"에 초점을 맞추는 세그먼트
    • 예를 들어 전환이 발생한 특정 세션과 그 순간 유저를 사이트로 유도한 트래픽 소스를 살펴볼 때!
    • 트래픽 소스를 정의할 때 접두사에 Session 이 되어야 함
사용자 세그먼트 내 트래픽 소스 정의할 때 범위가 사용자 범위로 되어 있는 세션 소스/매체 선택
세션 세그먼트 내 트래픽 소스 정의할 때 범위가 세션 범위로 되어 있는 세션 소스/매체 선택

Text with Indented Bullet Points
  • 이벤트 세그먼트 : 기준을 충족하는 특정 이벤트만 포함
    • 사용자, 세션 기반 세그먼트에 비해 더 구체적인 분석이 가능합니다.
    • 트래픽 소스를 정의할 때 접두사가 없어야 함
이벤트 세그먼트내 트래픽 소스 정의할 때 측정기준이 기여로 되어 있는 소스/메체 선택
이벤트 세그먼트내 트래픽 소스 정의할 때 측정기준이 기여로 되어 있는 소스/메체 선택

이렇게 정의는 그럭저럭 이해는 할 수 있지만 역시 예시를 통해 어떻게 데이터가 선택되는지 알아보겠습니다.

특정 유저가 2개의 세션 안에서 몇 가지 이벤트를 발생시켰다고 가정해 보겠습니다.

예시) 1명의 유저가 생성한 2개의 세션
예시) 1명의 유저가 생성한 2개의 세션

1. 사용자 세그먼트 예시

사용자 세그먼트 기준으로 구매한 유저를 세그먼트를 만들면 어떻게 데이터가 선택될까요? 

총 7개의 이벤트가 모두 선택됩니다. 사용자 기준이니까 조회한 날짜에 있는 이벤트가 모두 포함되기 때문입니다.

사용자 세그먼트 예시
사용자 세그먼트 예시

2. 세션 세그먼트 예시

최소 한 개의 구매 이벤트가 발생한 모든 세션의 데이터기 때문에 이 기준으로 충족되는 데이터는 purchase(구매) 이벤트가 발생한 session - 2 만 선택됩니다( session - 1 에는 구매 이벤트가 없음)

세션 세그먼트 예시
세션 세그먼트 예시

3. 이벤트 세그먼트 예시 

이벤트 기준이면 기준에 맞는 이벤트만 선택한다는 말이기 때문에 session - 2에서 발생한 purchase 이벤트만!! 선택됩니다. 다른 이벤트는 선택 안됩니다!

이벤트 세그먼트 예시
이벤트 세그먼트 예시

조건 범위 설정하기

여기서는 어떤 조건의 유저를 선택할지 셋팅하는 옵션을 선택할 수 있습니다. 

어떤 조건의 유저를 선택할지 셋팅하는 옵션을 선택하는 화면

여기서 AND, OR 조건을 선택할 수 있는데 회원가입과 구매 이벤트를 발생시킨 유저 선택해 보겠습니다.

 AND, OR 조건을 선택 화면

그런데 하단에 보면 포함할 조건 그룹 추가라는 버튼이 있습니다. 

포함할 조건 그룹 추가 버튼 설명 이미지

동일한 방식으로 회원가입과 구매를 한 조건을 설정하면 이렇게 할 수 있죠

회원가입과 구매를 한 조건을 설정 화면

즉 하나의 조건 그룹에 회원가입 이벤트와 구매 이벤트를 선택한 것이고 나머지 하나는 두 개의 조건 그룹에 회원가입 이벤트와 구매 이벤트가 각각 설정을 했습니다. 

첫 번째 방식과 차이점은 뭘까요? 동일한 결과가 나올까요? 결과는 동일합니다.

??? 

이게 무슨 말이냐면 그룹 간 영역에서 오른쪽 상단에 보면 사람모양의 드롭다운 버튼이 있습니다.

사람모양의 드롭다운 버튼 설명 이미지

이걸 클릭하면 조건 범위를 지정할 수 있습니다. 

세그먼트 설정할 때랑 동일한 방식이죠? 사용자, 세션, 이벤트 단위로 조건설정이 가능합니다. 

사용자, 세션, 이벤트 단위로 조건 설정 가능
  • 모든 세션
    • 이 조건일 때 동일한 조건 그룹에 여러 가지 조건이 있으면 조건 A가 session - 1에서 발생하고 조건 B가 session - 2에서 발생했다면 유저는 세그먼트에 포함됩니다. 
    • 이 조건일 때는 유저의 Life Time 동안 조건이 충족됩니다

  • 동일 세션 내
    • (세그먼트 생성 시 사용자 세그먼트를 선택했어도) 조건 A랑 조건 B가 동일한 세션(session - 1 or session - 2)내에서 발생하는 조건

  • 동일 이벤트 내
    • (세그먼트 생성시 사용자 세그먼트를 선택했어도)조건 그룹이 단일 이벤트에서 발생

세션 및 이벤트 세그먼트에는 조건 지정 범위에 대한 옵션이 더 적습니다. 아래 표는  사용할 수 있는 세그먼트 유형별 조건 범위 간 조합입니다. 

세그먼트 유형별 조건 범위 간 조합표

다시 예시를 들어볼게요 

GA4에서 첫 구매 유저를 따로 이벤트를 개발하지 않으면 특정하기 힘든데 회원가입 후 첫 구매 유저를 세그먼트로 한 번 만들어 보겠습니다.

해당 유저들을 특정하기 위한 필요한 이벤트는 first_visit(첫 방문)과 purchase 이벤트겠죠?

첫 구매 유저를 특정한다고 해도 이를 어떻게 정의하느냐에 따라 결과는 달라집니다! (주의!!)

유저의 행동은 정말 엄청나게 많은 경우의 수로 발생을 하죠. 

A유저 : 구매 의사 결정이 빠른 A유저는 동일한 세션 시간 내에서 구매

B유저 : 구매 의사 결정이 느린 B유저는 어제 상품을 처음 둘러보고 내일 구매

이 예시처럼 첫 구매를 동일한 세션 시간내 첫 구매를 한 유저를 특정할 것인지, 세션에 상관없이 첫 구매 유저를 식별한 것인지 정의하기 나름입니다. 

첫 구매 유저 세그먼트를 만든다면 어떤 조건을 설정해야 될까요? 

사용자 세그먼트를 기준으로 세그먼트를 설정하면 유저의 조건에 해당하지 않는 방문데이터도 포함되게 됩니다.

그러니까 첫 방문 이후 첫 세션에 구매를 하지 않아도 구매를 특정시킨 뒤에 제외 조건을 구매 조건을  2번 이상으로 설정하여 첫 구매한 유저를 식별할 수 있습니다. 

구매를 특정시킨 뒤에 제외 조건을 구매 조건을  2번 이상으로 설정하여 첫 구매한 유저를 식별하는 이미지

 

그런데 first_visit, 첫 구매 사용자의 방문 데이터만 확인하고자 한다면 사용자 세그먼트가 아닌 세션 세그먼트를 기준으로 동일 세션 내의 조건 범위를 선택하여 세그먼트를 생성해야 합니다. 

세션 세그먼트 기준 동일 세션 내의 조건 범위 선택하여 세그먼트 생성하는 화면

첫 구매 유저를 모든 세션 범위 조건으로 하여 세그먼트를 생성하고 재구매자(purchase 이벤트가 2번 이상)와 겹치는 부분이 없는지 세그먼트 중복 기능을 활용해 벤다이어그램으로 확인해 보겠습니다. 

구글 애널리틱스 (GA4) 세그먼트 중복 기능을 활용한 벤다이어그램

중복 없이 잘 나뉘었습니다. 이런 식으로 내가 가진 유저의 특징을 세그먼트로 만들어서 비교해 보는 과정이 굉장히 중요한 것 같습니다.

이 개념을 토대로 한 번 만들어 보시면 좋을 것 같습니다.

결론

GA의 세그먼트는 생각보다 할 수 있는 게 많긴 합니다.

하지만 제대로 활용하기 위해서는 위에 설명한 개념들이 잘 정리가 되어 있어야 됩니다.

이번 글을 쓰면서 느낀 건 솔직히 GA4는 사실 Amplitude를 사용해 봤다면 이런게 다 있나 싶을 정도로 불편하고... 뭔가 찜찜한 느낌을 지울 수 없었습니다.

이번 글에서 첫 구매 유저 세그먼트를 예시로 들었는데 GA4에서 First time purchases라는 측정항목이 존재하긴 하지만

이를 세그먼트로 활용은 못합니다...  약간 독립적인 측정항목 같은 느낌입니다. 

Text Color and Background Change

GA4내 First time purchasers(처음 구매자 수)라는 측정항목의 정의를 진짜 유저의 히스토리컬 데이터를 기반으로 첫 구매 이벤트를 측정한다고 합니다. 이걸 그런데.. 세그먼트로 못쓴다니..

Amplitude에서는 사실 아주 간단하게 첫 구매 유저를 특정할 수 있는 Historical Count 기능이 있어서.. 아쉬웠습니다.

(물론 제약 조건은 있습니다. 날짜 범위가 시작되기 전 최대 1년까지 기간만 포함됩니다. 그래도 이건 혁명적인 기능!)

Amplitude 내 구매완료 조건 설정 예시 화면

본질적으로 GA의 목적은 유저 획득에 초점을 맞춰져 있다면 Amplitude는 Product Analytics 툴로 사용자 행동 분석에 초점이 맞춰져 있긴 합니다. 그래서 목적에 맞지 않아서 해당 기능 개발을 하지 않은 건가 싶기도 합니다. 

당장 앰플리튜드를 도입하지 않을 거라면 속 편하게 GA4에서 First Purchase 이벤트 개발을 요청하거나 혹은 일단 소개드린 방식대로 우선 트렌드만 확인하는 용도로 세그먼트를 생성해서 데이터를 분석하시는 걸 권장드립니다.

GROWTH

퍼포먼스 마케팅이란?

September 6, 2024

전 보통 평일 아침에 운동을 하는데, 끝나고 나면 다른 멤버분들과 이야기를 나누게 됩니다. 아무래도 출근 시간이다보니 스몰톡이 직업 쪽으로 흘러갔습니다. [마케팅]을 하고 계신다고 하시더라고요.

반가운 마음에 전 그로스마케팅을 한다 말해더니 모르는 눈치십니다. [퍼포먼스마케팅]을 하시는 거냐 물었더니 그렇다고 합니다. 어떤 매체를 주로 운영하시냐 했더니 말끝을 흐리십니다.

얘기해보니 그 분의 업무는 <인스타그램 계정 육성> 이었습니다. 특정 부문의 콘텐츠만 게재하는 다수의 계정을 생성해서 ~N만의 팔로워를 가진 계정으로 키우고 광고를 받으며 수익화를 하는죠. 즉 [SNS마케팅]이자 [콘텐츠마케팅]이자 [인플루언서 마케팅]입니다. 저 또한 헷갈렸습니다. 이 또한 퍼포먼스 마케팅일까...?


퍼포먼스 마케팅이란? 정의와 뜻

퍼포먼스 마케팅이란 성과를 측정할 수 있는 마케팅

퍼포먼스는 마케팅은 퍼포먼스(Performance)의 실적, 성과라는 뜻에서 파생됩니다. 즉 퍼포먼스 마케팅이란 성과를 확인할 수 있는 마케팅입니다. 성과란 일의 결과를 뜻하고요.

시험을 보고 성적표를 받듯, 마케팅을 하고 이 일에 대한 성적표를 만들 수 있는 것이 퍼포먼스 마케팅입니다. 어떤 요소에서 얼마나 잘했는지에 대해서 수치 기반의 정량적인 기준으로 평가할 수 있는 거죠.

마케팅에 점수를 매길 수 있는 퍼포먼스 마케팅 표지
마케팅에 점수를 매길 수 있는 퍼포먼스 마케팅

왜 퍼포먼스 마케팅이 생겨났을까요?
마케팅의 성과는 어떻게 확인할 수 있을까요?


퍼포먼스 마케팅 이전에 전통적인 마케팅

전통적인 마케팅은 주로 ATL (Above The Line)에 속하는 전통적인 매체를 통한 것을 말합니다. TV, 라디오, 옥외 광고, 신문 등이 있겠죠.

이러한 매체들은 몇 명에게 노출되었는지까지는 대략 추산할 수 있지만 실제로 그 중에 몇 명이 어느 정도로 관심을 보였는지를 알 수 없습니다.

전통적인 마케팅 ATL 매체 중 TV
전통적인 마케팅 ATL 매체 중 TV

즉 TV가 틀어져있는 가구수는 셀 수 있겠지만, 그 가구 내에서 몇 명의 인원이 영상을 보고 있었는지, 다른 일을 하면서 보고 있었는지 아니면 TV 영상에만 집중하고 있었는지, 그래서 TV 광고에 나온 상품을 인지하게 되었는지 상호 작용이 불가능하므로 알기 어렵습니다.

라디오나 옥외광고도 마찬가지로, 라디오가 청취수는 알겠으나 청취수는 청취자수와 일치하지 않고 옥외광고의 경우 그 앞을 지나간 사람들을 추산할 수 있을 뿐입니다. 그러므로 전통적인 마케팅에서의 ATL 매체는 성과를 정확하게 측정하기가 어렵습니다.


퍼포먼스 마케팅의 중요성

마케팅에 돈을 쓴 만큼 얼마나 벌었는지 알고 싶겠죠?

그래서 비즈니스에서는 ROI를 묻습니다. 투자금 대비 이익률이죠. (이익-마케팅 비용)/(마케팅 비용)의 수식으로 비용 대비 매출이 아닌 [이익]의 수준을 봅니다.

마케팅에서는 주로 ROAS를 봅니다. (마케팅에 의한 매출)/(마케팅 비용)의 수식입니다. 여기서 주목할 점은 <마케팅에 의한 매출>입니다.

Text Color and Bold Change 전체 매출 중 마케팅이 기여한 매출은 얼마일까요?

마케팅에 의한 매출 = 마케팅에 의한 성과, 이를 알고 싶었기 때문에 성과(매출)을 측정할 수 있는 퍼포먼스 마케팅이 중요해졌다고 볼 수 있습니다.


퍼포먼스 마케팅의 주요 지표

CPM (Cost Per Mile), CPC (Cost Per Click), CTR (Click-Through Rate), CVR (Conversion Rate), CPA (Cost Per Action)

  • CPM (Cost Per Mile) 노출 1,000회당 비용
  • CPC (Cost Per Click) 클릭당 비용
  • CTR (Click-Through Rate) 클릭률
  • CVR (Conversion Rate) 환율
  • CPA (Cost Per Action) 목표 행동당 비용 *여기서의 목표 행동은 가입, 구매 등으로 협의 하에 정의할 수 있습니다.

메타 페이스북 광고 관리자 캠페인 대시보드 화면
페이스북 광고관리자에서의 퍼포먼스 마케팅 지표


퍼포먼스 마케팅 전략

#1 사용자 관점의 타겟팅 및 세분화

특정 브랜드에서 마케팅을 운영한다고 할 때, 사용자는 신규와 기존으로 나눌 수 있습니다. 신규는 우리를 모르는 사람들, 기존은 우리를 아는 사람들로 정의할 수 있겠으나 [안다/모른다]의 상태를 명확하게 구별해줄 수 있는 변인이 필요합니다.

대개 이 상태를 [가입] 행동으로 구분합니다. 즉 이미 우리 브랜드의 회원인 사용자는 기존, 비회원인 사용자는 신규가 되는 것이죠. 이와 같이 신규 사용자를 대상으로 하는 마케팅을 사용자 획득: UA (User Acquisition) 이라고 합니다.

Text Color Change

마켓컬리의 가입하면 990원 또는 배달의 민족의 배민 처음이라면~ N만원 할인 등의 프로모션을 주 내용으로 신규 회원을 유치하는 마케팅하는 것이 UA 마케팅입니다.

Image Row
마켓컬리 추천 프로모션 페이지 화면 배달의 민족 첫이용자 100원 프로모션 화면

#2 매체 관점의 광고 플랫폼 운영

인지도 증대 및 관심 유도에 유효한 [배너 광고]

  • YouTube 광고: 높은 도달률과 시각적 임팩트를 통해 브랜드 인지도 향상
  • Facebook/Instagram 광고: 다양한 타겟팅 옵션과 시각적 콘텐츠로 인지도 상승
  • Naver 디스플레이 광고: 한국 최대 포털 사이트를 통한 높은 도달률
  • Tiktok 광고: 젊은 층 대상 바이럴 효과와 인지도 상승
  • Google 디스플레이 네트워크 (GDN): 관련 사이트에서 배너 광고를 통해 관심 유발
  • Kakao 광고: 카카오톡과 다음을 통한 개인 맞춤형 광고

배너 광고 매체들은 마케터가 아니어도 익숙한 이름들입니다. 말 그대로 '배너'가 노출되어야 하기 때문에 많은 수의 사용자를 확보하고 있는 플랫폼이어야 경쟁력이 있기 때문이죠.

Text Color and Bold Change 이에 유튜브, 페이스북/인스타그램, 네이버, 틱톡, 구글, 카카오 등이 주요 광고 매체로 여겨집니다.

의사결정 및 구매 전환에 유효한 [검색 광고]

  • Google 검색 광고 (Google Ads): 특정 키워드 검색 시 상위 노출로 구매 의사결정 유도
  • Naver 검색 광고: 한국에서 높은 검색 트래픽을 통해 직접적인 전환 유도

Text Color and Bold Change 배너 광고에 의해서 상품이나 브랜드, 플랫폼을 인지하고 관심을 갖게 된 유저는 이후 전환 행동 전에 '검색'이라는 행동을 하게 됩니다. 이 때 검색 광고가 노출됩니다. 사용자 여정 내에서는 전환에 가까운 단계이기도 하고 사용자가 이미 구매 의도를 가지고 있다고 볼 수 있기에 검색 광고는 배너 광고 대비 전환율이 높은 것이 특징적입니다.

Image Row with Caption
네이버 마케팅 검색 시 파워링크 노출 화면 네이버 퍼포먼스 마케팅 검색 시 스폰서 노출 화면
네이버의 파워링크 및 구글의 스폰서 (검색 광고)

#3 A/B 테스트와 최적화

A/B 테스트는 원칙적으로 대조군(Control Group)과 실험군(Experimental Group)을 나누어 다른 모든 환경이 동일하다고 할 때, 한 가지의 변인을 다르게 하여 그 변인의 영향도를 실험하는 것입니다.

광고 집행 시, 모든 외부 요인을 통제할 수 없기 때문에 그 부분을 감안하고 광고 셋팅(타겟팅 등)이나 소재를 A/B 테스트 해볼 수 있습니다. 특정 상품의 경우 소재에서 어떤 내용을 강조할지가 주요 테스트 내용이 됩니다. 1. 개발스토리 2. 리뷰 3. USP 4. 가격 등 강조할 수 있을만한 것들을 제일 메인 요소로 활용해보는 것입니다. A/B 테스트는 매우 큰 개념으로 마케팅에서도 매체, 세팅/타겟팅, 소재 기획/제작 등에서 다양하게 적용될 수 있습니다.

소재에서 강조할 내용 4가지: 개발스토리, 리뷰, USP, 가격


퍼포먼스 마케팅 목표

목표(KPI: Key Performance Index)에 따라 다른 캠페인 셋팅

1. 인지도 증대 (Awareness)

'트래픽' 캠페인으로도 불립니다. 불특정 다수(오픈타겟, 논타겟)에게 최대한 많은 도달/노출을 이루어 제품의 인지도 향상과 클릭에 의한 유입, 트래픽을 의도합니다.

2. 관심 유도 (Interest)

타겟 세팅 시 관심사를 설정하여, 다른 행동으로 특정 관심사를 가진 것으로 추론되는 사용자들에게 소재를 노출할 수 있습니다. 혹은 관련도가 높은 웹사이트로 노출 위치를 설정할 수 있습니다.

3. 의사 결정 및 구매 전환 (Decision & Action)

구매 의도 있는 상태에서 특정 키워드를 검색했을 시 광고가 노출되거나, 이전에 방문했던 사용자를 대상으로 재방문 등을 유도할 수 있습니다.

Image Row
페이스북 광고 캠페인 목표 선택 화면 캠페인 세팅 내 타겟 정의 예시 화면


퍼포먼스 마케팅 도구 및 성과 측정

측정을 위해 필요한 UTM Builder와 Google Analytics

배너 광고든 검색 광고든 각 매체를 통해서 광고가 운영이 되면 관심을 가진 사람들이 클릭하여 설정해둔 페이지로 유입됩니다.

이 때, 페이지에 유입된 사용자가 100명이라고 할 때 (이 100명을 정확하게 구분하는 것도 꽤 어려운 일입니다...) 100명이 [배너 광고]를 보고 왔을지 [검색 광고]를 보고 왔을지 [배너 광고]도 보고 [검색 광고]도 보고 왔을지, [배너 광고]만 보고 10일 후에 페이지 주소를 입력해서 들어왔을지...

유입 경로 파악이 필요합니다.

어떤 채널, 어떤 매체로 들어왔을지 유입 경로를 알고 싶다면 매체에 광고를 세팅할 때 URL에 UTM이라는 변수를 붙여준 후 이를 Google Analytics로 측정해야 합니다.

Text Color and Bold Change UTM의 소스, 매체에 입력한 값에 따라 GA에서는 유입 성과를 구분하여 보여줍니다.

URL Builder의 소스(source) 및 매체(medium) 설정 화면 | 구글 애널리틱스 URL Builder 웹사이트
URL Builder의 소스(source) 및 매체(medium)
구글 애널리틱스 사용자 획득 내 트래픽 획득: 세션 소스/매체 확인 페이지
GA 내 [소스/매체]로 성과 보기

유상 광고의 경우 모든 광고 매체에서 관리자(Admin) 페이지를 지원하며 성과를 측정하여 보여주는데 굳이 구글 애널리틱스를 봐야하는 이유가 뭘까요?

Text Color and Bold Change 매체 별 광고 관리자에서는 성과를 자기 매체만 고려하여 측정하기 때문입니다. 대부분의 퍼포먼스마케팅은 한 개의 광고매체만 쓰지 않고 적어도 2개, 많개는 열댓개의 광고 매체를 쓰게 되는데요. 그렇다 보면 성과 측정에 대한 문제가 발생합니다.

성과 집계의 중복

자사몰에서의 단 한 건의 성과가 메타에서도 성과로 집계하고, 네이버에서도 성과로 집계하고, 구글에서도 성과로 집계될 수 있습니다. 자사몰 데이터 기준 전환 1건이, 광고 관리자 기준 전환 3건이 될 수 있는 것이죠. 그렇기에 매체 별 광고관리자만을 사용해서 성과를 측정하지 않고 웹으로 랜딩되는 경우 구글 애널리틱스(Google Analytics)를 주로 사용하는 것입니다.

사용자의 첫 행동인 유입 분석 설명 이미지
기여기간 7일 동안, 페북>카카오>구글>페북 광고 순으로 클릭했다면?

기여 기간 및 기여 모델

광고 매체가 전환에 기여한 기준은 기간과 방식에 따라 달라질 수 있습니다. 기여 기간을 1일로 설정한다면 3일 전 클릭한 성과는 인정되지 않을 수 있습니다. 기여 모델은 라스트 터치, 퍼스트 터치, 멀티 터치 등으로 구분되고 약 일주일 간 광고를 운영했을 때 (메타, 네이버, 구글 등)

- 사용자가 구매하기 전 마지막으로 누른 광고 매체가 가장 크게 기여했다고 한다면 > 라스트 터치 (Last touch) 모델,

- 사용자가 구매하기 전 처음으로 누른 광고 매체가 가장 크게 기여했다고 한다면 > 퍼스트 터치 (First touch) 모델입니다.

Boxed Text
Case 1. 랜딩 페이지가 Web 이라면
Boxed Text
Case 2. Web으로 랜딩 후 App 설치를 유도한다면
Boxed Text
Case 3. 앱스토어로 랜딩 후 App 설치를 유도한다면

Text Color and Bold Change 마케팅 집행 이후 랜딩페이지의 플랫폼 (Web, App)에 따라 유입 경로를 파악하여 성과를 측정하는 것은 점차 난이도가 높아집니다. Web까지는 url에 붙어있는 utm 파라미터로 파악이 된다면, 앱스토어부터는 정보값이 유실되기 때문입니다

그에 따라 MMP(Mobile Measurement Partner)로 통칭되는 Appsflyer, Airbridge, Adjust와 같은 SDK를 붙이는 등의 추가 tracker가 필요합니다.

앱 캠페인 성과 분석을 위한 수많은 MMP 솔루션 모음 이미지

보통은 이 부분에서 가장 많은 어려움을 겪습니다. GA와 MMP, 여기서 CRM 솔루션(Braze, Insider 등) 이나 PA(Product Analytics: Amplitude, Mixpanel 등) 솔루션까지 쓴다면 솔루션 내의 데이터 정합성을 맞추는 것 등의 관리가 복잡해지기 때문입니다.


퍼포먼스 마케팅 성과 측정

솔루션(Google Analytics, Appsflyer, Amplitude, Airbridge) 및 태블로(Tableau), 루커(Looker) 스튜디오, 구글 스프레드 시트 등

마케팅 웹(Web) 캠페인의 성과는 웹페이지로 랜딩되기에 GA만으로도 측정이 수월합니다. 문제는 앱설치를 목표로 앱스토어로 랜딩시키면서 시작됩니다. 그래서 보통 앱 성과 데이터를 측정하기 위핸 MMP (앱스플라이어/Appsflyer, 에어브릿지/Airbridge, 애드저스트/Adjust 등)을 도입하는데요.

Text Color and Bold Change 광고 매체를 개별 관리자에서 보면 데이터 정합성에 문제가 생겼듯이, 해당 솔루션들의 데이터 또한 결국 통합적으로 모아 활용해야합니다.

데이터 파이프라인 예시
데이터파이프라인 예시

위의 데이터파이프라인 예시처럼, 구글 애널리틱스의 웹 데이터 앱스플라이어의 앱 데이터, 기타 광고 매체들의 광고 데이터를 모아 구글 빅쿼리에 적재하고 이를 태블로를 통해서 대시보드로 제작합니다.

광고의, 매출의, 배너의 성과를 한 판에 볼 수 있는 대시보드 예시
광고의, 매출의, 배너의 성과를 한 판에 볼 수 있습니다.

다양한 시각적 형태로, 다양한 성과를, 다양한 차원으로 볼 수 있습니다. 커머스의 배너 성과를 볼 수도 있고, 상품/카테고리/브랜드의 매출 성과를 볼 수 도 있고, 광고 성과를 볼 수도 있습니다. 유입된 광고 매체에 따라 유저들의 LTV로 대변되는 충성도가 다른지도 확인할 수 있고요.


가장 중요한 것은 <측정> 입니다.

처음의 의문으로 돌아가자면, 인스타그램 계정 키우기도 어떤 측면에서는 퍼포먼스 마케팅으로 볼 수 있겠습니다. '측정'이 가능하기 때문입니다. 콘텐츠를 올리면서 올라가는 팔로워수, 피드의 좋아요수 및 댓글수 그리고 릴스의 조회수 등으로 계정의 성장을 숫자로 '측정'할 수 있습니다.

최근 읽은 '순서 파괴'라는 책에서 인상 깊게 읽은 부분이 있습니다. 아마존의 주요 구성원들이 아마존의 일하기 방식에 대해서 쓴 책입니다.

아마존에서는 목표를 설정할 때 아래 다섯 개 요소를 반영한다고 합니다.

  • 구체적이면서 (Specific)
  • 측정 가능하고 (Measurable)
  • 달성할 수 있으며 (Attainable)
  • 의미가 있고 (Relevant)
  • 시기가 분명해야 한다 (Timely)

이 중 저에게 가장 와닿았던 것은 측정에 관한 것이었습니다.

Text Color and Bold Change [측정] Measure
Text Color and Bold Change 데이터를 수집하고 유용한 포맷으로 이를 제시하는 일에 집중해야 한다. 원하는 데이터가 종종 서로 다른 시스템에 산재해 있을 수 있고, 데이터를 엮고 종합하여 올바르게 나타나기 위해서는 소프트웨어의 사용이 필요할 수도 있다. 이때 타협은 금물이다. 투자가 필요하다. 이 단계에서 투자하지 않으면 중요한 비즈니스를 그저 '감'에 의존해 위태롭게 이끌어갈 수 있다.