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

FULL FUNNEL

Basic KPI 대시보드 | 루커스튜디오 템플릿

July 19, 2024

루커스튜디오 Basic KPI 대시보드 메인 이미지
BASIC KPI 대시보드 | 루커스튜디오 템플릿

BASIC KPI 대시보드 | 루커스튜디오 템플릿
BASIC KPI 대시보드 | 루커스튜디오 템플릿

KPI 대시보드 템플릿을 활용하여 비즈니스 주요 지표를 확인하며 데이터 기반 의사결정에 활용할 수 있습니다. 매출, 이익, 구매수 등 특히 지역별 구매 관점의 분석을 통해 실행 가능한 인사이트를 제공합니다.

KPI 대시보드 템플릿

💡루커스튜디오 URL

대시보드 데모 보기

사용 방법

1. 스프레드시트 사본 만들기

스프레드 시트 사본 만들기
BASIC KPI 대시보드 | 루커스튜디오 템플릿

2. 루커스튜디오 사본 만들기 클릭

루커스튜디오 대시보드 사본 만들기
BASIC KPI 대시보드 | 루커스튜디오 템플릿

  • 새 데이터 소스의 경우 기존에 만든 스프레드시트가 대시보드에 사용되지 않았다면 리스트에 뜨지 않습니다. 그냥 아무 데이터나 선택하고 보고서 복사를 진행합니다.

보고서 복사 화면
BASIC KPI 대시보드 | 루커스튜디오 템플릿

3. 리소스 → 추가된 데이터 소스 관리 클릭

추가된 데이터 소스 관리 화면
BASIC KPI 대시보드 | 루커스튜디오 템플릿

4. 작업 → 수정 클릭

작업 → 수정 클릭 화면
BASIC KPI 대시보드 | 루커스튜디오 템플릿

5. 루커스튜디오와 스프레드시트 연동 승인 진행

  • 스프레드 시트 소유 계정과 루커스튜디오 소유 계정이 일치해야 합니다.
루커스튜디오와 스프레드시트 연동 화면
BASIC KPI 대시보드 | 루커스튜디오 템플릿

6. 앞서 사본을 만들었던 파일 찾아서 연결

  • 소유한 문서함 → 스프레드시트(Sample KPI Superstore) → 워크시트(Order) → 다시연결
스프레드 시트 연결 화면
BASIC KPI 대시보드 | 루커스튜디오 템플릿

7. 데이터 새로고침하면 데이터 확인이 됩니다.

  • 이후 스프레드시트의 복사본의 형식에 맞춰서 가지고 계신 KPI 수치를 업데이트 하면 해당 대시보드에서 변경된 데이터로 활용 가능합니다.
데이터 새로고침 확인 화면
BASIC KPI 대시보드 | 루커스튜디오 템플릿

활용 방법

  • 지난달 대비 이번달 매출액은?
  • 매출 대비 순이익은?
  • 구매수와 상품총 구매수의 트렌드 차이는?
  • 연도별 월별 매출 트렌드의 차이는?
  • 지역별 매출액의 차이는?

원본 포스팅 링크

Basic KPI 대시보드 | 루커스튜디오 템플릿

GROWTH

1. 웍스아웃: 프로모션 대시보드

July 18, 2024

0. 개념설명

프로모션 분석이란?

프로모션 분석은 마케팅 캠페인의 일환으로 진행된 다양한 프로모션 활동들의 효과를 평가하고 측정하는 과정입니다. 이 과정을 통해 기업은 프로모션 활동이 소비자의 구매 결정, 브랜드 인식, 시장 점유율 등에 미치는 영향을 분석할 수 있습니다. 프로모션 분석을 위해 판매 데이터, 소비자 행동 데이터, 온라인 트래픽 데이터 등 다양한 데이터 소스를 활용할 수 있습니다.

프로모션 분석의 필요성

프로모션 분석은 기업이 자원을 효율적으로 배분하고, 마케팅 목표를 달성하기 위해 필수적인 과정입니다. 이를 통해 기업은 다음과 같은 이점을 얻을 수 있습니다.

  • 효과적인 프로모션 전략 수립: 어떤 프로모션이 고객의 구매를 유도하고, 브랜드 인지도를 높이는 데 효과적인지 파악할 수 있습니다.
  • ROI 최적화: 프로모션에 대한 투자 대비 수익률(ROI)을 측정하고, 마케팅 예산을 더 효과적인 프로모션에 집중할 수 있습니다.
  • 시장 이해도 향상: 소비자 반응을 분석함으로써 시장의 현재 요구와 트렌드를 더 잘 이해할 수 있습니다.
  • 경쟁력 강화: 경쟁사 대비 우위를 점할 수 있는 마케팅 전략을 개발하고 실행할 수 있습니다.

개별 프로모션 분석 vs 통합 프로모션 분석

  • 개별 프로모션 분석
    • 특징
      • 한 번에 하나의 프로모션 활동만 평가합니다.
      • 구체적인 프로모션의 성공 여부와 직접적인 효과를 분석합니다.
    • 장점
      • 간단하고 명확한 결과 제공
      • 특정 프로모션의 직접적인 효과를 빠르게 평가 가능
    • 단점
      • 다른 마케팅 활동과의 상호작용을 고려하지 않음
      • 장기적인 효과나 전체적인 마케팅 전략과의 연계성 부족
  • 통합 프로모션 분석
    • 특징
      • 여러 프로모션 활동을 함께 분석하여 전체적인 마케팅 전략의 효과를 평가합니다.
      • 프로모션 간의 상호작용 및 시너지 효과를 고려합니다.
    • 장점
      • 전략적인 의사결정 지원
      • 장기적인 브랜드 가치와 고객 관계를 고려한 분석
      • 장기적인 효과나 전체적인 마케팅 전략과의 상호작용 이해 가능

개별 프로모션 분석과 통합 프로모션 분석을 함께 분석해야 하는 이유

개별 프로모션 분석과 통합 프로모션 분석을 함께 수행함으로써, 보다 정교하고 효과적인 마케팅 전략을 개발할 수 있으며, 이는 최종적으로 기업의 성장과 수익성 향상에 기여하게 됩니다.

1. 전체적인 마케팅 전략의 효율성 평가

개별 프로모션 분석을 통해 특정 프로모션의 성공 여부를 파악할 수 있지만, 통합 프로모션 분석을 함께 수행하면 여러 프로모션 간의 상호작용과 그 영향을 이해할 수 있습니다. 이는 전체 마케팅 전략의 효율성을 평가하는 데 중요합니다.

2. 다채널 프로모션 전략의 최적화

현대 마케팅은 다양한 채널을 통해 이루어집니다. 개별 프로모션 분석과 통합 분석을 병행함으로써, 각 채널의 성과를 정확히 파악하고, 채널 간 시너지를 극대화하는 전략을 수립할 수 있습니다.

3. 고객 행동의 종합적 이해

고객은 다양한 프로모션에 노출되며, 이러한 노출이 고객의 구매 결정에 복합적으로 작용합니다. 개별 프로모션 분석과 통합 분석을 결합함으로써, 고객 행동의 더 깊은 이해를 도모할 수 있습니다.

4. 마케팅 자원의 효율적 배분

통합 프로모션 분석을 통해 얻은 인사이트는 마케팅 자원의 효율적인 배분을 가능하게 합니다. 각 프로모션의 효과를 개별적으로뿐만 아니라 전체적인 관점에서 평가함으로써, 예산을 더 효과적인 프로모션에 집중할 수 있습니다.

5. 장기적 마케팅 전략 수립

개별 프로모션의 성공은 단기적인 성과에 초점을 맞출 수 있지만, 통합 프로모션 분석은 장기적인 관점에서 마케팅 전략을 수립하는 데 도움을 줍니다. 다양한 프로모션의 장기적인 영향력과 지속 가능성을 평가할 수 있습니다.

6. 경쟁 우위 확보

통합 프로모션 분석을 통해 시장 내 경쟁 상황과 자사의 위치를 종합적으로 이해하고, 경쟁 우위를 확보할 수 있는 전략을 수립할 수 있습니다. 이는 경쟁사 대비 우위를 점하는 데 중요한 역할을 합니다.

1. 진행배경

고객사 상황 및 해당 대시보드를 제작하게된 이유

고객사에서는 프로모션 분석 진행 시 앰플리튜드를 통한 단일 프로모션 위주의 분석만을 진행했었습니다.

단일 프로모션 분석 진행 예시

앞서 언급했듯이 단일 프로모션 분석만 진행하게 된다면 결과적으로 장기적인 효과나 전체적인 마케팅 전략과의 연계성이 부족해지는 문제가 있습니다.

이러한 문제를 해결하기위해 프로모션을 통합적으로 확인하는 것에 대한 필요성이 대두되었습니다. 먼저, 통합 프로모션 분석을 위해 1차적으로 앰플리튜드를 통해 얻은 개별 프로모션별 데이터를 스프레드시트에서 취합해 프로모션들끼리 비교하며 인사이트를 도출했습니다.

프로모션 통합 분석 시트 예시

하지만 시트를 통해 프로모션을 비교 분석하는 것에는 크게 2가지 정도의 한계가 있었습니다.첫째, 프로모션이 진행될 때마다 데이터를 확인하고, 직접 시트에 옮기는 작업을 해야 하기 때문에 자동화가 어렵다는 점입니다.둘째, 시트에 텍스트로만 적혀있다보니 해당 데이터가 무엇을 의미하는지 직관적으로 인지하기가 어렵다는 점입니다.이러한 한계를 극복하기 위해 고안한 것이 전체 프로모션을 한눈에 파악할 수 있는 대시보드를 구현하는 것이었습니다.

2. 진행과정

대시보드는 태블로(Tableau)를 사용하여 구현했습니다.

태블로(Tableau) 로고

태블로는 데이터를 분석하고 시각적으로 표시할 수 있는 비즈니스 인텔리전스(BI)툴입니다. 태블로를 통해 대시보드를 제작했을 때의 장점은 다음과 같습니다.

1. 여러 raw 데이터 통합: 태블로는 스프레드시트, 데이터베이스, 클라우드 서비스 및 빅데이터 플랫폼과 같은 다양한 데이터 원본들을 원활하게 통합됩니다. 이러한 통합을 통해 다양한 소스의 데이터를 연결 가능하게 하여 데이터 사일로를 해결하고 포괄적인 분석을 가능하게 합니다.데이터 사일로(Data Silo*)**란? 서로 분리되어 기업의 다른 부서에서 액세스할 수 없는 데이터 스토리지 및 관리 시스템을 의미하며, 이는 전사관점의 의사결정을 방해하고, 비효율성이 증가시킵니다.

  • 예시: Excel 스프레드시트에 저장된 판매 데이터와 SQL 데이터베이스에 저장된 고객 데이터가 있다고 가정합니다. Tableau는 두 원본에 동시에 연결할 수 있으므로 데이터를 혼합하고 시각화하여 판매와 고객 인구 통계 간의 관계에 대한 인사이트를 얻을 수 있습니다.

2. 실시간 데이터 시각화: 태블로는 라이브 데이터베이스 및 스트리밍 데이터를 비롯한 다양한 데이터 원본에 연결하여 실시간으로 데이터 업데이트할 수 있습니다. 이 기능을 사용하면 변경되는 데이터를 빠르게 모니터링하고 분석하여 빠른 의사 결정을 위한 시기적절한 통찰력을 제공할 수 있습니다.

3. 다양한 시각화 옵션: 태블로는 막대 차트, 선 차트, 산점도, 지도 등을 포함하여 다양한 시각화 옵션을 제공합니다. 정보를 효과적으로 전달하기 위해 데이터에 가장 적합한 시각화 유형을 선택할 수 있습니다.

4. 대화형 대시보드: Tableau를 사용하면 사용자가 직접 데이터를 탐색하고 상호 작용할 수 있는 고도의 대화형 대시보드를 만들 수 있습니다. 사용자는 세부 정보를 드릴다운하고, 데이터를 필터링하고, 임시 분석을 수행하여 데이터 탐색의 깊이를 향상할 수 있습니다.

2-1. 대시보드 스케치

통합 프로모션 분석을 위해 정의한 스케치입니다. 해당 스케치는 피그마(Figma)를 통해 작업했습니다. 스케치를 피그마로 제작한 이유는 여러가지가 있는데, 그 중 가장 중요한 이유는 피그마가 다양한 디자인 도구와 기능을 제공하기 때문에 원하는 디자인을 쉽고 효율적으로 제작할 수 있기 때문이었습니다.

웍스아웃 프로모션 분석 대시보드

스케치 대시보드를 기준으로 필요한 데이터를 정리해보면 데이터는 크게 3가지로 분류할 수 있습니다.

1. 프로모션 데이터

2. 매출 데이터

3. CRM 데이터

프로모션명, 진행일자, 분류, 컨셉 등 프로모션 진행 관련 기본 정보 및 프로모션 관련 아이템 정보가 프로모션 데이터에 해당하며, 각 프로모션에 관련된 실제 결제 정보가 매출 데이터에 해당합니다. 마지막으로 유저들에게 발송된 메시지의 발송일 및 캠페인명, 발송수 등이 CRM 데이터에 해당합니다.

웍스아웃 프로모션 분석 대시보드 - 프로모션 및 매출 정보 확인

2-2. 필요 데이터 정의 및 추출

필요 데이터 정의 및 추출

필요 데이터 정의

다음으로 앞서 정리한 데이터를 좀 더 구체적으로 정리합니다. 각 항목별 필요한 정보가 정확히 무엇인지, 해당 데이터는 형태로 관리되어야 하는지를 비롯해 각 데이터를 연결하기 위해 어떤 컬럼을 키값으로 사용해야 하는지 등을 파악하여 정리합니다.

필요 데이터 정의 및 분류 예시

이때 테이블 색상에 차이를 두어 각 데이터가 어떤 소스에서 관리되는지 직관적으로 파악할 수 있도록 합니다.

데이터 테이블 색상 차이 설명

데이터 추출 요청 및 추출

필요 데이터 정의를 완료했다면, 데이터 추출을 위해 해당 데이터에 대해 알맞은 형태로 적재를 요청하는 단계가 필요합니다. 효율적인 작업을 위해 원하는 이벤트 및 세부 항목(*이벤트 프로퍼티, 유저 프로퍼티, 적재형식, 적재기준일, 요청사유 등) 관련 내용을 최대한 상세하게 기입합니다.

데이터 추출 요청 예시

원하는 이벤트 및 세부 항목을 작성한 다음에 해당 내용을 정확히 어떤 형태로 적재되기 원하는지를 보여주는 샘플을 함께 작성합니다.

이벤트 데이터 샘플링 예시

2-3. 데이터 연결

Amplitude → Bigquery → Tableau

이제 데이터 연결을 진행해야 합니다. 해당 프로젝트에는 구글 스프레드시트, 엑셀 파일, 구글 클라우드(빅쿼리)의 소스가 사용되었습니다. 저는 그 중 ‘구글 클라우드’에 초점을 맞추어 데이터 연결과정에 대해 설명하려고 합니다.

앰플리튜드에서 태블로로의 데이터 전송

구글 클라우드를 사용한 이유는 무엇일까요? 그 이유는 앰플리튜드(Amplitude)에 있는 매출 데이터를 연결하기 위함입니다. 앰플리튜드는 그 자체로 사용성이 높이며, 매출 데이터를 비롯하여 많은 데이터를 손쉽게 확인할 수 있는 툴입니다.

하지만 지금과 같이 더 많은 내용을 확인하기 위해서는 다른 로데이터와 결합을 해서 데이터를 확인하는 과정이 필요합니다. 이 때, 앰플리튜드에서 태블로로 데이터를 바로 전달할 수는 없습니다.

앰플리튜드에서 태블로로의 데이터 전송 시 필요사항

태블로로 데이터를 전송하기 위해서는 앰플리튜드의 로데이터를 가공하여 알맞은 형태로 테이블을 가공해주는 선행작업이 필요합니다. 앰플리튜드와 연동이 가능할 뿐만아니라 태블로와의 연동도 가능해야 하며 무엇보다 앰플리튜드로부터 전달받은 로데이터를 가공할 수 있는 플랫폼이여야합니다.

이 작업을 수행할 수 있는 플랫폼은 무엇일까요? 저희는 이러한 요건을 모두 고려할 때 해당 작업을 수행하기에 가장 적합한 것이 Google BigQuery라고 판단했고, 이를 활용하기로 했습니다.

앰플리튜드에서 태블로로의 데이터 전송 시 필요한 구글 빅쿼리

앰플리튜드는 기본적으로 빅쿼리로 데이터를 바로 내보내는 기능을 제공합니다. 우선 해당 기능을 활용해 앰플리튜드 데이터를 빅쿼리에 내보내는 작업을 진행했습니다.

앰플리튜드에서 빅쿼리로 데이터 전송

해당 방법을 통해 데이터를 받아올 경우, 이벤트 프로퍼티가 분리된 표 형식으로 넘어오는게 아니라 json이라는 괄호 안에 키와 값형태로 구성돼 있는 포맷(*”{”~”}”)으로 데이터가 불러와지는 문제가 발생했습니다.

태블로는 표 형태의 데이터 프레임을 인식하므로, 태블로에 데이터를 연결하기 위해서는 앰플리튜드  로데이터를 전처리하는 과정이 필요했습니다.

이벤트 프로퍼티 전처리 전 모습

해당 데이터를 전처리하기 위해서는 로데이터의 형태를 파악해야 했습니다. 데이터를 확인한 결과, 텍소노미에 따라 로데이터의 구조가 다를 수 있음을 확인했습니다.

구매 이벤트의 경우 아이템 수량이 1개일 경우에는 값으로, 2개 이상일 경우에는 배열로 이벤트 프로퍼티 데이터가 들어오는 구조였습니다.

  • 아이템 수량=1인 경우
{"item_brand":"A",
"item_category":"JAJL",
"item_id":"99999",
"item_name":"GARAGEJACKET",
"item_price":"198000",
"order_id":"20240310105120687",
"total_order_items_quantity":1
…}
  • 아이템 수량=2 이상인 경우
{"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()함수를 사용할 경우 단점이 있었습니다.이 함수는 배열 내 각 요소를 별도의 행으로 확장하는 기능을 제공하기 때문에 비정규화된 데이터나 중첩된 데이터 구조를 다룰 때 필수적입니다. 그러나 비용관리의 관점에서 주의가 필요하다는 단점이 있습니다. UNNEST() 함수는 배열 내의 각 요소를 별도의 행으로 확장하기 때문에 배열에 많은 요소가 포함되어 있을 경우, 결과 데이터 세트의 크기가 급격히 증가할 수 있습니다. 이는 쿼리 처리 시간을 늘리고 처리해야 할 데이터 양이 증가함으로써 비용이 증가하는 원인이 될 수 있으며, 처리한 데이터 양에 따라 비용이 청구되는 빅쿼리에서는 쿼리 비용의 증가로 이어질 수 있습니다.

실제 프로젝트를 진행하면서 해당 쿼리문을 사용해 약 한달 간 매 시간마다 업데이트 되도록 쿼리를 돌려본 데이터 업데이트를 진행한  결과, 총 8GB를 사용해 월 40만원 가량의 비용이 소진되었습니다. 따라서 비용 효율성 측면을 고려해 전처리를 클라우드 SQL구문이 아닌 파이썬 코드로 처리하도록 우회했습니다.

앰플리튜드의 데이터를 빅쿼리로 바로 내보내는 것이 아니라 앰플리튜드 서버를 호출하여 데이터를 받아오는 방식으로, 빅쿼리에서 로우 데이터를 쌓은 후 이를 전처리하는 방식 대신 전처리를 완료한 후 가공된 데이터를 빅쿼리에 쌓는 방식으로 변경했습니다.

Amplitude → Google Cloud Storage → Bigquery → Tableau

즉, 기존 Amplitude → Bigquery → Tableau의 단계에서 데이터 전처리를 위해 Google Cloud Storage를 추가한 Amplitude → Google Cloud Storage → Bigquery → Tableau 단계로 진행됩니다.

데이터 전처리 과정 도식화

이 작업을 위해서는 우선 앰플리튜드와 Google Cloude Storage를 연결하는 작업을 진행해주어야 합니다. 먼저 Cloud Storage에서 고객사 프로젝트 관련 Bucket을 생성합니다.

Cloud Storage Bucket 생성 화면
Cloud Storage Bucket 세부 설정 화면

다음으로 IAM 및 관리자 → 서비스 계정을 클릭하여 새로운 서비스 계정을 생성합니다.

서비스 계정 생성 화면

서비스 계정을 생성한 후, 해당 서비스 계정에 해당하는 이메일을 확인합니다.

서비스 계정 이메일 확인

키 → 키 추가를 클릭하여 키를 생성합니다.

키 생성 화면
JSON 유형 키 생성 화면

IAM 및 관리자 → 역할을 클릭하여 새로운 역할을 생성합니다.  Send Amplitude Event Data to Google Cloud Storage(문서링크)를 참고해서 역할에 다음 5개의 권한을 부여해줍니다.

  • storage.buckets.get
  • storage.objects.get
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.list

새로운 역할 생성 및 권한 부여 화면

앞서 생성한 버킷으로 돌아가서 권한을 클릭한 후 액세스 권한 부여를 클릭합니다.

버킷 액세스 권한 부여

서비스 계정에서 추가한 새로운 계정에 해당하는 이메일을 입력한 후, 역할을 지정해줍니다.이때 역할은 1.저장소 기존 버킷 소유자와 2.역할 만들기를 통해 생성한 역할, 총 2개를 부여해줍니다.

새로운 계정 역할 부여 화면

해당 작업까지 완료했으면 앰플리튜드에서 Google Cloude Storage를 연결하는 작업을 진행해주어야 합니다. 앰플리튜드  Data → Destination에서 Google Cloud Storage를 클한 후 GCS로 보낼 데이터를 선택합니다.

앰플리튜드에서 Google Cloud Storage로 데이터 전송

서비스 계정 생성에서 생성한 JSON키 파일을 Service Account Key에 업로드 한 후, 하단의 Bucket Name에 구글 GCS에서 생성한 버킷 이름을 입력해줍니다.

JSON키 파일 업로드 화면

해당 과정을 성공적으로 마치면 Google Cloud Storage Bucket에 데이터가 들어옵니다.

 Google Cloud Storage Bucket 화면

연동이 완료되면 다음과 같이 생성됩니다.

*merged ID 된 데이터 : -000000/ , raw 데이터: 000000/ → 우리가 사용하게될 데이터는 000000/ (raw 데이터)
  • 압축된 아카이브 JSON 파일로 매 시간 내보내지고 시간 당 하나 이상의 파일로 시간별로 분할
    • 파일명: projectID_yyyy-MM-dd_H#partitionInteger.json.gz

앰플리튜드는 export API라는 서비스를 제공하므로 이 API를 호출하여 데이터를 불러올 수 있습니다. 파이썬의 request모듈로 API요청을 보내는 함수를 구현하고, 다음으로 데이터 전처리 모듈은 pandas모듈을 활용하여 JSON 포맷을 테이블 형식의 데이터 프레임으로 전처리했습니다. 1차 시도당시 빅쿼리로 진행했던 조건문을 프로그래밍 언어로 대체한 것입니다. 마지막으로 빅쿼리 클라이언트 라이브러리를 설치하여 전처리한 테이블을 빅쿼리로 업로드하는 함수를 구현했습니다.

내용을 요약하면 다음과 같습니다.

1. 앰플리튜드

  • 앰플리튜드가 GCS 버킷에 접근하여 이벤트 데이터를 전송합니다.

2. GCS

  • 앰플리튜드 이벤트 데이터는 GCS의 객체로 생성됩니다. 이때 객체 트리는 “버킷>폴더>시간대(yyyy-mm-dd_h)#순번’으로 네이밍되어 적재됩니다. (*e.g: 353961_353961_2023-06-25_1#0)

3. GCF

ㅤ: 버킷에 객체가 생성될 때마다 객체 데이터를 전처리한 후, 빅쿼리에 로드하는 함수 구현

3-1. 트리거
: GCS에 객체가 생성될때마다 호출합니다.

‘(Amplitude → Google Cloud Storage)’와 ‘(Google Cloud Storage) → Bigquery)’를 Google Cloud Functions로 연결하고자 트리거를 “Google Cloud Storage에 앰플리튜드 파일(객체)가 생성될 때”로 정의했습니다.

트리거 진입함수는 main()으로 설정합니다. 이때 트리거 대상 객체의 파일명을 확인하기 위해 data json 객체를 로드하여 메타 데이터를 확인합니다.

3-2. gcs_read()
: 트리거 수신 위치의 버킷 객체를 참조하여 읽어들입니다.

  • gcs_read()로 트리거 대상 객체의 파일을 읽어오고 빅쿼리의 index가 되어 줄 부분을 파싱합니다.
    • index_prefix : projectID_yyyy-MM-dd_H#partitionInteger.json.gz 파일명에서 ‘yyyy-MM-dd_H#partitionInteger’을 가져와 정수형으로 변환한 뒤 값을 할당합니다.
  • json_objects : 버킷에 저장돼 있던 압축된 아카이브 JSON 파일을 압축해제한 뒤, 데이터프레임으로 변환하기 위해 줄바꿈되어 있는 부분을 기준 삼아 데이터를 분리합니다.

3-3. json_make_dataframe()
: json객체를 total_items_order_completed, item_order_completed 각각의 데이터프레임(df1, df2)으로 변환합니다.

3-4. join_dataframes()
: df1, df2를 index 컬럼 기준으로 조인하여 joined_df라는 데이터프레임을 생성합니다.

3-5. append_to_bigquery()
: joined_df 데이터프레임에 맞는 스키마를 정의하여 빅쿼리에 로드합니다.

해당 작업을 완료하면, 최종적으로 빅쿼리에 데이터가 정상적으로 저장되며, 태블로에 연결해서 시각화할 수 있습니다.

빅쿼리 데이터 태블로 연결 화면

3. 대시보드 체크포인트

3-1. 가장 중점적으로 고민한 부분

통합 프로모션 대시보드이므로 프로모션 간의 비교가 가능하도록 하는 것이 최우선순위 목표였습니다. 하지만 통합 프로모션 대시보드 내에서 개별 프로모션의 성과 및 관련 내용도 바로 파악이 가능하도록 대시보드를 구성하고자 했습니다.

프로모션 리스트 부분에서 프로모션 성과들을 직관적으로 비교해서 확인할 수 있도록 했으며, sales summary내의 각 KPI의 프로모션 평균값을 제공하여 프로모션의 평균값과의 비교가능하게함으로써 프로모션 간의 비교 분석이 가능하도록 대시보드를 구성했습니다. 또한 프로모션 리스트에서 개별 프로모션 클릭 시 해당 프로모션에 해당하는 내용으로 필터링이되어 표현되게함으로써 개별 프로모션의 성과 역시 파악할 수 있도록 대시보드를 구성했습니다.

3-2. 대시보드 구현 시 발생했던 문제점 및 이를 해결하기 위한 과정

데이터를 태블로로 넘긴 후 ERP 기준 매출 데이터와 정합성을 확인하는 과정에서 매출액의 약 0.2%의 차이가 발생함을 확인했습니다. 이는 최종 매출액에서 반품 및 교환 비용을 고려하지 못했기 때문에 발생한 결과였습니다.

따라서 앰플리튜드의 반품 및 교환관련 이벤트인 return_completed의 return_paid_shipping(교환 및 환불금액)관련 항목을 추가하여 해당 금액을 반영해줌으로써 데이터 정합성을 맞췄습니다.

대시보드 구현시 발생했던 문제점 및 이를 해결하기 위한 과정

3-3. 가장 어려웠던 부분

해당 대시보드를 사용하는 고객사는 프로모션의 분류를 크게 할인과 쿠폰 2가지로 구분하고 있습니다.

즉, 1차적으로 가격을 낮춰 세일가에 제품을 구매하는 ‘할인’ 프로모션과 쿠폰을 소지하고 있는 고객이 쿠폰을 직접 사용해서 제품을 구매하는 ‘쿠폰’ 프로모션이 존재합니다. 이때 쿠폰 프로모션의 경우 총 매출 관련 항목과 쿠폰 매출 관련 항목으로 구분해서 성과를 확인할 수 있지만, 할인 프로모션의 경우 쿠폰 관련값이 존재하지 않으므로 쿠폰 매출 관련 성과는 확인이 불가능합니다. 따라서 성과를 확인함에 있어서 쿠폰 프로모션의 경우에는 쿠폰 매출 관련 항목을 확인해야 하고, 할인 프로모션의 경우에는 총 매출 관련 항목을 확인해야 합니다.

이를 적용했을 때 Sales Summary를 확인함에 있어서 결제상품수, 결제건수, 구매고객수의 경우 할인 프로모션의 경우에는 총 매출액 관련 항목으로, 쿠폰 프로모션의 경우에는 쿠폰 매출액 관련 항목으로 구분해서 표현해주어야 합니다.

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)}

4. 대시보드 템플릿

최종적으로 제작된 통합 프로모션 대시보드는 다음과 같습니다.

 통합 프로모션 대시보드 예시

4-1. 대시보드 템플릿 설명

📊 통합프로모션 대시보드 설명
1. 분류(쿠폰/할인) 및 테마 필터
- 해당 필터를 클릭하여 1. 프로모션 리스트에서 프로모션을 확인할 수 있습니다.
- 필터가 동작함에 따라 2. 세일 요약 내의 프로모션 평균이 변동됩니다.

2. 3. 아이템 디테일 내 브랜드별, 카테고리별, 상품별 막대그래프를 클릭하여 상세 판매현황을 확인할 수 있습니다.
- 클릭했던 막대그래프를 재클릭하시면 클릭을 해제하실 수 있습니다.

3. 5. CRM 정보에 표기되는 CRM 리스트 기준은 다음과 같습니다.
1) 전송건수: 10,000건 이상
2) Campaign Category: RAF, NTC(라플 및 공지) 제외
3) App: WO (칼하트윕 제외)

4-2. 해당 템플릿을 사용하는 방법

대시보드 우측 상단의 i표시를 클릭하면, 대시보드에 대한 설명을 확인할 수 있습니다. 프로모션의 분류가 할인일 경우, 1. Promotion List 에 쿠폰 판매건 및 쿠폰 판매액은 0건, 0원으로 표시됩니다. 2. Sales 의 결제 상품수, 결제 건수, 구매고객수의 경우, 프로모션 분류가 쿠폰일 경우에는 쿠폰 판매에 관련된 내용으로, 프로모션 분류가 할인일 경우에는 총 판매액에 관련된 내용으로 표시됩니다.

대시보드 작동예시를 좀 더 자세히 살펴보면 다음과 같습니다.

1. Promotion List

    프로모션 명을 클릭해서 해당 프로모션에 해당하는 2.sales, 3. Item detail, 4. Sale Trend, 5 CRM Info 를 확인할 수 있습니다.
대시보드 작동예시 - 프로모션 리스트

Promotion List 우측 분류 및 테마 필터를 클릭하여 해당하는 프로모션을 확인할 수 있습니다.

대시보드 작동예시 - 필터 확인

2.Sales(sales summary)

해당 프로모션의 총 매출액, 쿠폰 매출액, 결제 상품수, 결제 건수, 구매고객수 및 각 항목에 해당하는 일평균 액수를 확인할 수 있습니다.

Promotion List 우측 분류 및 테마 필터 적용 시, 2.sales KPI의 프로모션 평균이 필터에 해당하는 프로모션의 평균으로 변경됩니다.
대시보드 작동예시 -  프로모션 평균 확인

3. Item datail

좌측의 브랜드별, 카테고리별, 상품별 차트를 클릭해 각 항목에 해당하는 상품의 일자별 판매 현황을 확인할 수 있습니다.

  • 클릭한 항목을 재클릭하면 원본으로 돌아갈 수 있습니다.
대시보드 작동예시 - 상품 세부사항 확인

  • 예시) 상품별 차트에서  Top1 상품 클릭
대시보드 작동예시 - TOP 1 상품 확인

우측 막대그래프에 마우스를 오버하면, 각 일자별 총 매출 및 쿠폰 매출, 총 매출 대비 쿠폰 매출 비율을 확인할 수 있습니다.

대시보드 작동예시 - 쿠폰 및 매출 상관관계 확인

4. Sale Trend & 5.CRM Info

4. Sale Trend에서 프로모션 기간 동안의 총 매출 및 쿠폰 매출, 해당 기간 동안 CRM이 발송된 날짜에 대한 정보를 확인할 수 있습니다.

대시보드 작동예시 - 매출 트렌드 확인

5.CRM Info에서 해당 CRM에 대한 세부 정보를 확인할 수 있습니다.

  • CRM 기준
    1. 전송건수: 10,000건 이상
    2. Campaign Category: RAF, NTC(라플 및 공지) 제외
    3. App: WO (칼하트윕 제외)
대시보드 작동예시 - CRM 현황 및 정보 확인
GROWTH

MMP(AppsFlyer), GA4, Braze 데이터를 활용해 시각화할 때 반드시 고려해야 할 사항 (1)

July 17, 2024

업무 시간을 데이터 수집과 데이터 전처리에 시간을 쓰는 마케터와 데이터 수집 자동화된 환경에서 성과 분석과 기획에 더 많은 시간을 쓰는 마케터 누가 더 많이 성장할까요?

답은 알고 계실 거에요. 당연히 성과 분석과 기획에 더 많은 시간을 쏟는 마케터가 장기적으로 많은 성장을 하겠죠

회사 내에서 GA4, MMP(AppsFlyer), Braze를 사용하고 있는데 엑셀로 데이터 수집해서 가공하는 시간을 대부분을 사용하고 있다면.. 하루 빨리 마케팅 데이터 수집 자동화하고 BI 구축을 시도해보세요.

관련 주제는 내용이 많기도 해서 3개로 나눠서 발행할 예정입니다.

  1. Third Party 데이터 수집 자동화
  2. 수집된 데이터 전처리하기
  3. 시각화 하기

이번 편에서는 MMP(AppsFlyer), GA4, Braze 데이터 수집을 자동화 시키는 프로세스를 설명해보려고 합니다.

데이터 적재하기

데이터를 적재하고 시각화까지의 프로세스를 간단하게 도식화하면 아래와 같습니다.

데이터 적재와 시각화까지의 프로세스 도식화

브레이즈 currents 적재하기

브레이즈 currents 는 유저의 engagement 이벤트의 실시간 데이터 스트림입니다. 이 데이터를 Avro 파일로 제공해서 BI 및 분석 할 수 있게 지원을 해주는 장점이 있습니다. 단점은 가격이..

브레이즈 어드민에서 아래처럼 어떤 데이터를 보낼지 선택해서 어디에 저장할지  S3, Cloud Storage, Azure Blob Storage 중 선택해서 적재를 시작합니다. (가이드 링크)

브레이즈 커런츠 currents 적재 화면

예를 들어 Amazon S3 적재를 시작하게 되면 아래처럼 이벤트 별로 폴더가 생성되어 분리 적재됩니다.

브레이즈 Currents 는 At-least-once delivery 정책으로 1시간 단위로 데이터를 적재합니다.

그래서 중복된 이벤트가 가끔 스토리지 버킷에 저장될 수 있습니다. 그래서 DW에 적재할 때 고유 식별자 필드(id) 를 사용해 이벤트 중복을 제거할 수 있습니다.

Amazon S3 이벤트별 폴더 생성 및 분리 적재

각 폴더 안에는  Avro 파일(각 파일의 Schema는 동일한 형태)이 들어 있는데 이 파일 내에는 이벤트를 구분하는 필드가 없습니다.

일단 여기서 필요한 이벤트 데이터들을 지정해서 합쳐야 되는데 여기서 문제가 있습니다.

그래서 파일 안에 어떤 이벤트의 파일인지 지정해줘야 합니다.

아래와 같이 Avro 파일 명을 확인하여 event_type 필드의 key 값을 추가 필요합니다.

# 파일명 event_type 필드의 key 값(예시)
1 users.messages.email.Open.avro email_open
2 users.messages.email.Click.avro email_click
3 users.messages.email.Delivery.avro email_delivery
4 users.messages.pushnotification.Send.avro push_send
5 users.messages.pushnotification.Open.avro push_open
6 users.messages.inappmessage.Click.avro inappmessage_click
7 users.messages.inappmessage.Impression.avro inappmessage_impression

  • 추후에 전처리시 currents 데이터 필드에는 시간 관련된 필드가 Time 필드인데 UTC 기준이라 원하는 시간대로 전처리시 맞추면 됩니다.
브레이즈 데이터 적재 완료 예시 화면

  • 여기까지 브레이즈 데이터 적재까지는 완성 되었습니다.

MMP(앱스플라이어)

💡 앱스플라이어 데이터는 내부에서 기준을 잡아주셔야 됩니다. 소개 드리는 방식은 skan 중복이 어느정도 발생할 수 있으나 현재까지는 이 방식이 최선입니다. 앱스플라이어측에서 개선을 해주신다고 들었기 때문에 기대가 됩니다.

앱 데이터를 측정하는 앱스플라이어도 마찬가지로 데일리 리포트를 만드려면 OS별, UA, RT(리타겟팅)별로 csv 파일을 12번 클릭해서 받아 정리해야 되지만 API 를 활용하면 충분히 자동화 할 수 있습니다.

 

pull api rawdata 예시
pull api rawdata 예시

다만 앱스플라이어 데이터를 어떻게 볼지 기준에 대한 합의를 유관 부서와 먼저 하시는 걸 권장드리고 대행사에게도 우리 기준으로 맞춰 달라고 요청을 해야 되겠죠?

이런 기준으로 데이터를 쌓고 있었는데 데이터를 집계하는 기준이 서로 차이가 있다면 .. 다시 작업해야 되는 불상사가 생길 수 있습니다.

이게 무슨 말이냐면 앱스플라이어 Media Source 중 SRN 매체들의 경우 개인정보 보호 이슈로 rawdata에 포함되지 않아서 집약형 데이터를 활용합니다.(가이드 링크)

그래서 SRN 매체를 사용 중이시라면 집약형 데이터를 활용해서 집계를 해야 하는데 집약형 데이터는 LTV 데이터라서 조회 시점마다 Total Revenue 값이 달라집니다. (관련글 보러가기 링크)

  • 예시
    • re-engagement window 컬럼에서 “lifetime”이라는 값은 평생 생애 가치를 의미하므로, 조회 시점마다 데이터가 달라질 수 있습니다.
re-engagement window 컬럼

1/1 데이터를 1/7일에 조회했을 때랑 1/14일에 조회했을 때의 total revenue가 달라진다는 의미입니다. 이러게 되면 가장 최근에 조회한 일자일 수록 ROAS가 높게 나오겠죠?

또한 skan 리포트도 마찬가지로 SRN 매체 광고를 운영 중에 있다면 해당 리포트도 받아야겠죠? 이것도 마찬가지로 조회시점마다 성과 숫자가 달라질 수 있습니다

앱스플라이어 데이터 자동화 수집을 위해선 크게  3가지 api 가 필요하고 세부적으로는 인스톨과 인앱이벤트 데이터를 가져와야 합니다. (추후에 앱스플라이어 데이터를 전처리하는 방법에 대해서 포스팅 해보겠습니다.)

  • Raw data Pull API
    • organic
      • install
      • in-app events
    • non-organic
      • install
      • in-app events
  • Aggregate Pull API
    • User Acquisition
    • Retargeting
  • SKAN AGGREGATED PERFORMANCE REPORT API

GA4 데이터

GA4 빅쿼리는 실무에서 쓰고 있는 조직이 있나 싶을 정도로 ..  사용하기가 좀 꺼려집니다. 원시 데이터라서 데이터 가공의 자유도가 엄청나게 높지만.. 집계를 하는 입장에서는 굉장히 머리 아픕니다. 정합성을 어디다가 맞춰야 되는지..

빅쿼리에서의 GA4 데이터 활용 현실 게시물

그래서 광고 데이터 성과를 집계할 때는 특별한 이유가 없다면 GA4 API 데이터를 소싱하는 게 정합성 의심의 여지가 없기 때문에 무조건 낫다고 봅니다.

GA4 데이터를 소싱할 때 진짜 진짜 주의해야 할 점이 바로 샘플링입니다.

샘플링 진짜 …. 데이터량이 많으면 더 심해집니다.

샘플링 분석 화면

GA4 API 를 14일치만 호출해도 샘플링된 양이 상당합니다.

GA4 API 14일치 호출 화면

GA4 Query Explorer 에서도 조회해도 어드민이랑 큰 차이가 있어서 구글 측에 문의를 해보니 여기도 데이터 조회 일자 범위가 넓으면 샘플링이 적용된다고 합니다.  추후에 해당 이슈 해소하겠다고 합니다.

GA4 Query Explorer 조회 화면

일단 우리는 샘플링 되지 않을 정도의 날짜 범위로 api 를 호출해서 적재를 하는 것이 좋습니다.

이번 편은 마케팅 데이터 수집 자동화에 대해서 알아보았고 다음 편에서는 인사이트 도출을 위한 데이터 전처리 방법에 대해서 알아보겠습니다!

GROWTH

빅쿼리에서의 GA4 데이터 활용 현실: 기회와 간과된 문제점

July 16, 2024

GA4 데이터를 빅쿼리로 보내면 뭐든 다 해결될 것 같은 이야기들이 많지만 실상은 그렇지 못합니다. GA4 인터페이스와 차이가 많고 많은 데이터 용량으로 ETL 과정으로 생각보다 리소스가 많이 듭니다. 그럼에도 불구하고 빅쿼리를 쓰는 이유가 뭘까요?

GA4 빅쿼리네 데이터 Export 하는 기능
GA4 빅쿼리네 데이터 Export 하는 기능

GA4 데이터를 빅쿼리로 활용하면 좋은점

  • 데이터 샘플링(GA4 인터페이스에서의 데이터는 샘플링이 되어있습니다)
  • 일부 측정항목과 측정기준은 시스템에서 허용하지 않아서 결합해서 보기 힘듬
  • 데이터가 너무 많아서 상품 이름 같은 많은 측정 기준들이 (기타)라는 명칭으로 숨겨짐
  • 유저 아이디별로 추출 할 수 없고 집계된 계산만 추출 가능
  • 데이터 카디널리티
    • GA4 보고서를 보면 분석 범위에 행이 많으면 데이터 카디널리티 발생
    • 이로 인해서 동일한 차원을 사용하는 표준 보고서와 다른 값이 나올 수 있음

데이터 카디널리티란?
카디널리티는 측정 기준 고유값의 개수.
하나의 측정기준에 얼마나 많은 고유값이 있는지를 의미함
예를 들어, 성별 측정기준은 남성, 여성으로 두 가지 값만 가지고 있으므로 카디널리티가 낮음, 반면 마케팅 데이터를 기준으로 캠페인차원(utm_campaign) 을 기준으로 측정기준을 가져가면 카디널리티가 높은 것

GA4 데이터를 빅쿼리로 사용한다면 판도라의 상자를 여는것

[GA4] Compare Analytics reports and data exported to BigQuery (링크)

구글 ga4 biguery discrepancy 검색 결과 페이지

GA4 빅쿼리 데이터를 가공하다보면 어? 뭐지? 하는 현상들이 있는데 대표적인 하나의 케이스를 공유해볼까합니다. 바로! 빅쿼리에 저장되는 GA4 데이터에는 구글 관련 트래픽에 가장 큰 문제가 있다는 것입니다ㅜㅜ

gclid 파라미터(구글 애즈 캠페인으로 들어온 트래픽이라는 의미)가 있는 세션이 시작 되었을 때 빅쿼리는 utm_medium, utm_campaign 파라미터를 (organic)으로 기록해버립니다

다시 말하면 구글 애즈로 들어왔다는 데이터라고 식별은 되지만 캠페인 명이 증발해버리는 현상입니다.

소스 = google
매체 = Organic
캠페인 = (Organic)

빅쿼리 RAWDATA에 구글 캠페인 명이 없는 모습
빅쿼리 RAWDATA에 구글 캠페인 명이 없음

with events as (
      select
        cast(event_date as date format 'YYYYMMDD') as date,
        concat(user_pseudo_id, (select value.int_value from unnest(event_params) where key = 'ga_session_id')) as session_id,
        user_pseudo_id,
        (select value.int_value from unnest(event_params) where key = 'ga_session_id') as session_start,
        if(
              (select value.string_value from unnest(event_params) where key in ('campaign_id', 'campaign', 'source', 'medium', 'term', 'content', 'gclid', 'dclid', 'srsltid') and value.string_value is not null limit 1) is not null,
              (
                select as struct
                  (select value.string_value from unnest(event_params) where key = 'campaign_id') as manual_campaign_id,
                  (select value.string_value from unnest(event_params) where key = 'campaign') as manual_campaign_name,
                  (select value.string_value from unnest(event_params) where key = 'source') as manual_source,
                  (select value.string_value from unnest(event_params) where key = 'medium') as manual_medium,
                  (select value.string_value from unnest(event_params) where key = 'term') as manual_term,
                  (select value.string_value from unnest(event_params) where key = 'content') as manual_content,
                  (select value.string_value from unnest(event_params) where key = 'gclid') as gclid,
                  (select value.string_value from unnest(event_params) where key = 'dclid') as dclid,
                  (select value.string_value from unnest(event_params) where key = 'srsltid') as srsltid
              ),
              null
              ) as collected_traffic_source,
        event_timestamp,
        stream_id,
        (select value.string_value from unnest(event_params) where key = 'device_category') device_category,
        event_name,
        ecommerce.purchase_revenue_in_usd  as purchase_revenue_in_usd,
        case 
          when event_name = 'purchase'
          then 1 else 0 end AS purchase

      from
        `테이블명`
      where
         _TABLE_SUFFIX >= '20231001' AND _TABLE_SUFFIX <= '20231001'
        and (select value.string_value from unnest(event_params) where key = 'source') = 'google'
)

select * from events
order by session_id 

이 현상을 해결하려면 UTM 파라미터를 자동 태깅(gclid)를 대신해서 사용하거나 URL에 커스텀 파라미터를 붙여서 해결할 수 있긴 합니다.

  • Page Referrer 에 담긴 gclid 를 모아서 빅쿼리의 데이터를 수정해줘야 됩니다.
  • 여기서 한가지 조건이 있는데
    • 유저가 세션안에서 2개의 페이지 뷰 이벤트를 가지고 있어야 합니다.
    • 왜냐하면 사용자가 광고 클릭 후 랜딩 페이지에 도착하고 이후 추가 페이지를 탐색할 경우, 첫 번째 페이지(랜딩 페이지)에서의 referrer에 gclid가 포함되어 기록될 가능성이 높기 때문입니다.
  • 따라서 GA4 Custom Dimensions 을 통해서 ga_session_id, gclid 를 구글 태그매니저(GTM)로 잡는 방법을 사용하면 됩니다.
  • 이렇게 셋팅을 했다면 GA4 API 를 통해서 sessionCampaignName, sessionSourceMedium, customEvent:ga_session_id, customEvent:gclid 를 구글 스프레드시트나 빅쿼리에 테이블을 만들거나 혹은 GCF(Google Cloud Function)을 활용해서 빅쿼리 테이블 만들어서 GA4 빅쿼리 테이블과 JOIN 을통해 이런 현상을 해결 해볼 수 있습니다.

결론!

유저 레벨 분석이 아닌 마케팅 성과를 집계하기 위한 목적으로 GA4 데이터를 활용하고자 한다면 Bigquery Export 보다는 Google Analytics Data API 를 활용해서 일별로 내부 DataWarehouse에 저장하는 방식이 더 효율적일 것 같습니다.

참고로  Google Analytics Data API 를 활용한다면 집계된 데이터를 받아오기 때문에 Total Users 와 같은 유니크한 집계값 (Count Distinct)를 해야되는 지표는 제외하고 이벤트 단위의 지표만 활용해야합니다. 이유는 아래와 같습니다.

4명의 유저가 2024-01-01 ~ 2024-01-03 에 방문했습니다.(로우 데이터)

유저 방문 데이터 예시

일별 Total User 를 집계해보면

유저 방문 데이터 일별 집계

전체 기간의 Total User 를 집계해보면

유저 방문 데이터 전체 기간 총 방문자 집계

일별, 기간별 집계 했을 때 유니크 사용자수는 완전히 다릅니다. (DAU, MAU 개념과 동일)일별 테이블을 다 더해서 집계를 해서 사용하시면 쓸모없는 지표가 되어버리기 때문입니다.

그래도 유저레벨 단위로 혹은 GA4 인터페이스에서 처리 못하는 방식의 데이터 가공이 필요하다면 위의 케이스를 반드시 고려해서 빅쿼리를 사용하시는 걸 권장드립니다.

Reference

Why your BigQuery results don't (exactly) match with Google Analytics reports (GA4)

Google 애널리틱스 4 Data API 개요

원본 포스팅 링크

빅쿼리에서의 GA4 데이터 활용 현실: 기회와 간과된 문제점

FULL FUNNEL

구글서치콘솔 대시보드 | 루커스튜디오 템플릿

July 15, 2024

루커스튜디오 구글서치콘솔 대시보드 템플릿 메인 이미지
구글서치콘솔 대시보드 | 루커스튜디오 템플릿

SEO 분석의 핵심 채널은 구글과 네이버 입니다. 그 중 구글에서는 사이트로 들어오는 유저의 검색 키워드를 분석 할 수 있게 도와주는 구글서치콘솔(GSC)을 제공하고 있습니다. 이를 통해 어떤 키워드가 더 노출과 클릭이 잘 되고 있는지 어떤 키워드가 문제인지를 확인할 수 있습니다.

다만 구글서치콘솔의 기본 목적은 구글이 도메인의 정보를 수집해가는 사이트맵 관리용으로 출발하다 보니 키워드별 깊이있는 통계 분석을 하기는 어렵습니다.

이로 인해 구글서치콘솔의 다소 부족한 통계를 보완하여 더 효과적인 구글 SEO 분석에 도움을 주기 위해 대시보드를 구성하였습니다. 총 4개의 영역으로 구성되어 있으며 각 대시보드의 활용 방식은 아래와 같습니다. SEO 관리를 위해 분석하면 좋을 지표와 방식들에 집중해서 같이 살펴보시면 좋을 것 같습니다.

구글서치콘솔 대시보드 | 루커스튜디오 템플릿
구글서치콘솔 대시보드 | 루커스튜디오 템플릿

Overview

💡 구글서치콘솔 주표 지표 Overview

  • 노출, 클릭, CTR, 평균 순위와 같은 주요 키워드 지표를 확인할 수 있습니다.
  • 각 지표별 상위 5개 키워드를 바로 확인할 수 있습니다.
  • 서비스 노출 키워드 총 수(Unique Keywords)를 알 수 있습니다.
  • 키워드에 따른 웹사이트 페이지(Landing Page) 수를 알 수 있습니다.
  • 서비스의 성격에 따라 집중해야할 Device가 달라질 수 있습니다. Device 별 키워드(쿼리) 수를 알 수 있습니다.
  • 노출, 클릭 등 주요 지표의 시계열 성과를 알 수 있습니다.

루커스튜디오 구글서치콘솔 Overview 대시보드
구글서치콘솔 대시보드 | Overview 대시보드

Page analysis

💡 SEO의 2가지 핵심 분석 축은 키워드와 페이지 입니다. 하나의 페이지에 다양한 키워드가 노출 될 수 있으며, 반대로 하나의 키워드에 여러 페이지가 노출 될 수 있습니다.

  • 키워드와 페이지의 관계를 확인할 수 있습니다.
  • 페이지 기준의 키워드 별 주요 지표의 변화를 확인할 수 있습니다.
  • 페이지별 노출되는 키워드(쿼리)수를 확인할 수 있습니다.

루커스튜디오 구글서치콘솔 페이지 분석 대시보드
구글서치콘솔 대시보드 | Page analysis

Keyword analysis

💡 SEO는 특히나 롱테일 키워드와 노출 순위 관리가 중요합니다. Top Ranking 구간을 두어서 구간 별 키워드 관리를 할 수 있습니다.

  • 노출 순위에 따른 키워드 그룹을 통해 주요 지표를 확인할 수 있습니다.
  • 키워드별 CRT, 평균 노출 순위의 버블차트를 통해 관리 키워드와 우수 키워드를 한 번에 확인할 수 있습니다.
  • 키워드(쿼리)별 세부 지표와 트렌드를 확인할 수 있습니다.

루커스튜디오 구글서치콘솔 키워드 분석 대시보드
구글서치콘솔 대시보드 | Keywords analysis

KPI Trend

💡 SEO는 단기간 지표 변화 확인이 어려운 영역입니다. 긴 시간 간격(보통 주, 월 단위)을 두고 지표의 변화를 관찰하면서 관리합니다.

  • 노출, 클릭, CTR 주요 지표의 주차별 트렌드를 확인할 수 있습니다.

대시보드 보기

대시보드 데모 보기

원본 포스팅 링크

구글서치콘솔 대시보드 | 루커스튜디오 템플릿

GROWTH

Wide Format vs Long Format

July 12, 2024

Wide Format vs Long Format 비교 예시


데이터를 구성하는 형식은 크게 Long format data와 Wide format data로 구분할 수 있습니다.
각 유형 별 특징 및 장단점에 대해 살펴보겠습니다.

Wide Format Data

Wide Format Data는 각 주제 또는 관찰단위가 단일 행으로 표시되는 구조입니다.

Wide Format Data 예시

특징:

  • 넓은 형식 데이터에서는 각 행이 하나의 관측 단위를 나타내고, 각 열이 다른 변수를 나타냅니다.
  • 한 관측 단위에 대한 모든 정보가 하나의 행에 포함되어 있어 데이터의 구조가 직관적이고 이해하기 쉽습니다.

사용시 장점:

  • 넓은 형식 데이터는 변수 간의 비교가 주된 목적일 때 유용합니다.
  • 단일 변수 또는 몇 개의 변수를 이용한 간단한 시각화를 생성할 때, 또는 피벗 테이블과 같은 요약 통계를 제공할 때 넓은 형식이 유리합니다.

Long Format Data

Long Format Data 예시

특징:

  • 긴 형식 데이터에서는 각 행이 하나의 관측치에 대한 하나의 변수를 나타냅니다.
  • 일반적으로 "키(key)"와 "값(value)"의 쌍으로 구성되며, 하나의 열은 "키"를 나타내고 다른 열은 해당 "키"의 "값"을 나타냅니다.

사용시 장점:

  • 긴 형식 데이터는 다변량 분석, 시계열 데이터 분석, 혹은 여러 변수 간의 관계를 분석할 때 유용합니다.
  • Tableau와 같은 BI 도구에서 긴 형식 데이터를 사용하면, 다양한 변수를 하나의 차트에 동적으로 표시하고, 필터링하며, 그룹화하기가 쉽습니다.

참고) Wide Format & Long Format In Tableau

Wide Format 데이터를 태블로에 입력하면 학생Id는 차원에, 점수관련 항목은 측정값으로 구분됩니다.
이를 활용해 하나의 테이블을 생성하기 위해서는 점수관련 항목을 모두 선택해주어야합니다.

 Wide Format & Long Format In Tableau 태블로

반면 Long Format 데이터를 태블로에 입력하면 학생Id와 시험 항목은 차원에, 점수는 측정값으로 구분됩니다. 이를 활용해 하나의 테이블을 생성하기 위해서는 열에 시험 차원을, 행에 학생 Id차원을 올려놓은 후 점수 값을 표에 입력하면 됩니다.

Long Format data in Tableau 태블로

다음은 해당 데이터들을 활용해 그래프를 생성해보겠습니다.
먼저 Wide Format 데이터의 경우 국어시험, 수학시험, 영어시험은 각각 다른 차원에 존재하는 데이터이므로 이를 하나로 합친 차트를 구현하는 것은 불가능합니다.

Wide Format data in Tableau 태블로

반면 Long Format 데이터의 경우, 시험이라는 하나의 차원을 기준으로 점수라는 측정값이 적재되어 있기때문에 해당 데이터를 이용해서는 하나의 차트 내에서 3가지 항목을 구분하여 구현할 수 있습니다.

Tableau 태블로 Long data Chart

→ 따라서 Tableau를 활용하여 시각화를 구현할 때에는 Long Format형식의 데이터를 사용하는 것이 더욱더 다양한 시각화가 가능합니다.

FULL FUNNEL

Udemy 분석 대시보드 | 루커스튜디오 템플릿

July 10, 2024

Udemy 루커스튜디오 분석 대시보드 메인 이미지
Udemy 분석 대시보드 | 루커스튜디오

Udemy 분석 대시보드 | 루커스튜디오
Udemy 분석 대시보드 | 루커스튜디오

Udemy 교육 커머스 분석 대시보드 템플릿

이번 글에서는 Udemy교육 플랫폼에 대한 분석과 해당 분석을 바탕으로한 대시보드를 그려보려고 합니다. 교육관련 비즈니스나 지식 기반 서비스 운영하는 경우 해당 분석과 대시보드가 참고가 될 수 있을 것입니다.

Kaggle에 올라와 있는 Udemy 데이터를 활용하여 분석을 진행하였습니다. 혹시 데이터가 필요한 분들은 아래 링크를 참고해주세요.

udemy courses 페이지 링크

1) 서비스 특성 확인

Udemy는 글로벌 교육 커머스 플랫폼 입니다. 마케팅이나 데이터 분석 뿐 아니라 개발, 라이프스타일, 비즈니스 등 다양한 분야의 강의들이 판매되고 있습니다. 가격이 그렇게 부담되지 않기 때문에 기회가 되신 다면 한번 들어보시면 좋을듯합니다. 다양한 국가 언어를 제공해 주지만 한글 비율은 높은편은 압니다. 다만 대부분 자막을 제공해주기 때문에 어렵지 않게 양질의 자료들을 보실 수 있습니다.

Udemy 교육 플랫폼 홈페이지
Udemy 교육 플랫폼

국내에서 Udemy와 비슷한 비즈니스 모델로는 패스트캠퍼스, 클래스 101, 인프런 같은 서비스가 있습니다.

클래스 101 / 인프런 / 패스트캠퍼스 웹사이트 페이지
클래스 101 / 인프런 / 패스트캠퍼스

지식 기반 상품을 판매하는 이러한 비즈니스 모델의 특징은 커머스와 크게 다르지 않습니다. 다양한 주제(카테고리 & 브랜드)의 강의(상품)가 있고 고객이 원하는 강의가 있다면 개별 강의를 구매하는 방식으로 구매 여정이 이루어져 있습니다.

  • 주제 = 브랜드
  • 강의 = 상품

일반 상품과 다르게 무형의 상품이다보니 체험 형식의 무료 과정이 활발하게 활용되는 편입니다. 강좌 개설도 자유롭게 할 수 있으며, 강좌에 대한 홍보도 직접 진행할 수 있다보니 스마트스토어에 상품을 직접올려서 판매하는 오픈마켓의 방식과 거의 유사합니다.

해당 분석의 목표는 강좌를 만드는 강의자와 Udemy에서 강좌를 서포트하는 매니저가 사용 할 수 있는 분석과 대시보드 제작을 목적으로 진행하려고합니다. 이를 통해 주요 인기 카테고리와 상위 강좌로 올라가기 위한 조건이나 기준들을 살펴보도록 하겠습니다.

대시보드 데모 보기

2) 주요 분석 항목 정의

데이터 확인

데이터 세트는 총 12개 항목(컬럼)으로 이루어져 있습니다.

  • course_id : 강의 고유 번호
  • course_title : 강의 제목
  • url : 강의 세부 url
  • is_paid : 유료 / 무료 강의 유무
  • price : 강의 가격
  • num_subscribe : 강의 수강생(수강생을 subscribe로 표현)
  • num_review : 강의 후기수
  • num_lectures : 강의내 강좌 수
  • level : 강의 난이도
  • content_duration : 강의 수강 시간
  • published_timestamp : 강의 생성 시기
  • subject : 강의 카테고리
Udemy 데이터 세트 정리표
Udemy 분석 대시보드 | 루커스튜디오

데이터 수는 3682개로 이루어져 있습니다.

EDA 과정

EDA를 통해 기본적으로 데이터의 모양을 살펴보고, 데이터 특징을 파악하며 데이터 퀄리티를 높이는 작업을 합니다.

EDA 진행 전 필수적으로 확인해야하는 단계가 데이터 퀄리티 확인 단계입니다. 이는 '데이터 클리닝' 이라고도 부르는 단계로 데이터 결측치, 데이터 중복, 이상치를 확인하는 단계 입니다. 실제로 해당 Raw 데이터는 결측치가 있는 데이터로 적절한 결측치 처리가 필요하였습니다. 이번 데이터는 결측치가 6개 row에서 발견되어 해당 row를 제거하는 방식으로 진행하였습니다. 만약 결측치가 많다면 보간 방식으로 데이터를 적절하게 채워 분석을 진행할 수 있습니다.

EDA를 통해 몇가지 특징을 확인할 수 있었습니다.

  1. 강의 구독과 리뷰는 특정 강의에 집중되는 경향
  • 구독자수(구매수)나 리뷰 같은 주요 지표를 보면 강의 별 구독자수 편차가 큰것을 확인할 수 있었습니다. 구독자 평균은 3,200명 이지만 중앙값 912명에 히스토그램을 보더라도 특정 구간에 대부분의 강의가 모여있고(신규 개설은 하였지만 관리가 많이 되지 않았거나, 신규 강의 자체가 많은 상황) 구매수가 상위 강좌에 쏠려있는 특징을 보였습니다.

💡 구독자에 따른 강의 코스 별 그룹을 임의로 나누면 분석이 편해질 것 같습니다. (ex. 파레토 법칙)

구독 및 리뷰 수 측정 비교
Udemy 분석 대시보드 | 루커스튜디오

  1. 강의수와 강의 시간의 관계
  • 강의 레벨, 강의 시간은 강의를 새롭게 개설하는 강사가 조정할 수 있는 요소입니다. 구독(매출)지표에 대한 선행지표로 볼 수 있기에 다양한 선행지표와 후행 지표간의 관계성을 확인해보면 좋을 듯합니다. 기술 통계 확인 시 구독자 수 만큼은 아니지만 분포에서 특정 구간에 쏠려 있는것을 확인하였습니다. 해당 컬럼들은 단변량 분석보다 관계성 중심의 상관도 분석을 진행해야 할 것 같습니다.

💡 선행 지표와 후행지표 간의 관계성을 찾아보면 좋을 것 같습니다. 선행지표 후보는 카테고리, 리뷰수, 강의시간, 강의수, 강의가격이 될 수 있습니다.

강의 레벨 및 강의 시간의 관계
Udemy 분석 대시보드 | 루커스튜디오

EDA를 통한 최종 분석 대시보드 구성

  • 최종 목표 KPI : 구독자수, 매출
  • 보조 목표 KPI : 리뷰수
  • 분석 항목 : 구독자, 리뷰, 카테고리, 강좌
  • 보조 분석 항목 : 강의수, 강의레벨, 강의시간

3) 분석 및 대시보드 구성

앞서 진행한 EDA 과정을 통해 분석 대시보드는 주요 지표를 보여주는 Overview와 주요 지표를 드릴다운해서 볼 수 있는 개별 영역으로 나누어서 구성하였습니다.

  • Overview
  • Subscriber(구매자수) 드릴다운
  • Review 드릴다운
  • Category 드릴다운
  • Course(강좌) 드릴다운

각 화면별 자세한 구성은 아래와 같습니다.

Overview

개요 대시보드의 구성은 대부분 유사하게 구성합니다.

루커스튜디오 Udemy 분석 대시보드 Overview
Udemy 분석 대시보드-Overview | 루커스튜디오

주요 KPI와 해당 KPI의 시간별 퍼포먼스를 볼 수 있는 영역을 기본으로 구성합니다. 이외에 주요 지표 구성 요소를 배치하여 가볍게 드릴 다운 해서 볼 수 있는 구성을 합니다.

시간에따른 KPI 성과 영역은 선택 측정항목 기능을 활용하여 측정항목을 자유롭게 변경하며 분석하거나 기간 단위를 일 -> 주 -> 월 로 변경하면서 트렌드를 다양하게 확인할 수 있게 구성하였습니다.

Subscriber Analysis

커머스로 비유하면 교육 산업에서 구독자는 구매자와 동일합니다. 다만 서비스하는 교육과정이 많다보니 적정한 기준으로 교육과정을 나누어 과정 별 특징을 확인하면 분석 편의성을 높일 수 있습니다.

가장 간단한 그룹화 방법 중 하나는 파레토 법칙을 이용하는 방식입니다. 아래 그림과 같이 가장 많은 교육과정 or 상위 10% 기준을 확인한다면 새롭게 강의를 런칭하는 신규 강사의 입장에서 바라봐야할 목표 지표를 세울 수 있습니다.

루커스튜디오 Udemy 구독자 분석 대시보드
Udemy 분석 대시보드-Subscriber | 루커스튜디오

교육 산업의 특징 중 하나는 무료 강의를 통해 플랫폼에 대한 인지를 높이는 전략을 가져가는 것입니다. Udemy 또한 평균 10% 내외의 무료 강의 비율을 보이고 있습니다. 강의 수는 10% 내 외이지만 실제 해당 무료 과정을 통해 플랫폼 경험을 하는 유저 수는 30% 이상 될 정도로 무료 과정은 중요한 역할을 하고 있습니다.

루커스튜디오 Udemy 리뷰 분석 대시보드
Udemy 분석 대시보드-Review | 루커스튜디오

상품을 구매하는데 있어 중요한 항목 중 하나는 누군가의 추천입니다. 공급자는 대부분 상품의 좋은 점을 강조하기 때문에 다른 유사 상품과의 차이가 두드러지지 않습니다. 특히나 비슷한 주제의 강의라면 커리큘럼과 실습방식 외 나머지 강의 요소를 상세페이지에 표현하기 어렵습니다. 강의 전달 방식이나 강의자의 톤, 발성, 논리정연한 강의력 등 실제 강의를 들은 수강생의 생생한 후기는 많은 경우 구매 전환에 매우 큰 영향을 줍니다. 실제로 리뷰와 수강생의 상관도가 높은 것으로 확인되며 상위 5% 강의의 리뷰율은 다른 하위 강의 대비 2배 가까이 높은것을 알 수 있습니다.

카테고리 또는 레벨, 유무료 별 평균 리뷰율을 알았다면 특정 강의의 매출을 높이는 데 있어 하나의 기준이 될 수 있습니다. 평균 대비 리뷰율이 낮다면 단기적으로 리뷰를 높이는 이벤트를 열거나 리뷰가 낮은 부분을 피드백하며 강의 자체의 개선에 활용하는 방식을 가져갈 수 있습니다.

Category Analysis

루커스튜디오 Udemy 카테고리 분석 대시보드
Udemy 분석 대시보드-Category | 루커스튜디오

어떤 카테고리가 현재 인기 있는지 알 수 있습니다. 카테고리에 상관없이 Beginner or All level이 개설 과정수도 많고 매출 비율도 높습니다. 레벨이 올라갈수록 타겟 가능한 사람을 찾는 것도 어렵고 해당 타겟의 구매 전환도 낮은편입니다. 실제로 강사의 입장에서도 레벨이 높아질수록 강의 준비 과정 난이도가 높아지기 때문에 낮은 레벨을 더 선호하는 편입니다.

카테고리 & 레벨 별로 현재 비어있는 과정을 보면서 전략적으로 강의를 개설할 수 있습니다.

Course Analysis

루커스튜디오 Udemy 강의코스 분석 대시보드
Udemy 분석 대시보드-Course | 루커스튜디오

앞서 파레토 법칙에 따라 구독자수 기준 상위 5%, 10%, 20%, 50%, 기타 그룹으로 계급을 나누었습니다. 그리고 상위 그룹과 리뷰의 상관도가 높은 것을 알 수 있었습니다. 즉, 상위 그룹에 올라가기 위해서는 필수적으로 수강생 리뷰가 쌓이고 구매 선순환이 이루어지는 시간이 필요합니다. 따라서 계급별 평균 개설 시간을 보면서 상위 계급에 올라가기 위해 얼마 만큼의 기간이 필요한지 대략적으로 가늠할 수 있습니다.

또한 계급별 주요 지표간 상관도를 보면서 어떤 지표를 우선으로 해서 강의를 만들지 전략적으로 접근할 수 있습니다. 실제 계급 구독수와 강의수 & 강의시간의 상관도가 높은것을 알 수 있습니다.

반대로 구독자수와 강의가격은 생각보다 높은 상관도를 보이지 않습니다. 충분히 유용한 강의수와 시간을 보유하고 있다면 강의 가격은 구매 결정에 상대적으로 낮은 영향력을 보입니다.

4) 마무리

해당 글에서 예시로 활용한 데이터는 과거의 데이터다보니 앞서 도출한 인사이트가 현재 강의 환경과 맞지 않을 수 있습니다. 다만, 분석 과정과 주요 지표 표현 방식 등은 충분히 유효합니다. 앞서 서두에 설명 한 것 처럼 지식 기반 비즈니스가 아닌 일반 커머스 비지니스에서도 해당 분석 흐름과 대시보드 구성을 참고해서 활용해보시면 좋을 것 같습니다.

대시보드 데모 보기

원본 포스팅 링크

Udemy - 교육 커머스 분석 대시보드

GROWTH

리텐션(Retention)이란?

July 10, 2024

1. 리텐션(Retention)이란?

리텐션(Retention)은 고객이나 사용자가 특정 기간 동안 어떤 제품이나 서비스에 계속 관여하거나 이용하는 비율을 말합니다. 즉, 얼마나 많은 사용자가 시간이 지남에 따라 제품이나 서비스를 계속 사용하는지를 나타내는 지표입니다. 높은 리텐션율은 고객 충성도가 높고, 제품이나 서비스에 대한 만족도가 높음을 의미합니다.

리텐션이 중요한 이유

리텐션을 지속적으로 측정하고 관리하는 것이 중요한 이유는 여러가지가 있습니다. 리텐션은 단순히 고객이 제품이나 서비스를 계속 사용하는 것을 넘어서 기업의 지속가능성과 직접적으로 연결되는 핵심 지표입니다. 리텐션이 중요한 이유를 좀 더 자세히 살펴보면 다음과 같습니다.

  • 비용 효율성
    : 신규 고객을 유치하는 것보다 기존 고객을 유지하는 것이 훨씬 더 적은 비용이 사용됩니다. Harvard Business Review에 따르면 신규 고객 한 명을 확보하는 것이 기존 고객 유지에 비해 5~25배의 비용이 든다고 합니다. 따라서 리텐션을 높이면, 마케팅 및 영업 비용을 절감하고, 장기적으로는 더 높은 수익성으로 이어질 수 있습니다.
  • 수익성 증가
    : 리텐션이 높은 고객은 브랜드에 대한 충성도가 높고, 시간이 지남에 따라 더 많은 제품을 구매하거나 서비스를 이용할 가능성이 높습니다. 이는 평균 거래 규모의 증가, 구매 빈도의 상승, 즉, 총 수익 증가로 이어집니다.

2. 리텐션 측정기준

리텐션을 측정하는 기준에는 다양한 방법이 존재합니다. 그 중 Amplitude에서 확인할 수 있는 리텐션의 종류인 ‘N-day Retention’과 ‘Unbounded Retention’에 대해 좀 더 자세히 알아보려고 합니다.


앰플리튜드 리텐션 차트 화면
‘N-day Retention’과 ‘Unbounded Retention’

2-1. N-day Retention

N-day Retention은 사용자가 처음 제품이나 서비스를 이용한 후 특정 일수(N일) 후에도 계속 이용하는지를 측정하는 방법입니다. 예를 들어, 7-day Retention은 사용자가 서비스를 처음 이용한 후 7일째 되는 날에도 서비스를 이용하는 비율을 의미합니다. 해당 리텐션은 초기 사용자 참여, 온보딩, 새로운 기능, 단기 마케팅 캠페인 분석을 위해 사용됩니다.

2-2. Unbounded Retention

Unbounded Retention은 특정 기간 동안 사용자가 최소 한 번이라도 제품이나 서비스를 이용했는지를 측정하는 방법입니다. 이 방법은 시간이 지나도 사용자가 이탈하지 않고 계속해서 제품을 사용했는지의 여부만을 고려합니다. 해당 리텐션은 장기적인 참여, 고객 충성도, 반복 구매, 주기적인 콘텐츠 업데이트 분석을 위해 사용됩니다.

3. 리텐션 차트&리텐션 커브

3-1. 리텐션 차트란?

앰플리튜드 리텐션 - 코호트 차트


리텐션 차트는 시간에 따른 사용자의 이탈 및 유지 패턴을 시각적으로 표현한 그래프입니다. 이 차트는 특정 기간 동안 사용자 그룹의 리텐션율 변화를 보여줍니다. 리텐션 차트를 통해 크게 행 기준 분석과 열 기준 분석을 수행할 수 있습니다.

앰플리튜드 리텐션 - 코호트 차트 열기준과 행기준 설명
코호트 차트 열 기준 분석
  • 단일 시점에서 코호트 그룹을 비교합니다. 이 방법은 서로 다른 코호트끼리의 비교를 가능하게하여 그룹간의 성과를 측정할 수 있습니다.

코호트 차트 행 기준 분석
  • 일정기간 동안 코호트 그룹을 추적하여 유지율이 어떻게 변하는지 관찰하는 작업으로 장기적인 관점에서 사용자 행동의 추세와 패턴을 이해하는데 도움이 됩니다.

3-2. 리텐션 커브란?

앰플리튜드 리텐션 커브


리텐션 커브는 시간에 따른 리텐션율의 변화를 나타낸 것입니다. 이 커브는 초기 사용자 참여 이후 리텐션율의 감소 패턴을 한눈에 파악할 수 있게 해줍니다.

리텐션 커브는 감소형태에 따라 유형를 크게 3가지로 나눌 수 있습니다.

리텐션 커브 3가지 유형

3-2-1. Declining Curves

시간이 지남에 따라 사용자 참여가 감소되는 패턴의 커브입니다. 이는 가장 흔히 보이는 커브의 형태로, 초기참여 이후 사용자의 관심이 감소됨을 의미합니다.

  • 특징
    • 사용자가 꾸준히 제품을 떠나고 있으며 이는 사용자 만족도나 참여도에 지속적인 문제가 있음을 나타냅니다.
    • 제품이 장기간 사용자를 유지하지 못하고 지속적인 가치를 제공하지 못하는 문제가 있음을 시사합니다.

3-2-2. Flattening Curves

초기 감소 후 리텐션율이 안정적으로 유지되는 패턴의 커브입니다. 이는 사용자들이 제품이나 서비스에 익숙해지고 일정수준의 참여를 계속해서 유지함을 나타냅니다.

  • 특징
    • 초기 감소 후 특정 시점부터 곡선이 평평해 지는데, 이는 나머지 사용자 사이에서 안정적인 유지율을 나타내는 것을 시사합니다.

3-2-3. Smiling Curves

리텐션 감소 후 시간이 지남에 따라 다시 증가하는 패턴의 커브입니다. 이는 매우 긍정적인 상황으로, 사용자들이 초기 이탈후 일정시간이 지나 다시 제품이나 서비스에 관심을 가지기 시작함을 의미합니다.

  • 특징
    • 초기 감소 이후 특정 시점부터 곡선이 상승하기 시작하여 시간이 지남에 따라 사용자가 다시 돌아오거나 참여도가 향상됨을 나타냅니다.
      • 사용자는 처음에는 떠날 수 있지만 제품의 가치를 깨닫거나 업데이트나 재참여 캠페인과 같은 특정 개입으로 인해 다시 돌아올 수 있습니다.

원본 포스팅 링크

리텐션(Retention)이란?

FULL FUNNEL

풍선차트로 SEO 분석 하기

July 8, 2024

📊풍선차트로 SEO 분석 하기

블로그를 하다보니 SEO에 대한 키워드 최적화와 분석을 많이 하고 있습니다.

그 중 최근 많이 활용하는 분석 방법 중 하나는 풍선 차트를 활용한 키워드 분석입니다.

풍선(버블) 차트는 여러개의 측정기준을 두고 분석할 수 있다보니, 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개 분면으로 키워드 그룹을 나누어 전략을 다르게 가져갈 수 있습니다.

풍선차트로 SEO 분석 하기

1️사분면 : 노출순위가 높고, CTR도 우수한 유효 키워드 그룹

2️사분면 : 노출순위가 낮고, CTR은 높은 잠재 우수 키워드

3️사분면 : 노출순위도 낮고, CTR도 낮은 문제 키워드 그룹

4️사분면 : 노출순위가 높지만, CTR은 낮은 관리 필요 그룹

👉 자세한 SEO 분석 전략 : https://lnkd.in/gJDbrBzp

► 구글 서치콘솔 데이터를 통해 풍선 차트 생성과 분석을 간단하게 진행할 수 있습니다.

► 혹시나 블로그를 하고 계시다면 구글 서치콘솔 설정과 대시보드 구축을 해보세요.

원본 포스팅 링크

📊풍선차트로 SEO 분석 하기