인사이트 - BI

BI_image_thumbnail
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 대시보드

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

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

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

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

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

활용

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

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

마무리

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

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

BI_image_thumbnail
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 브랜드, 카테고리 그래프 대시보드

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

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

그래서 데이터 마케팅

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

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

BI_image_thumbnail
GROWTH

[코호트분석] 올바른 코호트 분석 방법

August 30, 2024

이 글을 읽고 계시다면 코호트 분석을 이미 하고 계실 건데 측정 기준에 대해서 의문이 생기신 분이 보실 것 같네요

구글에 '코호트 분석 SQL' 라고 검색하면 정말 많은 글들이 많습니다.

글에서 소개하는 쿼리 예시는 대부분 datediff함수를 활용해서 Date Granularity를  계산합니다.

이해하기 쉽게 예를 들어보겠습니다. 

유저 1 : 23:30 에 회원가입 후 다음날 다시 들어왔습니다. 

유저 2 : 13:30에 회원가입 후 다음날 다시 들어왔습니다.

day 단위로 계산을 하면 유저 1 은 우리 서비스를 30분 경험하고 다음날 재방문했다고 계산됩니다. 

유저 2는 약 10시간 30분 서비스를 경험하고 재방문을 했다고 계산됩니다. 

동일한 조건일까요? 그렇지 않죠? 

만일 시간 단위로 계산을 하게 되면 특정 행동을 수행한 시간부터 다음 행동까지의 Time window를 24시간 뒤로 하면 이 유저는 다음날이 아닌 모레 재방문했다고 계산되겠죠? 

DATEDIFF( [first_event_dt], [second_event], DAY )

DATEDIFF( [first_event_dt], [second_event], HOUR ) / 24 )

 

월단위로 계산할 때도 마찬가지입니다.

 

월별 일자수가 모두 다릅니다. 1월(31일), 2월(28일), 4월(30일)... 

 

월 단위로 측정할 때도 30일로 모두 통일해줍니다. 

DATEDIFF( [first_event_dt], [second_event], HOUR ) / 24  * 30)

 

이렇게 계산되면 유저별로 경과 시간은 모두 통일 되었습니다!!

 

실제로 Amplitude(앰플리튜드)의 코호트 분석 기능에는 이런 기능들이 존재합니다.  만약 안 쓰고 계시다면 직접 쿼리를 날려서... 

 

여기 가이드를 보시면 앰플리튜드가 24시간 단위로 경과 시간을 측청 하는 방식을 설명해 두었습니다. 

Amplitude 24시간 단위 경과 시간 측정 방식 유저 가이드 북마크 이밎

 

앰플리튜드 24시간 단위 경과 시간 설정 화면
앰플리튜드 화면 캡쳐

 

24시간 윈도우 기준, 캘린더 기준으로 경과 시간(t)을 측정하는 옵션이 있죠? 

 

얼마나 차이를 보였는지 가상의 데이터로 확인을 해보았습니다. 

 

(참고로 더미 데이터는 kaggle 이나 Mockaroo 에서 생성하실 수 있습니다)

 

참고로 해당 데이터 계산 기준은 월별 첫 구매 기준 재구매율입니다. 

 

월별 첫 구매 기준 재구매율 기준 리텐션 비교

 

t = 1 지점부터 차이를 보이기 시작하는데 t = 0 이 100%라서 차이가 잘 안 보입니다. 로그 스케일을 통해 다시 확인해 보면 

 

월별 첫 구매 기준 재구매율 기준 리텐션 비교, 로그 스케일로 확인한 그래프

 

확실히 달력 기준의 리텐션율이 조금 더 높아 보이네요 

 

얼마나 차이 나는지 두 기준의 리텐션율을 나눠 보겠습니다 최대  1.27배까지 납니다. (아래 차트에서는 0은 무시합니다. t = 0 은 100%이기 때문에)

 

t = 1 : 1.15배

t = 22 : 1.27배

 

달력(day) 기준과 24시간 기준 리텐션율

 

데이터에 따라서 차이가 달라지겠지만 

 

코호트의 기준이 만일 회원가입일 기준의 재구매율이거나 회원가입일 기준 재방문율을 측정한다면 더 많은 차이를 보일 수 있을 걸로 예상됩니다. 

 

제가 사용한 쿼리는 아래와 같습니다.

WITH tb_pay_first AS (
        SELECT country
                ,user_id
                ,min(pay_datetime_id) first_pay_datetime_id
        FROM order
        GROUP BY 1,2

)

, tb_base_ AS (SELECT  st0.*
                    , FLOOR(TIMESTAMPDIFF(HOUR, st1.first_pay_datetime_id, st0.pay_datetime_id) / 24) AS days_since_first_pay
                    , FLOOR(TIMESTAMPDIFF(HOUR, st1.first_pay_datetime_id, st0.pay_datetime_id) / (24 * 30)) AS months_since_first_pay_period_24h
                    , (YEAR(pay_datetime_id) - YEAR(first_pay_datetime_id)) * 12 + (MONTH(pay_datetime_id) - MONTH(first_pay_datetime_id)) AS months_since_first_pay_period_day
                    , st1.first_pay_datetime_id
            FROM order st0
            LEFT JOIN tb_pay_first st1
                ON st0.user_id = st1.user_id
                AND st0.country = st1.country
            WHERE 1 = 1

)

, tb_base_24h AS (
                SELECT time_id_
                        , country
                        , since_time_period_24h
                        , CASE 
                            WHEN 'acc' = 'normal' THEN SUM(SUM(IF(since_time_period_24h = max_since_time_period_24h, repurchase_user_cnt, 0))) OVER 
                                (PARTITION BY time_id_, country ORDER BY since_time_period_24h DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
                            ELSE SUM(repurchase_user_cnt)
                            END AS repurchase_user_cnt
                        , count(1) pay_user_cnt
                        , sum(sales) AS sales

                FROM   (SELECT *
                                , CASE WHEN since_time_period_24h = 0 AND pay_cnt > 1 THEN 1
                                        WHEN since_time_period_24h = 0 AND pay_cnt <= 1 THEN 0
                                        ELSE 1 
                                    END AS repurchase_user_cnt
                                , MAX(since_time_period_24h) OVER (PARTITION BY country, user_id) as max_since_time_period_24h
                        FROM
                                (SELECT tmp0.time_id_
                                        , tmp0.country
                                        , tmp0.since_time_period_24h 
                                        , tmp0.user_id
                                        , SUM(tmp0.pay_cnt) AS pay_cnt
                                        , SUM(tmp0.sales) AS sales
                                FROM 
                                        (SELECT DATE_FORMAT(first_pay_datetime_id ,'%Y-%m-01') time_id_
                                                , country
                                                -- , months_since_first_pay_period_day AS since_time_period_day
                                                , months_since_first_pay_period_24h AS since_time_period_24h
                                                , user_id
                                                , COUNT(distinct order_id) AS pay_cnt
                                                , SUM(sales) as sales
                                        FROM tb_base_
                                        -- WHERE DATE_FORMAT(first_pay_datetime_id ,'%Y-%m-01') >= '2023-01-01'
                                        GROUP BY 1,2,3,4) tmp0
                                GROUP BY tmp0.time_id_
                                        , tmp0.country
                                        , tmp0.since_time_period_24h 
                                        , tmp0.user_id
                                ) tmp
                                    ) tmp1
                GROUP BY time_id_ 
                        , country
                        , since_time_period_24h
)

, tb_base_day AS (
                SELECT time_id_
                        , country
                        , since_time_period_day
                        , CASE 
                            WHEN 'acc' = 'normal'  THEN SUM(SUM(IF(since_time_period_day = max_since_time_period_day, repurchase_user_cnt, 0))) OVER 
                                (PARTITION BY time_id_, country ORDER BY since_time_period_day DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
                            ELSE SUM(repurchase_user_cnt)
                            END AS repurchase_user_cnt
                        , count(1) pay_user_cnt
                        , sum(sales) AS sales
                FROM   (SELECT *
                                , CASE WHEN since_time_period_day = 0 AND pay_cnt > 1 THEN 1
                                        WHEN since_time_period_day = 0 AND pay_cnt <= 1 THEN 0
                                        ELSE 1 
                                    END AS repurchase_user_cnt
                                , MAX(since_time_period_day) OVER (PARTITION BY country, user_id) as max_since_time_period_day
                        FROM
                                (SELECT tmp0.time_id_
                                        , tmp0.country
                                        , tmp0.since_time_period_day 
                                        , tmp0.user_id
                                        , SUM(tmp0.pay_cnt) AS pay_cnt
                                        , SUM(tmp0.sales) AS sales
                                FROM 
                                        (SELECT DATE_FORMAT(first_pay_datetime_id ,'%Y-%m-01') time_id_
                                                , country
                                                , months_since_first_pay_period_day AS since_time_period_day
                                                -- , months_since_first_pay_period_24h AS since_time_period_24h
                                                , user_id
                                                , COUNT(distinct order_id) AS pay_cnt
                                                , SUM(sales) as sales
                                        FROM tb_base_
                                        GROUP BY 1,2,3,4) tmp0
                                GROUP BY tmp0.time_id_
                                        , tmp0.country
                                        , tmp0.since_time_period_day 
                                        , tmp0.user_id
                                ) tmp
                                    ) tmp1
                GROUP BY time_id_ 
                        , country
                        , since_time_period_day
)


, cohort_base_24h AS 
                (SELECT time_id_
                    , country 
                    , since_time_period_24h
                    , repurchase_user_cnt
                    , pay_user_cnt
                    , sales
                    , SUM(sales) OVER w AS acc_sales
                    , FIRST_VALUE(pay_user_cnt) OVER w AS cohort_user_cnt
                    , COUNT(1) OVER (PARTITION BY country) AS cohort_cnt
                FROM tb_base_24h
                WINDOW w AS (PARTITION BY time_id_, country ORDER BY since_time_period_24h RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
                )
)

, cohort_base_day AS 
                (SELECT time_id_
                    , country 
                    , since_time_period_day
                    , repurchase_user_cnt
                    , pay_user_cnt
                    , sales
                    , SUM(sales) OVER w AS acc_sales
                    , FIRST_VALUE(pay_user_cnt) OVER w AS cohort_user_cnt
                    , COUNT(1) OVER (PARTITION BY country) AS cohort_cnt
                FROM tb_base_day
                WINDOW w AS (PARTITION BY time_id_, country ORDER BY since_time_period_day RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
                )
)


SELECT *
    , (pay_user_cnt * 100) / cohort_user_cnt AS retention_rate
FROM
            (SELECT 1 AS time_id
                    , country
                    , since_time_period_24h
                    , SUM(repurchase_user_cnt) AS repurchase_user_cnt
                    , SUM(pay_user_cnt) AS pay_user_cnt
                    , FIRST_VALUE(sum(cohort_user_cnt)) OVER(PARTITION BY country RANGE BETWEEN UNBOUNDED PRECEDING and CURRENT ROW) as cohort_user_cnt
            FROM cohort_base_24h
            GROUP BY 1
                    , country
                    , since_time_period_24h) tmp3

정리해 보면!

분석의 기준은 굉장히 중요합니다. 어떤 기준으로 분석하느냐에 따라서 의사결정 방향이 달라질 수 있겠죠? 

 

코호트 분석은 시간을 계산해서 집계하는 분석인만큼 시간의 기준을 제대로 설정하는 게 중요합니다. 

 

Text Color Change 달력 단위의 코호트 측정이 조금 더 실제로 과대 평가되기 때문에 유저별로 통일된 24시간 기준 으로 계산하여 코호트를 측정하는 것이 올바른 방법이라고 생각이 됩니다. 

 

저도 실제로 분석해 보면서 분석 기준의 중요성을 다시 한번 깨달을 수 있었습니다.

 

혹시 지금 day 단위로 코호트 활용해 재구매율을 측정하고 계신다면 24시간 단위로 계산해 보시면 어떨까요? 

 

 

Reference

https://medium.com/@paul.levchuk/how-to-build-user-cohort-properly-b70a74e5e1c8

BI_image_thumbnail
FULL FUNNEL

Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기

August 27, 2024

Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기

최근 데이터 시각화 및 분석 도구들이 발전하면서 사용자 친화적인 인터페이스가 중요해지고 있습니다. Google Looker Studio는 이러한 요구에 맞춰 다양한 기능을 제공하며, 그 중 하나가 선형(Line) 차트와 막대(Bar) 차트를 전환할 수 있는 토글 스위치 기능입니다. 물론 기본적인 제공 기능 아니지만 루커스튜디오의 기능을 활용하면 간단하게 구현 가능합니다.

토글 스위치 기능의 필요성

데이터를 분석하는 과정에서 서로 다른 유형의 차트를 사용하면 데이터를 다양한 각도에서 시각화할 수 있습니다. 예를 들어, 막대 차트는 특정 시점의 데이터를 비교하는 데 유용하며, 선형 차트는 시간에 따른 변화를 나타내는 데 적합합니다. 이러한 차트들을 손쉽게 전환할 수 있는 기능이 있으면, 사용자는 더 쉽게 다양한 인사이트를 얻을 수 있습니다.

Looker Studio에서 토글 스위치 구현하기

차트 생성

  • Google Data Studio를 열고 새로운 보고서를 생성합니다.
  • 데이터를 불러오고, 선형 차트와 막대 차트를 각각 생성합니다.

토글 스위치 추가

  • 보고서에 '매개변수'를 추가합니다.
  • 매개변수 설정에서 토글 스위치를 만들고, '선형 차트 = 1'와 '막대 차트 = 2' 옵션을 추가합니다.

💡스위치 필터 사용 시 매개변수는 숫자형만 반응. 따라서 텍스트가 아닌 데이터 유형을 숫자로 설정하여 매핑.

Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기
Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기

슬라이더 컨트롤

  • 컨트롤 필터 중 슬라이더를 선택하여 앞서 만든 차트 타입 매개변수를 세팅
  • 스타일
    • 테두리 둥글게
    • 배경 밝은 색상
    • 테두리 강한 색상

Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기
Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기

차트 생성

  • 차트 종류
    • 콤보 차트
  • 데이터 탭
    • 측정기준 : 날짜
    • 측정항목 : Bar, Line을 아래의 식을 활용하여 설정

💡Bar
IF(차트 타입 = 1, Revenue, null)

💡Line
IF(차트 타입 = 2, Revenue, null)

  • 스타일 탭
    • Bar는 막대 형태로 데이터 레이블을 표시합니다.
    • Line은 선으로 표시되며 포인트를 표시합니다.
    • 누락된 데이터에 대한 줄 바꿈

Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기
Looker Studio에서 토글 스위치로 선형 및 막대 차트 전환하기

마무리

이러한 토글 스위치 기능은 사용자에게 더 나은 데이터 시각화 경험을 제공합니다. 사용자는 필요에 따라 차트를 전환하며 데이터를 더 직관적으로 이해할 수 있습니다. 이는 데이터 분석의 효율성을 높이고, 더 나은 결정을 내리는 데 도움을 줍니다.

Google looker Studio에서 선형 및 막대 차트를 전환하는 토글 스위치를 구현하는 방법을 알아보았습니다. 이러한 기능은 데이터 분석을 더욱 직관적이고 효율적으로 만들어 줄 것입니다. 이제 여러분도 데이터 시각화를 한 단계 업그레이드 해보세요.

데모 보기
BI_image_thumbnail
FULL FUNNEL

CRM 캠페인 대시보드 | 루커스튜디오 템플릿

August 23, 2024

CRM 캠페인 대시보드 | 루커스튜디오 템플릿

디지털 시대의 급속한 발전과 함께 마케팅 환경이 빠르게 변화하고 있습니다. 다양한 채널을 통한 고객 접점이 증가하면서 기업들은 복잡해진 고객 관계 관리(CRM)에 직면하고 있습니다. 이러한 상황에서 CRM 대시보드의 중요성이 더욱 부각되고 있습니다.

CRM 대시보드는 여러 채널에서 수집된 CRM 캠페인 데이터를 통합하여 분석하고, 현황을 한눈에 파악할 수 있게 해주는 강력한 방법입니다. 다양한 CRM 채널로 인해 단일 기준으로 분석하기 어려운 데이터들을 대시보드를 통해 효과적으로 통합하고 시각화함으로써, 마케터들은 보다 신속하고 정확한 CRM 마케팅 의사결정을 내릴 수 있게 됩니다.

이러한 CRM 대시보드의 활용은 단순히 데이터를 보여주는 것에 그치지 않습니다. 실시간으로 캠페인 성과를 모니터링하고, 고객 행동 패턴을 분석하며, 각 채널별 효과를 비교할 수 있게 해줍니다. 이를 통해 기업은 더욱 효율적인 마케팅 전략을 수립하고, 고객 경험을 개선하며, 궁극적으로는 ROI를 향상시킬 수 있습니다.

본 글에서는 범용적으로 활용가능한 CRM 대시보드를 템플릿을 제공합니다.

템플릿 개요

Looker Studio CRM 캠페인 대시보드 템플릿은 마케팅 캠페인의 성과를 실시간으로 모니터링하고, 데이터를 시각화하여 분석할 수 있도록 돕는 강력한 도구입니다. 이 템플릿을 통해 효과적인 의사결정을 지원하고, 전략을 최적화할 수 있습니다.

CRM 캠페인 대시보드 | 루커스튜디오 템플릿
CRM 캠페인 대시보드 | 루커스튜디오 템플릿

템플릿의 주요 기능

1. 필터 기능

  • 날짜: 기간 선택
  • 채널: 카카오톡, SMS, Push, IAM
  • 캠페인 카테고리: 프로모션, 라플, 신상품, 타겟팅, 콘텐츠 소개
  • 캠페인 디테일: 특정 캠페인 이름
  • 캠페인 레벨: 정기 캠페인 vs 이벤트 캠페인

2. 주요 지표 및 트렌드

  • 발송 성공, 메시지 노출수, 구독 해지수, 매출, 비용 등의 주요 지표와 트렌드를 한눈에 볼 수 있습니다.

3. 캘린더 차트

  • 월별 주간 및 요일별 주요 지표 트렌드를 시각화하여 분석할 수 있습니다.

4. 주요 지표 테이블

  • 채널, 캠페인 레벨, 캠페인 이름에 따른 주요 지표를 테이블 형식으로 볼 수 있습니다.

Overview Dashboard

CRM 캠페인 대시보드 | 루커스튜디오 템플릿
CRM 캠페인 대시보드 | 루커스튜디오 템플릿

필터:

  • 날짜: 기간 선택
  • 채널: 카카오톡, SMS, Push, IAM
  • 캠페인 카테고리: 프로모션, 라플, 신상품, 타겟팅, 콘텐츠 소개
  • 캠페인 디테일: 특정 캠페인 이름
  • 캠페인 레벨: 정기 캠페인 vs 이벤트 캠페인

영역:

  1. 1번 영역: 주요 지표(발송 성공, 메시지 노출수, 구독 해지수, 매출, 비용)와 트렌드
  2. 2번 영역: 월별 주간 및 요일별 주요 지표 트렌드 (캘린더 차트)
  3. 3번 영역: 채널, 캠페인 레벨, 캠페인 이름에 따른 주요 지표 테이블

Campaign Detail Dashboard

CRM 캠페인 대시보드 | 루커스튜디오 템플릿
CRM 캠페인 대시보드 | 루커스튜디오 템플릿

필터:

  • 주요 측정 항목: 클릭(Click), 매출(Sales), CTR(클릭률), 비용(Spends)

채널별 성과:

  • 각 채널별 세부적인 성과 지표를 시각화
  • 주요 지표 비교: 노출수, 클릭수, 클릭률, 매출, 구독 해지율 등

활용 목적

Looker Studio CRM 캠페인 대시보드 템플릿은 캠페인의 실시간 성과 모니터링, 데이터 시각화, 마케팅 전략 최적화를 목적으로 활용됩니다. 이를 통해 효과적인 의사결정과 전략적 개선이 가능합니다.

실시간 대시보드를 통해 데이터를 업데이트하고, 다양한 필터 기능을 사용하여 원하는 데이터를 정확히 추출할 수 있습니다. 맞춤형 리포트를 생성하여 필요에 따라 커스터마이즈된 분석이 가능합니다.

주요 사용자

마케팅 팀, 경영진, 데이터 분석가 등 다양한 사용자들이 이 템플릿을 활용하여 캠페인 성과를 모니터링하고 분석할 수 있습니다.

활용 팁

1. 주기적인 업데이트

  • 대시보드를 정기적으로 업데이트하여 최신 데이터를 반영합니다.

2. 필터 활용

  • 다양한 필터를 사용하여 원하는 데이터를 정확히 추출합니다.

3. 성과 지표 설정

  • 주요 성과 지표(KPI)를 명확히 설정하고 이를 중심으로 분석합니다.

4. 데이터 비교

  • 과거 데이터와 현재 데이터를 비교하여 트렌드와 변화를 파악합니다.

5. 팀과 공유

  • 대시보드를 팀원들과 공유하여 협업을 강화하고 통일된 전략을 수립합니다.

템플릿은 마케팅 캠페인의 성과를 종합적으로 관리하고 분석하는 데 유용하며, 데이터를 기반으로 한 전략적 의사결정을 지원합니다.

데모 보기
BI_image_thumbnail
FULL FUNNEL

루커스튜디오로 퍼널 분석 차트 만들기

August 21, 2024

루커 스튜디오 인터렉티브 퍼널 분석 차트 만들기 표지
루커 스튜디오 인터렉티브 퍼널 분석 차트 만들기 | Looker studio

1. 루커 스튜디오 소개

루커 스튜디오(Looker Studio)는 구글에서 제공하는 강력한 데이터 시각화 도구입니다. 다양한 데이터 소스를 연결하여 직관적인 대시보드를 만들 수 있으며, 이를 통해 복잡한 데이터를 쉽게 이해할 수 있습니다. 특히, 마케팅, 영업, 운영 등 다양한 분야에서 유용하게 활용될 수 있습니다. 루커스튜디오가 궁금한 분들은 해당 글을 참고해주세요.

2. 인터랙티브 퍼널 차트?

인터랙티브 퍼널 차트는 사용자 행동을 단계별로 분석하여 시각적으로 표현하는 방식입니다. 특히, 마케팅 퍼널 분석에 유용하며, 고객이 제품이나 서비스를 구매하기까지의 과정을 시각화하여 각 단계에서의 전환율을 파악할 수 있습니다.

퍼널 분석에는 두 가지 전환율 분석 방식이 존재합니다:

  • Step Drop Off Type: 단계별 전환율을 분석하는 방식입니다. 각 단계에서 다음 단계로 넘어가는 비율을 확인할 수 있습니다.
  • Funnel Drop Off Type: 전체단계 기준 전환율을 분석하는 방식입니다. 시작점에서 각 단계별로 전환되는 비율을 확인할 수 있습니다.

이 두 가지 방식 모두 데이터의 절대값(absolute) 형태와 비율(rate) 형태로 나눠서 분석할 수 있습니다. 이를 통해 어떤 단계에 문제가 있는지 비교하면서 파악할 수 있습니다.

퍼널 분석을 통해 마케팅 전략의 효과를 검토하고 개선할 수 있는 인사이트를 얻을 수 있습니다. 예를 들어, 특정 단계에서 이탈율이 높다면 해당 단계의 문제점을 찾아 해결하는 방식으로 퍼널의 전반적인 전환율을 개선할 수 있습니다.

루커 스튜디오 인터렉티브 퍼널 분석 차트 만들기 | Looker studio

3. 퍼널 차트 만들기

인터랙티브 퍼널 리포트를 작성하는 단계는 크게 데이터 준비, 바 차트 생성, 차트에 인터랙티브 기능 추가로 나눌 수 있습니다.

3.1 데이터 소스 연결

먼저, 데이터 소스를 연결한 후 필요한 데이터를 정리합니다. 예시는 GA4 데모 데이터를 활용 하였습니다.

계산된 필드와 매개변수 설정이 필요합니다.

3.2.1. 데이터 준비 - 매개변수

아래 이미지에 활용할 매개변수 2가지를 만들어봅시다.

  • Drop-off type : Funnel 전환 기준을 선택하는 매개변수
  • Value type : Funnel 전환 절대값 / 비율을 선택하는 매개변수

데이터 준비 - 매개변수 | Looker studio
데이터 준비 - 매개변수 | Looker studio

Drop-off type
데이터 준비 - 매개변수 | Looker studio
데이터 준비 - 매개변수 | Looker studio

Value type
데이터 준비 - 매개변수 | Looker studio
데이터 준비 - 매개변수 | Looker studio

데이터 혼합을 이후에 활용할 예정입니다. 데이터 혼합에서 매개변수 사용을 위해서는 매개변수를 측정기준으로 아래와 같이 변경하는 작업이 필요합니다.

데이터 준비 - 매개변수 | Looker studio
데이터 준비 - 매개변수 | Looker studio

3.2.2. 데이터 준비 - 계산된필드

앞서 살펴봤던 매개변수의 계산된 필드 변환을 포함하여 3가지 측정기준을 만들어 줍니다.

Drop-off type dim
데이터 준비 - 계산된필드 | Looker studio
데이터 준비 - 계산된필드 | Looker studio

Value type dim
데이터 준비 - 계산된필드 | Looker studio
데이터 준비 - 계산된필드 | Looker studio

Funnel step order #

GA4의 전자상거래 5개 이벤트를 선택하고 해당 단계의 순서를 지정하는 이벤트를 만들어줍니다.

Looker Studio 코드 1


CASE 
 WHEN 이벤트 이름 = "add_to_cart" THEN 1
 WHEN 이벤트 이름 = "add_shipping_info" THEN 2
 WHEN 이벤트 이름 = "begin_checkout" THEN 3
 WHEN 이벤트 이름 = "add_payment_info" THEN 4
 WHEN 이벤트 이름 = "purchase" THEN 5
 ELSE NULL
END
        


       

데이터 준비 - 계산된필드 | Looker studio
데이터 준비 - 계산된필드 | Looker studio

3.2.3. 데이터 준비 - 필터

GA4 – Checkout steps

앞서 정의한 5개 외 나머지 이벤트는 Null로 처리 되었습니다. 해당 이벤트는 분석에 활용하지 않을 예정이므로 필터를 이용하여 제외 처리를 해줍니다. 해당 필터는 이후 단계에서 활용하도록 하겠습니다.

  • 리소스 > 필터관리 > 필터추가
데이터 준비 - 필터 | Looker studio
데이터 준비 - 필터 | Looker studio

3.3 혼합 소스 만들기

퍼널 분석을 위해선 직전단계와 다음 단계 사용자의 차이를 구해야합니다. 다만 루커스튜디오는 단일 소스로 해당 계산을 하기가 어렵기 때문에 데이터 혼합의 교차 조인을 활용하여 단계별 유저 차이를 구하는 식을 만들 수 있습니다.

혼합소스 | Looker studio
혼합소스 | Looker studio

  • 혼합 소스 이름 : 자체 혼합
  • 왼쪽 테이블
    • 테이블 이름 : Displayed data
    • 측정기준 : Funnel step order #, Drop-off type dim, Values type dim, 이벤트 이름
    • 측정항목: 총 사용자
    • 필터 : GA4 – Checkout steps
  • 오른쪽 테이블
    • 테이블 이름 : Reference data
    • 측정기준: Funnel step order # -> 이름 변경 "참조 Funnel step order #"
    • 측정항목 : 총 사용자 -> 이름 변경 "참조 총 사용자"
    • 필터 : GA4 – Checkout steps
  • 조인 방식
    • 교차 조인

3.4 차트 구성

차트구성 | Looker studio
차트구성 | Looker studio

데이터 준비가 완료되면, '차트 추가' 메뉴에서 바 차트를 선택합니다. 바 차트를 생성한 후, X축과 Y축에 표시할 데이터를 설정합니다.

3.4.1 설정 탭

  • 데이터 소스 : 자체 혼합
  • 측정기준
    • 이벤트 이름
  • 측정항목
    • 아래 공식의 "Abs users" 차트 계산 필드, AVG 집계
    • 아래 공식의"Abs exited users" 차트 계산 필드, AVG 집계
    • 아래 공식의 “% active” 차트 계산 필드, AVG 집계
    • 아래 공식의 "% drop off" 차트 계산 필드, AVG 집계
  • 정렬
    • Funnel step order #
  • 차트 상호작용
    • 모두 해제

Abs users

Looker Studio 코드 2


IF(
 Values type dim = "Absolute values"
 ,
 Total users
 ,
 null
 )
        

Abs exited users

Looker Studio 코드 3


IF(
 Values type dim = "Absolute values"
 ,
 IF
 (
  Drop-off type dim = 'Funnel drop-off'
  ,
  IF(Ref Funnel step order = 1 AND Funnel step order != 1, (Ref Total users - Total users),null)
  ,
  IF(Ref Funnel step order = Funnel step order - 1, (Ref Total users - Total users),null)
 )
 ,
 null
 )
        


       

% active

Looker Studio 코드 4


IF(
 Values type dim != "Absolute values"
 ,
 IF
 (
  Drop-off type dim = 'Funnel drop-off'
  ,
  CASE
      WHEN Funnel step order = 1 THEN 1
      WHEN Ref Funnel step order = 1 AND Funnel step order != 1 THEN (Total users ) / Ref Total users
      ELSE NULL
  END
  ,
  CASE
      WHEN Funnel step order = 1 THEN 1
      WHEN Ref Funnel step order = Funnel step order - 1 THEN (Total users ) / Ref Total users
      ELSE NULL
  END
 )
 ,
 null
 )
        


       

% drop off

Looker Studio 코드 5


IF(
 Values type dim != "Absolute values"
 ,
 IF
 (
  Drop-off type dim = 'Funnel drop-off'
  ,
  IF(Ref Funnel step order = 1 AND Funnel step order != 1, (Ref Total users - Total users)/Ref Total users,null)
  ,
  IF(Ref Funnel step order = Funnel step order - 1, (Ref Total users - Total users)/Ref Total users,null)
 )
 ,
 null
 )
        

 

3.4.2 스타일 탭

  • 수평형
  • 누적 막대
  • 데이터 라벨 표시
  • 데이터 라벨
    • 측정항목 값, 축약 번호, 소수점 정밀도 : 1
  • 색상
    • 1번 & 3번 과 2번 & 4번 동일한 색상으로 만들기
차트구성 | Looker studio
차트구성 | Looker studio
    • 축 표시
  • 차트 간격
    • 그룹 막대 너비 : 100%
  • 범례
    • 선택안함
  • 차트 헤더
    • 표시 안 함

4. 마무리

인터랙티브 퍼널 리포트는 다양한 마케팅 시나리오에서 유용하게 활용될 수 있습니다. 예를 들어, 고객의 구매 여정을 단계별로 분석하여 각 단계에서 발생하는 이탈율을 파악하고, 이를 개선하기 위한 전략을 세울 수 있습니다.

또한, 특정 마케팅 캠페인의 성과를 분석할 때도 퍼널 리포트를 사용하면 각 채널별로 고객의 반응을 비교할 수 있습니다. 이를 통해 어떤 채널이 가장 효과적인지 파악하고, 마케팅 예산을 효율적으로 분배할 수 있습니다.

데모 보기
BI_image_thumbnail
GROWTH

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

August 21, 2024

지난 편에서는 각 솔루션별 데이터 수집 방법(바로가기)에 대해서 알아보았습니다.

MMP(AppsFlyer), GA4, Braze 데이터를 활용해 시각화할 때 반드시 고려해야 할 사항 (1) 북마크 랜딩이미지

1. Third Party 데이터 수집 자동화

2. 수집된 데이터 전처리하기

3. 시각화하기

이번에는 수집된 데이터를 활용하여 어떻게 전처리 해야 되는지 알아보겠습니다. 

각 데이터 셋들은 분석하려는 차원(dimension)을 기준으로 집계(group by)를 통해서 동일한 형태로 전처리한 후 조인 연산을 통해 데이터를 통합하는 과정이라고 생각하시면 됩니다.

마케팅 성과를 분석하기 위해서 필요한 데이터 다음과 같습니다. 

Text Color Change

(필요에 따라서 Dimension 의 개수는 추가될 수 있습니다. ex)device_category, country, 등등)

Dimension  : 날짜(일별), 유입소스(GA4 = utm_source, Appsflyer = Media_source), 캠페인

Metric :  구매수, 매출, 인스톨 수 

구매 데이터(MMP, GA4) 통합하기 

GA4가 웹, 앱 모두 트래킹을 할 수 있지만 WEB은 GA4, APP은 MMP로 성과를 합쳐서 보실 겁니다. 

GA4, Firebase는 앱과 웹 내 고객 행동 분석에 주로 쓰이는 툴이고 MMP 는 광고 성과를 측정하는 툴이니깐요

그러면 이렇게 됩니다.

<GA4 데이터 집계> - WEB

Dimension  : 날짜(일별), 세션 소스, 캠페인

Metric :  구매수, 매출

<MMP 데이터 집계> - APP

Dimension  : 날짜(일별), Media_source, 캠페인

Metric :  구매수, 매출, 인스톨 수

집계된 두개의 테이블을 UNION 다시 한번 집계를 해줍니다. 

이렇게 하면 집계된 웹앱 데이터 통합이 되었습니다. (MMP 데이터 전처리 과정은 생략)

Dimension  : 날짜(일별), Media_source, 캠페인

Metric :  구매수, 매출, 인스톨 수

브레이즈 커런츠 데이터와 구매 데이터(MMP, GA4) 연결하기

브레이즈 커런츠(braze currents)데이터는 유저 인게이지먼트 데이터입니다. 

여기에는 유저별로 어떻게 우리 서비스로 참여를 하고있는지를 기록한 데이터들이 기록되어 있으니 메시지 발송 수단별로 노출, 클릭 성과들이 들어있습니다. 하지만 우리는 성과(구매) 판단은 MMP, GA4로 해야 하므로 서로 다른 데이터들을 어떻게 통합해서 볼지를 알아보겠습니다. 

커런츠 데이터는 아래와 같이 구성이 되어있습니다. 

브레이즈 커런츠 데이터 화면 이미지

Text Color Change

(차원 데이터 생성을 위한 함수는 태블로 함수입니다)

유니크한 ID 차원 만들기

위와 같은 데이터를 일자, 메세지 발송 타입, 캠페인 or 캔버스별 발송수, 노출수, 클릭수 데이터를 집계를 하기 위해서는 유니크한 ID를 나타내는 차원 데이터를 만들어 줘야 합니다.

동일한 유저라도 캠페인, 캔버스, 베리에이션 등 다양한 형태로 타겟이 될 수 있으므로, 아래와 같이 유니크한 차원 데이터를 만들기 위해 새로운 아이디를 생성합니다. (해당 아이디는 발송 타입별로 카운트하기 위해 활용됩니다.)

차원의 이름은 원하시는대로 명명하시면 되고 저는 user_id_dispatch_id 이렇게 명명하였습니다.

-- 태블로 계산식
IFNULL([User Id],'') + '-' +
IFNULL([Campaign Id],'') + '-' +
IFNULL([Message Variation Id],'') + '-' +
IFNULL([Canvas Id],'') + '-' +
IFNULL([Canvas Variation Id],'') + '-' +
IFNULL([Canvas Step Message Variation Id],'') + '-' +
IFNULL([Dispatch Id],'')

캠페인 차원 만들기

 

다음으로 캠페인 단위로 성과를 집계할 예정이기 때문에  캠페인 차원을 만들어줘야 합니다. 

 

왜냐하면 브레이즈에는 캠페인과 캠버스로 나뉘는데 campaign_name 값이 존재하면 canvas_name 이 빈값이고 거꾸로 canvas_name 값이 존재하면 campaign_name이 빈값이기 때문입니다. 

-- 태블로 계산식
IFNULL([Campaign Name],[Canvas Name])

발송 타입별 유니크한 ID 차원 만들기

{send_type}_click 이런 식으로 차원 이름을 명명하고 아래와 같은 태블로 계산식으로 차원을 만들어줍니다.

이렇게 되면 email_click, push_click, in_app_message_click 이벤트별로 ID(user_id_dispatch_id)를 생성됩니다. 

 

-- 태블로 계산식
{ FIXED [user_id_dispatch_id],[Event Type] : COUNTD(IF CONTAINS([Event Type], 'inappmessage_click') THEN [user_id_dispatch_id] END)}

 

발송 타입 차원 만들기

최초에 S3에 적재된 currents 데이터(avro 파일)를 DW에 적재할 때 파일별 Event 구분을 위해 Event_Type 칼럼을 생성하였습니다. (이전 글을 참고해 주세요)

['users.messages.email.Open.avro',
 'users.messages.email.Click.avro',
 'users.messages.pushnotification.Send.avro',
 'users.messages.inappmessage.Click.avro',
 'users.messages.email.Delivery.avro',
 'users.messages.pushnotification.Open.avro',
 'users.messages.inappmessage.Impression.avro']

-- 태블로 계산식
IF CONTAINS([Event_Type], 'email') then 'email'
elseif CONTAINS([Event_Type], 'push') then 'push'
elseif CONTAINS([Event_Type], 'inappmessage') then 'iam' end

 

이제 집계를 위한 전처리는 완료되었습니다(세세한 전처리 과정은 생략됨)

 

이제 위에서 만들었던 차원을 가지고 집계를 합니다. 

 

일자별, send_type, campaign/canvas, device_category 별 오픈, 클릭, 노출, delivery 데이터는 아래와 같이 집계되었습니다.

Braze Currents 전처리 / 집계한 테이블 예시 화면 이미지
Braze Currents 전처리 / 집계한 테이블 예시

 

통합된  GA4 / MMP 데이터와 커런츠 데이터를 통합해야 되는 과정이 또 남았습니다.

 

어떻게 이 두 데이터를 엮어야 될까요? 

 

조인키를 위에서 집계한 차원 데이터로 잡고 Full Outer Join으로 데이터를 조인합니다.

 

이유는 특정 날짜에 브레이즈 커런츠 데이터는 존재하는데 성과 데이터(GA4, MMP) 데이터가 존재하지 않는다면 매칭될 수 없으니 누락이 되어버립니다. 거꾸로 성과 데이터(GA4, MMP) 데이터가 존재하는데 브레이즈 커런츠 데이터가 존재하지 않을 경우 누락이 되어버리기 때문입니다. 

 

광고 성과 데이터 전처리하는 예시를 통해 Full Outer JOIN 이 어떻게 데이터를 처리되는지 예시를 통해 잠깐 확인해 보겠습니다

 

2024년 1월 1일 twitter 채널의 e 캠페인에서 비용이 1000원 소진했습니다. 그런데 GA4, MMP 데이터에는 해당 광고 채널의 캠페인에서 전환이 아예 일어나질 않았습니다. 하지만 비용이 발생했기 때문에 이 데이터를 버릴 수는 없겠죠? 무조건 살려야 됩니다. 

 

거꾸로 광고 데이터에서 비용은 발생하지 않았는데 Attribution Window로 인해 전환이 발생했습니다. 이것도 버릴 수 없겠죠? 

이 두 데이터에서 LEFT JOIN 또는 RIGHT JOIN을 수행하게 되면 조인키에 대응하지 않은 데이터는 매칭이 안되어 누락이 되어 버립니다. 이를 방지하기 위해서 INNER, LEFT OUTER, RIGHT OUTER 조인 집합을 생성하는 FULL OUTER JOIN을 수행합니다.

 

결과를 보면 각 테이블의 모든 데이터들이 출력이 되는 걸 알 수 있습니다. 

 

Full Outer Join 예시 이미지
Full Outer Join 예시

 

본론으로 돌아와서! 

 

Full Outer Join을 수행하기 전에 앞서 GA4, MMP 데이터를 합친 후 우리는 CRM 데이터만 필요하기 때문에 CRM 데이터만 필터를 합니다.

 

이제 Braze Current 데이터와 성과 데이터(GA4, MMP)를 날짜, 유입소스명, 캠페인명을 조인키로 두고 Full Outer Join 을 수행합니다.(분석하고자 하는 차원데이터가 추가로 더 있다면 추가로 필요한 차원도 조인키로 활용하시면 됩니다.)

 

이와 같은 방식으로 Paid 성과 데이터를 전처리 할 때도 위와 같은 방법으로 수행하면 됩니다.

 

데이터를 전처리 할 때 중요한 건 분석하고자 하는 결과물을 먼저 그려본 뒤에 결과를 도출하기 위해서 각 테이블을 어떻게 만들어 갈 것인지 생각하면서 만들어가면 됩니다. 실제로 전처리하다 보면 자잘하게 처리해야 되는 부분이 상당히 많습니다.

 

특히 데이터를 통합하기 위해서는 무엇보다 네이밍 컨벤션이 가장 중요한 점은 강조하지 않을 수 없습니다.

데이터 수집까지 잘했는데 캠페인 네이밍 컨벤션이 서로 다르다?.. 데이터 통합은 불가능합니다.. 

 

네이밍 컨벤션은 말 그대로 명명 규칙입니다. 

 

위에서 언급한 대로 우리가 데이터 통합을 위해 차원 데이터를 조인키로 활용한다고 했었는데 캠페인 차원이 MMP, GA4, Braze or 광고 데이터가 모두 다르면 안 되겠죠? 아래와 같이 통일을 시켜야만 데이터를 연결할 수 있습니다.

MMP, GA4 데이터 네이밍 컨벤션 예시 표

 

여기까지 마케팅 데이터 수집부터 전처리 과정까지 알아보았습니다.

 

다음 글에서는 이 데이터를 활용해서 시각화 하는 방법을 살펴보겠습니다. 

BI_image_thumbnail
GROWTH

2. 웍스아웃: 퍼포먼스 마케팅 광고성과 대시보드

July 29, 2024

1. 개념 설명

쿠키(Cookie)란 사용자가 웹사이트를 방문할 때마다 웹 브라우저를 통해 인터넷 사용자의 컴퓨터나 다른 기기에 설치되는 기록 정보 파일을 뜻합니다. 이는 퍼포먼스 마케팅의 필수도구로써 마케팅 활동의 세부적인 추적, 개인화 및 최적화를 가능하게 했습니다.

퍼포먼스 마케팅에서 구체적인 쿠키의 기능은 다음과 같습니다.

1. 사용자 행동 추적

  • 쿠키를 통해 사용자가 방문하는 페이지, 방문 시간, 조회한 페이지 순서를 추적하고,클릭, 구매 등의 액션을 기록하여 사용자 경험에 대한 통찰력을 제공할 수 있습니다.

2. 개인화

  • 쿠키를 통해 사용자의 관심분야 및 과거 행동을 기반으로 개인화된 마케팅을 제공할 수 있습니다.

3. 리타겟팅

  • 쿠키를 통해 이전에 방문한 고객 중 원하는 행동을 하지 않은 유저에게 재방문을 유도하여 다시 행동을 하도록 유도할 수 있습니다.

4. A/B 테스트 및 최적화

  • 쿠키를 통해 유저를 분류하여 다양한 테스트 그룹에 할당하고, 유저의 행동을 추적하는데 사용합니다. 이를 통해 마케팅 담당자는 웹페이지 또는 광고의 여러 버전을 실험하고 이를 통해 효율을 최적화할 수 있습니다.

하지만 데이터 보호 규정을 시작으로 데이터 보호를 강화하기 위한 전세계의 흐름이 있었고, 애플을 시작으로 구글 폭스 등 많은 웹 브라우저 회사들이 쿠키 제공 중단을 선언헀습니다.

쿠기 제공이 중단된다면, 기존의 쿠키를 이용해 진행하던 기능들을 더 이상 진행할 수 없게 됩니다. 그 결과 각 매체의 효율이 감소하고 신규 고객을 획득하는데 필요한 비용이 증가할 것으로 예상됩니다. 구글이 쿠키의 지원 중단 시점을 2025년으로 연기했다고는 하지만, 마케터들은 선택이 아닌 필수로 기존 광고 방식에 변화가 필요한 상황입니다.

2. 진행배경

쿠키 리스 상황에서 발생하는 여러 문제들에 대비하기 위해 진행할 수 있는 여러 방법들이 있습니다. 그 중 고객사에서는 현 상황에서 다양한 매체를 활용하기보다 최고의 효율을 낼 수 있는 매체를 선별해서 효율이 좋은 매체에 집중하고자 합니다. 이를 위해 각 광고매체의 성과를 실시간으로 모니터링할 수 있는 대시보드가 필요했습니다.

광고채널 데이터에서 태블로 시각화

태블로를 통해 다양한 광고채널에 분산되어 모니터링이 어려웠던 지표들을 태블로를 통해 하나의 대시보드에서 관리함으로써 어느 채널의 어떤 광고가 효율이 좋은지를 빠르게 파악하고, 이를 통해 어떤 채널에 더 예산을 증가하거나 감소해야 할지에 대한 의사결정을 하는데 활용할 수 있습니다.

3. 진행과정

대시보드를 제작하기 위한 과정은 크게 환경점검, 데이터 수집, 데이터 저장, 데이터 시각화의 4단계로 구분할 수 있습니다.

대시보드 제작을 위한 4가지 Step

1) 환경점검

첫 번째 환경 점검 단계는 대시보드 구축을 위한 대시보드 기획단계입니다. 이 단계에서는 데이터의 출처를 정의하고, 데이터 소스부터 시각화툴인 태블로까지 이어지는 데이터 파이프라인을 그립니다. 최종적으로 대시보드에서 어떤 데이터를 대시보드에 구현하고, 이를 어떤 방식으로 시각화할지에 대한 대시보드 기획단계라고 할 수 있습니다.

환경점검 과정 3단계

해당 광고성과 대시보드를 구현하기 위해서는 광고채널로부터 나오는 광고데이터를 데이터 소스로 정의하고, 이를 통합하는 과정이 필요합니다. 이를 위한 첫 번째 단계로 Meta, Google Ads등 여러 광고 채널에서 나온 데이터를 ETL툴인 Funnel io에서 통합합니다. 이후 MMP인 에어브릿지의 데이터를 통합해 이를 하나의 구글 스프레드시트 적재합니다. 최종적으로 태블로를 통해 시각화하는 방식으로 데이터 파이프라인을 구현했습니다.

*참고) ETL이란?
추출, 전환, 적재(ETL)는 다양한 소스의 데이터를 데이터 웨어하우스라고 부르는 대형 중앙 집중식 리포지토리에 결합하는 과정

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

해당 스텝으로 데이터 파이프라인을 구현했을 때의 장점은 어디서부터 데이터가 들어오게 되고, 문제가 발생했을 때 문제 발생원인을 직관적으로 확인가능하다는 점입니다.

2) 데이터수집

두 번째 데이터 수집 단계는 실질적으로 필요한 데이터를 정의하는 단계입니다.

UTM 및 parameter를 기반한 광고성과 추적을 위한 계층 구조인 네이밍 컨벤션(Naming Convention)을 정의하고 이를 통해 광고의 위계질서를 설정합니다. 해당 데이터를 통해 광고성과 데이터 정의하고 수집할 수 있습니다.

네이밍 컨벤션(Naming Convention) 예시
네이밍 컨벤션(Naming Convention) 예시

네이밍 컨벤션(Naming Convention) 정의를 완료했다면, 이를 토대로 데이터 스키마를 작성해야 합니다. 데이터 스키마란 데이터베이스의 구조와 제약조건에 관해 기술한 것을 뜻합니다. 데이터 이름 및 형태(ex. 숫자/문자)에 대해 정의함으로써 향후 데이터 스키마 하나만 확인해도 어떤 데이터 형태인지 파악할 수 있도록 합니다.

테이블명 열순서 열이름 데이터형식 설명 예시값
user_property 1 event_time_KST DATETIME 이벤트 타임 (한국시간) 2024-07-01 09:01:12
2 user_id STRING 유저아이디 "2920038”
3 referral_domain STRING 유입도메인 “@#$.com”
4 utm_source STRING UTM 소스 “airbridge.websdk”
5 utm_medium STRING UTM 매체 “fb”, “social”
6 utm_campaign STRING UTM 캠페인 “파이널세일”

3) 데이터저장

세 번째 데이터 저장 단계는 네이밍 컨벤션(Naming Convention)과 데이터 스키마를 통해 정의한 데이터를 저장하는 단계입니다.

광고성과 확인 시, 데이터의 정확성을 확보하고, 다양한 광고채널의 기여도를 정확하게 측정하기 위해 미디어 데이터 뿐만 아니라 MMP 데이터를 함께 확인해야 합니다. 이를 위해 미디어(메타, 구글애즈,..)와 MMP의 소스를 조인하는 과정이 필요합니다. 이를 위해 키값을 정의하고, 해당 키값을 기준으로 데이터를 조인합니다.

데이터 저장 단계 예시

4) 데이터시각화

마지막 데이터 시각화 단계는 정의된 데이터를 바탕으로 대시보드를 구현하는 단계입니다.

<1> 대시보드 기획안

대시보드 구현에 앞서 퍼포먼스마케터들과 협의를 진행합니다. 실제 최종 대시보드를 사용할 퍼포먼스마케터들과의 논의를 통해 대시보드의 형태 및 기능을 구체화할 수 있습니다.

대시보드 기획안 예시

<2> 최종 대시보드

마지막으로 확정된 기획안을 토대로 태블로를 통해 최종 대시보드를 구현하면 대시보드 제작과정이 마무리됩니다.

퍼포먼스 광고성과 대시보드 구현 예시

BI_image_thumbnail
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 대시보드 | 루커스튜디오 템플릿

BI_image_thumbnail
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 현황 및 정보 확인
BI_image_thumbnail
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 주요 지표의 주차별 트렌드를 확인할 수 있습니다.

대시보드 보기

대시보드 데모 보기

원본 포스팅 링크

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

BI_image_thumbnail
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형식의 데이터를 사용하는 것이 더욱더 다양한 시각화가 가능합니다.

BI_image_thumbnail
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)이란?

BI_image_thumbnail
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 - 교육 커머스 분석 대시보드

BI_image_thumbnail
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 분석 하기

BI_image_thumbnail
GROWTH

혼자서 GA4 연동하고 루커스튜디오 대시보드 만들기-3

July 4, 2024

태그 설치를 끝낸 후 GA4 대시보드에서 데이터가 잘 수집되는 것을 확인했다면 이제 데이터 시각화 기능인 루커 대시보드와 연동하여 나만의 대시보드를 만들 수 있다.

GA4의 유입 데이터와 내부 데이터를 연동하여 한 화면에서 비즈니스 데이터를 확인할 수 있기 때문에 데이터 기반 인사이트를 용이하게 확인할 수 있다. 내 웹사이트에 어떤 경로로 들어왔는지, 어느 페이지에서 이탈률이 높은지, *스크롤은 몇 % 내리는지, 어느 광고 매체에서 구매 전환 혹은 매출이 많이 일어나는지 한 화면에서 확인이 가능하다.

💡 * 이커머스에서는 보통 상세페이지의 스크롤을 파악하여 어디 콘텐츠 소구점에서 유저의 이탈이 많이 일어나는지 확인할 수 있다. 스크롤(scroll) 이벤트는 구글 GTM에서 추적할 수 있도록 지원하고 있어 쉽게 확인이 가능하다. gtag를 (기본 GA4 태그)를 설치하면 자동 태그로 GA4 대시보드에서도 확인이 가능하나 정확하지 않아 가급적이면 GTM을 통해 스크롤 태그를 설치할 것을 권장한다.

그리고 루커 대시보드는 gmail 계정만 있으면 관련 담당자와 쉽게 공유할 수 있으므로 타 부서와 긴밀하게 매출과 비즈니스 KPI를 관리할 수 있다는 장점이 있다.

1. 루커 대시보드와 데이터 연동하기

루커 대시보드에서 차트를 구현할 때 연동하는 데이터 세트를 ‘데이터 소스’라고 한다. 데이터 소스는 루커 스튜디오의 커넥터를 클릭하여 쉽게 연동이 가능한데, 루커는  무려 1,000개 이상의 다양한 데이터 소스를 간편하게 연동할 수 있도록 지원하고 있다. (연동 가능한 데이터 소스 종류 확인하기)

만약 내가 기존에 적재하고 있던 구글 시트 보고서의 데이터와 GA4 데이터를 기반으로 대시보드를 만들고자 한다면 구글시트와 GA4 계정을 커넥터에 연결해서 확인할 수 있다.

1-1. 우선, 루커 스튜디오 홈페이지에 접속하여 빈 보고서를 클릭한다. (링크)

루커 스튜디오 빈 보고서 클릭

1-2. 나의 데이터를 확인한 후 커텍트를 클릭하여 루커 스튜디오와 연결한다.

구글 시트 보고서와 GA4 데이터를 연결해야 하기문에 커넥터에서 ‘Google 애널리틱스’와 Google Sheet를 클릭하여 연동을 시작한다. 구글 시트는 워크시트별로 연동이 가능하고 GA4는 해당 계정에 대해 권한이 있어야 연동이 가능하다. 다만 이때 각 열의 헤더(제목)이 있어야 하고 헤더는 중복되면 안된다.

루커 스튜디오와 구글애널리틱스, 구글 시트 연동

1-3. 루커 스튜디오 기본 화면 이해하기

루커 스튜디오는 ‘보기’모드와 ‘수정’모드가 있다. 보기 모드는 편집자 권한이 없는 사람이 대시보드가 보이는 형태를 확인할 수 있고 편집자 모드가 있을 경우 ‘수정’모드에서 각 차트와 대시보드 스타일에 대한 요소들을 생성 및 수정할 수 있다.

Image 1
보기모드
Image 2
수정모드

수정 모드에서는 가장 우측 데이터, 속성, 필터 표시줄 이모티콘을 클릭함으로써 각 기능에 대한 툴바를 숨김 처리할 수 있다.

루커스튜디오 대시보드 수정모드

(상단 좌측부터 순서대로 설명)

  • 데이터 추가
    • 데이터 소스 추가
  • 차트 추가

[✔︎ 가장 많이 쓰는 차트 예시]

(1) 막대그래프 및 열 차트 (링크)

막대그래프 및 열 차트 예시

(2) 선 차트 및 콤보 차트 (링크)

선 차트 및 콤보 차트 예시

(3) 스코어카드 (링크)

1개의 측정항목에 대한 요약 수치를 표시할 수 있다. 전자상거래 대시보드에서는 총매출, 구매 수, 광고소진액, 신규 유저, MAU, DAU에 대한 수치를 증감률과 함께 확인할 수 있다.

 스코어카드 예시

(4) 시계열 (링크)

시간의 흐름에 따라 데이터가 어떻게 변화되는지 확인할 수 있다. 전자상거래 대시보드에서는 일별 구매수, 세션별 일별 구매자 수, 일별 광고비 등을 확인할 수 있다.

시계열 차트 예시

(5) 원형 차트 (링크)

값 비율 차이가 큰 데이터를 비교할 때 많이 쓰는 차트로 전자상거래 대시보드에서는 광고비 비중, 채널별 비중을 확인할 수 있다.

원형 차트 예시

(6) 트리맵 차트 (링크)

값이 큰 데이터 항목일수록 색상이 진하고 크기가 크게 표시되는 차트로 계층별로 정리하여 비교할 수 있다는 장점이 있다.

트리맵 차트 예시

(7) 피벗 테이블

피벗 테이블 예시
  • 컨트롤 추가
    • 차트 필터 추가
      • 날짜, 검색, 드롭 다운, 체크박스 필터 기능 추가 가능
  • 링크, 이미지, 도형 이모티콘
    • 링크, 이미지, 도형 삽입 가능

2. 루커 대시보드 내용 기획하기

루커 시보드에서 데이터를 연결하고 어떤 차트를 구현할 수 있는지 파악이 완료되었다면 실제로 내가 활용할 대시보드의 목차를 기획해야 한다. 대시보드를 이용하는 사용자가 누군지 파악해야 하고 가능하면 사용자 관점에서 보기 편리하도록 대시보드를 구성해야 한다. 즉, 사용자가 무엇을 알고 싶어 하는지를 파악해야 한다.

가장 좋은 방법은 파악한 사용자들과 함께 회의를 통해 목차를 구성하고 아웃라인을 작성하는 것이지만 그것이 어렵다면 목차라도 함께 작성해야 한다. 사용자가 대시보드를 보고 의미를 쉽게 파악하지 못하거나, 알고 싶은 데이터가 대시보드에 반영되어 있지 않다면 지금까지 노력을 기울여 만든 대시보드의 활용성을 떨어지기 때문에 이 부분을 가장 중점적으로 생각해야 한다.

이커머스 서비스에서 가장 기본적으로 파악해야 하는 그래프를 바탕으로 대시보드 목차를 생각해 보면 다음과 같다.

💡 대시보드 목차 예시
  • Overview
    • DAU
    • WAU
    • MAU
    • 구매자 수, 구매 수, 구매 전환 금액
    • 구매자 수 비교
    • 광고 성과 요약
  • Advertisement
    • 광고 예산
    • 광고 성과
  • Channel Analysis
    • 채널별 매출
    • 채널별 매출 비중
    • 채널별 매출 건수 비중
    • 채널별 객단가
    • 채널별 건단가
  • Creative Analysis
    • 소재별 성과
  • Product Analysis
    • 상품별 매출
    • 장바구니 조회 대비 매출이 높은 상품
    • 상세조회 대비 매출이 높은 상품
    • 채널별 상위 상품
  • User Analysis (GA4)
    • 인구통계학 정보

3. 차트 구현하기

3-1. 측정기준, 측정항목 이해하기

GA4, 루커 스튜디오와 같이 구글 플랫폼을 활용할 때 많이 들어볼 수 있는 측정항목과 측정 기준의 개념을 이해하고 가는 것이 좋다.

측정기준, 측정항목 구분 이미지

Dimensions (측정기준)

  • 값 (Value)

Metrics (측정항목)

  • 숫자
  • 계산된 필드(계산 수식) 적용이 가능하다.
    • e.g. CPC (계산된 필드): SUM(지출금액)/SUM(클릭)

3-2. 계산된 필드 생성하고 차트 만들기

 매체별 광고 성과에 대한 피벗 테이블 차트

예를 들어 위 그림처럼 매체별 광고 성과에 대한 피벗 테이블 차트를 구현하고 대시보드에 추가하려고 한다면 어떻게 해야 할까?

루커 스튜디오 대시보드 차트 추가 - 피봇 테이블

피벗 테이블을 추가하고 수식을 걸지 않은 광고비, 노출, 클릭, 구매, 구매금액까지는 데이터 소스에서 추출하여 측정항목을 선택하여 그대로 차트에 넣으면 된다. 단, CPC, CTR, ROAS의 경우 수식 계산이 필요한데 계산된 필드로 만들어서 측정항목으로 추가할 수 있다.

루커 스튜디오 대시보드 계산된 필드 추가

계산된 필드 생성을 클릭하면 필드 생성 창이 뜨는데, 원하는 측정항목 이름으로 필드 이름을 적은 후 수식에 루커 스튜디오 함수 목록을 참고하여 수식을 입력한다.

[✔︎ 많이 쓰는 함수식]

(1) CPC

SUM(광고비) / SUM(클릭수)

(2) CTR

SUM(클릭) / SUM(노출)

(3) ROAS

SUM(구매금액) / SUM(광고비)

(4) CPI

SUM(광고비) / SUM(설치수)

(5) CPA (구매)

SUM(광고비) / SUM(구매이벤트수)

* 루커스튜디오 함수 목록 (링크)

루커 스튜디오 대시보드 계산된 필드 구현

이렇게 맞춤으로 생성한 계산된 필드는 데이터 툴바에서 파란색으로 필드명이 보이게 된다. 대시보드 화면에 추가한 차트를 클릭하여 해당 차트의 측정항목에 필드명을 가져온다.

4. 스타일 다듬기

루커 스튜디오 대시보드 스타일 편집

속성 툴바에서는 설정과 스타일 탭 두 가지가 있는데 설정 탭에서는 차트에 들어가는 측정항목에 대한 추가/삭제, 필터, 정렬을 설정할 수 있고 스타일 툴바에서는 차트 색, 소수점, 글꼴, 데이터 없음 표시 종류 등 디자인과 관련한 항목을 설정할 수 있다.

(1) 소수점 변경하는 방법

  • 소수점 정밀도를 클릭하여 구매 금액 데이터가 USD인 경우 소수점 2자리 또는 정수로 임의로 설정할 수 있다.
루커 스튜디오 대시보드 소수점 정밀도 설정

(2) 색상 변경하는 방법

  • 측정항목 왼쪽에서부터 측정항목 1번에 해당하며 측정항목 1번 > 히트맵 설정 > 원하는 색상을 적용하면 테이블 내에서 색상이 지정된다.
루커 스튜디오 대시보드 색상 변경

(3) 데이터 누락 서식 지정하는 방법

  • 데이터가 없을 경우 0, - , 공백, null 등 어떻게 누락을 표현할 것인지에 대해 설정할 수 있다.
루커 스튜디오 대시보드 데이터 누락 서식 지정

📊 완성 예시 대시보드 (링크 클릭🔽)

💡 대시보드 참고사항
  • 데이터는 목업 데이터와 GA4 데모 계정 데이터를 사용하였습니다.
  • 목업 데이터는 카페24, 스마트 스토어 데이터로 KRW를 사용하고 GA4 데모 계정은 미국 통화 USD를 사용하고 있으므로 통화가 불일치합니다.
  • GA4 데모 계정의 데이터 용량의 문제로 24년 3월 혹은 4월의 데이터만 활용하여 대시보드를 구현하였습니다. 날짜 필터는 유효하지 않습니다.

5. 결론

지금까지 루커 대시보드를 구현하는 방법에 대해 데이터 연결부터, 시각화 구성, 루커 대시보드 구현하는 방법까지 설명하였는데 루커 대시보드를 직접 구현해 보는 데 도움이 되었으면 좋겠다. 예시 대시보드를 참고하여 우리 서비스만의 대시보드를 만드는 것도 좋은 연습이 될 것 같다. 실제 우리 데이터를 연결해 보고 다양한 시각화를 시도해 보며 경험을 쌓는 데 좋은 시작이 될 것이라고 믿는다.

참고문헌

*궁금한 점이나 추가적인 도움이 필요하다면 언제든지 문의해 주세요! 여러분의 데이터 시각화 여정에 도움이 되기를 바랍니다. 감사합니다😊

BI_image_thumbnail
FULL FUNNEL

SEO 분석 대시보드 템플릿

July 2, 2024

📊 SEO 분석 대시보드 템플릿

블로그나 서비스를 운영하다 보면 내 게시물이나 제품이 자연스럽게 Google 또는 Naver 검색 결과에 노출되길 기대하게 됩니다.

이러한 관점에서 접근하는 방법이 Search Engine Optimization(SEO)입니다.

Google과 Naver 모두 자체 검색 엔진에서 노출되는 다양한 방법과 데이터를 제공합니다. 이는 각각 Google Search Console과 Naver Webmaster Tools입니다.

그 중 Google에서 제공하는 Google Search Console은 키워드 노출, 클릭 수, 순위 등 유용한 정보를 제공하지만, 여전히 복잡한 정보를 얻기에는 어려움이 있습니다.

저 또한 블로그를 운영하면서 Google Search Console을 자주 방문하고 관찰하지만, 이러한 점이 아쉬워 복잡한 데이터를 확인할 수 있는 대시보드를 만들었습니다.

1️. 좌측 하단의 구글서치콘솔 변경 시 내 데이터를 확인할 수 있습니다.

2️. 노출도에 따른 키워드 그룹을 두어서 그룹간 관리가 용이합니다.

3️. 새롭게 등장하는 키워드를 파악할 수 있습니다.

4️. 기간, 기기, 국가에 따라 다양한 지표 변화를 빠르게 확인할 수 있습니다.

Image 1 Image 2

Image 1 Image 2

👉 혹시 더 보면 좋을 지표와 내용들이 있을까요?

👉 대시보드 링크

https://lnkd.in/gdKp8hi7

원본 포스팅 링크

📊 SEO 분석 대시보드 템플릿

BI_image_thumbnail
GROWTH

구글애널리틱스(GA4)와 앰플리튜드의 차이

July 1, 2024

구글 애널리틱스 vs 앰플리튜드 비교 요약

구글 애널리틱스와 앰플리튜드의 기능, 추적 방식, 분석 항목, 의의와 장단점, 담당자를 비교하자면 하단과 같습니다.  해당 내용의 이해를 위해 차근히 퍼포먼스마케터, 그로스마케터의 직무 요건에서부터 왜 애널리틱스가 중요한지(GA든 Amplitude든) 알아보도록 하겠습니다.

구글 애널리틱스와 앰플리튜드

Google Analytics(구글애널리틱스) vs Amplitude(앰플리튜드)
구글 애널리틱스와 앰플리튜드의 비교 표 이미지


마케터가 하는 일

마케터로 생각하는 직무는 주로 퍼포먼스 마케터일 것입니다. 퍼포먼스마케터, 소위 퍼포마는 브랜드나 대행사(에이전시)에서 마케팅 전략을 수립하고 미디어믹스를 짜고 (매체 별/광고 상품 별로 얼마나 쓸 건지를 짜는 것) 이후 해당 미디어믹스에 따라 광고를 집행한 후에 광고 성과를 관리합니다.

그렇다면 퍼포마의 채용 공고를 분석해 보겠습니다. 퍼포먼스 마케터의 직무 요건 및 우대 사항에는 Google Analytics와 Amplitude가 꽤 자주 등장합니다. 심지어 데이터 분석가 직무에도 있네요. 왜일까요?

  • 발란: 퍼포먼스 마케터 (DA, 5년 이상)
  • 아이디어스: 퍼포먼스 마케터 인턴 (체험형 6개월)
  • 사람인: 데이터 애널리스트 (사업기획팀)

� 마케팅을 잘하기 위해서는 성과 측정도 잘해야 하기 때문입니다.

발란의 퍼포먼스마케터 직무
발란의 퍼포먼스마케터 직무

백패커의 마케팅 인턴 채용 공고
백패커의 마케팅 인턴 채용 공고

사람인의 데이터 분석가(Data Analyst) 채용 공고
사람인의 데이터 분석가(Data Analyst) 채용 공고


어트리뷰션 Attribution? 애널리틱스 Analytics?

한 건의 전환이 일어나기까지, 한 명의 사용자에게 노출되는 광고는 수도 없이 많습니다. 마케팅을 열심히 할수록 그렇습니다. 사용자가 1) 인스타그램 광고도  볼 거고, 2) 유튜브 콘텐츠를 봤을 수도 있고, 3) 카카오 배너 광고를 봤을 수도 있고, 4) 네이버 검색 광고를 봤을 수도 있습니다. 이렇게 수많은 광고 매체를 거쳐, 한 건의 전환이 일어났을 때 가장 중요한 질문은 무엇일까요?

고객 전환까지의 채널 여정
그래서 누가(=어떤 광고 매체가) 잘했는데? 결정적 기여가 누구 건데?

다수의 광고 매체들은 다 자기가 기여를 했다고 말합니다. 그래서 광고 관리자로만 광고 성과를 보면 과도하게 성과가 집계될 수밖에 없고, 중복 집계될 수밖에 없는 것입니다.

일주일 안에 저 광고 매체들에 다 노출되었던 사용자가 전환을 했다고 가정해 볼까요? 그렇다면  기여 기간은 7일인 것이고 (광고 매체의 성과를 인정해 주는 기간) 노출된 매체는 4개, 그중 유상(Paid) 광고 매체 3개입니다. (유튜브 콘텐츠는 자사의 브랜딩이었다고 하면요.)

그럼 그중 누가 이 전환의 성과를 가져갈까요?

� 기여 모델에 따라 다릅니다!

  • First touch Attribution: 첫 번째 접점을 만들어 낸 광고 매체에게 기여/성과를 인정하는 것
  • Last touch Attribution: 마지막 접점을 만들어 낸 광고 매체에게 기여/성과를 인정하는 것
    *First와 Last는 한 개 매체만 인정해 주기 때문에 Single-touch라고도 합니다.
  • Multi touch Attribution: 접점을 만들어 낸 여러 매체들에게 가중치를 주어 기여/성과를 인정하는 것

Single-touch attribution models

이렇게 광고 성과의 기여값을 보다 정확하게 측정하기 위해서 Attribution Tool(어트리뷰션툴), Analytics(애널리틱스)가 존재합니다. Web Analytics로 가장 유명한 것이 구글 애널리틱스인 것이고요.

글의 초반 앰플리튜드 vs 구글애널리틱스 비교표에서 언급했었죠. 구글 애널리틱스는 이처럼 광고 매체들의 전환값의 기여도를 측정하여 마케팅을 효율화하는 것을 목적으로 많이 활용합니다.

광고 성과에 '기여'한 정도를 '분석'하기에 Attribution과 Analytics가 쓰입니다.


'전환'이 어디서 일어나는데?

여기서 또 하나 짚어야 할 것이 있습니다. 그 광고, 클릭하면 어디로 가나요? 클릭해서 이동한 페이지에서 보통 전환이 일어날 테니까요.

광고 클릭하면 당연히 웹페이지로... 아니지 요즘은 앱스토어로...
아니지 요즘은 앱 안의 페이지가 열리던데?

  • 웹(Web) 랜딩(*Landing = 착륙, 이동)            
    우리에게 가장 친숙한 웹페이지로 랜딩 되는 것이 일반적입니다.
  • 앱(App) 랜딩
    최근에는 앱 설치를 유도하며 앱스토어 페이지로 랜딩 되거나 앱이 설치되어 있다면 앱 내의 특정 페이지로 랜딩 되기도 합니다.
  • 웹투앱 (Web to App) 
    혹은 웹으로 먼저 랜딩 시킨 후에 여러 혜택을 소구하여 앱을 설치하게끔 하기도 합니다.


웹에서 앱으로, Web to App에서 사라지는 데이터

마케팅 캠페인이 '웹'에 치중되어 있을 때는 구글애널리틱스의 시대였습니다. 그렇지만 '앱'이 뜨기 시작하고 앱마케팅이 활성화되면서 구글애널리틱스 또한 한계에 부딪힙니다.

� 웹 랜딩 후 앱 설치를 한 유저 데이터에 광고 매체의 소스값이 적혀있던 utm이 유실되기 때문입니다

구글애널리틱스, 앰플리튜드, 미디어의 Attribution 비교 1

웹으로 랜딩 된 후 구매라는 전환 행동이 일어날 때 구글 애널리틱스는 Last touch 기여 설정에 의해서, 해당 전환의 성과는 '페이스북'에게 있다고 측정했습니다.

구글애널리틱스, 앰플리튜드, 미디어의 Attribution 비교 2

그런데 웹 랜딩 이후 앱 설치가 진행되고 앱에서 구매가 일어나면 어떻게 될까요? 사용자의 흔적을 파악할 수 있던 utm (광고 매체의 소스값)이 유실되며 광고 매체의 성과를 잡지 못하고, organic (자연 유입)으로 측정하게 됩니다.

cf. 여기서 utm의 광고 매체 소스값이란...?

구글에 나이키를 검색하면 '스폰서' 광고로 나이키가 뜹니다. 이걸 클릭하면 url이 이렇게 나옵니다.

https://www.nike.com/kr?utm_source=Google&utm_medium=PS&utm_campaign=365DIGITAL_Google_SA_Keyword_Main_PC&cp=72646825390....  > utm_source=Google이라고 알려줍니다. (소스값) utm_medium=PS라고 알려줍니다. (매체) 이 두 개의 조합을 광고 매체의 소스값이라고 합니다.

구글 나이키 검색 결과 페이지 - utm 소스


그래서 쓰는 MMP와 PA

그래서 앱 마케팅이 중요해질수록 MMP와 PA의 인지도 또한 높아질 수밖에 없습니다. MMP는 Mobile Measurement Partners로 앱스토어에 SDK를 붙여 앱 설치 성과를 측정해 주는 솔루션을 말하고, PA(Product Analytics)는 이러한 MMP들을 연동하여 앱 설치 성과를 분석할 수 있도록 도와줍니다.

MMP와 PA 역할 및 솔루션

GA는 Web 위주의 유입 성과 분석툴,
Amplitude는 App 위주의 사용자 행동 분석툴

서비스가 Web 위주인 경우 구글애널리틱스만 사용해도 충분합니다. 다만 App 위주인 경우 App 설치 성과를 분석하는 MMP (Appsflyer, Adjust, Airbridge 등)와 Web to App을 추적하고, App 내 사용자 행동을 분석하는 PA(Amplitude, Mixpanel 등)가 필요합니다!

유저의 웹 to 앱 여정과 마테크 솔루션

풀스택 마케팅 컨설팅펌 마티니아이오

https://martinee.io/

원본 포스팅 링크

구글애널리틱스(GA4)와 앰플리튜드의 차이

BI_image_thumbnail
FULL FUNNEL

GA4 마스터 대시보드 | 루커스튜디오 템플릿

July 1, 2024

루커스튜디오 GA4 마스터 대시보드 템플릿 메인 이미지
GA4 마스터 대시보드 | 루커스튜디오 템플릿

GA4는 유저가 수행한 행동 기반의 분석을 할 수 있게 도와주는 솔루션입니다. 기존의 세션 기반으로 획득관점의 유저분석을 목표로 했던 UA의 단점을 보완하는 업데이트였습니다. 다만, 기본적으로 제공하는 대시보드가 UA 대비 친절하지 않다보니 GA4로 넘어가는 많은 마케터분들과 분석가분들이 어려워하는 경우가 많았습니다.

이러한 단점을 보완하기위해 GA4의 데이터 + UA의 UI를 합친 루커스튜디오 대시보드를 만들었습니다.

루커스튜디오 GA4 마스터 대시보드 템플릿
GA4 마스터 대시보드 템플릿

'2024년 7월 1일부터 Universal Analytics(UA)를 더 이상 사용할 수 없습니다.'

1️. Google Analytics(UA)의 만남

퍼포먼스 마케팅을 처음 시작했을 때, Google Analytics(GA)는 제가 처음 접한 주요 도구 중 하나였습니다. 처음에는 기능이 많아 어색하고 어려웠지만, UA는 곧 필수적인 도구가 되었습니다. 잘 구성된 메뉴와 사용자 인터페이스(UI) 덕분에 쉽게 탐색하고 데이터를 분석할 수 있었습니다.

UA는 사용자, 획득, 행동, 전환의 네 가지 주요 영역으로 주제가 나뉘어 있어 분석이 매우 간단했습니다. 이러한 구조 덕분에 메뉴 순서에 따라 데이터를 분석함으로써 비즈니스 현상을 이해하기가 쉬웠습니다.

2️. Google Analytics 4(GA4)로의 전환

GA4는 UA의 획득 관점에 초점을 맞춘 세션 기반 분석에서 행동 기반 분석 방식으로 데이터 구조를 크게 변경하였습니다. 이러한 변화는 UA의 데이터 단점을 보완했습니다. 그러나 GA4의 메뉴가 UA처럼 주제별로 명확하게 구분되어 있지 않다는 점은 다소 아쉬웠습니다.

✅ 해결책

UA의 분석 섹션과 GA4의 이벤트 수준 분석을 결합한 대시보드

두 가지 장점을 결합한 대시보드이러한 문제를 극복하기 위해 UA의 분석 섹션과 GA4의 이벤트 수준 분석을 결합한 대시보드를 만들었습니다. 이 대시보드는 UA의 익숙한 UI를 유지하면서 GA4의 고급 분석 기능을 활용합니다.

대시보드 데모 보기

원본 포스팅 링크

📊 GA4 마스터 대시보드 | 루커스튜디오 템플릿

BI_image_thumbnail
GROWTH

앰플리튜드(Amplitude) Segment Chart

June 28, 2024

프로덕트 분석/성과 분석 툴

그로스마케팅의 기본은 분석입니다. 분석 툴, 주로 Analytics라고 많이 이야기하죠. Google Analytics가 대표적이고요. 이외 Product Analytics라고 했을 때 Mixpanel(믹스패널), Amplitude(앰플리튜드) 등의 솔루션이 있습니다.

Google Analytics(구글애널리틱스), Mixpanel(믹스패널), Amplitude(앰플리튜드) 로고


프로덕트 분석이 뭔가요?

프로덕트 분석은 사용자들이 디지털 프로덕트를 쓰는 방식을 이해해보는 것입니다. 사용자의 행동 데이터를 분석하고, 전환 기회를 파악하고, 사용자의 평생 가치(LTV: Long Time Value)를 높이는 경험을 만들어 사용자를 비즈니스의 핵심으로 만듭니다.

프로덕트 분석을 통해 사용자의 실시간 참여 및 행동 데이터를 추적, 시각화, 분석하여 전체 고객 여정(User Journey)을 최적화할 수 있습니다. 사용자의 라이프사이클 모든 단계를 데이터로 확인하여 디지털 경험을 개선하고, 충성도를 확보하고, 비즈니스 성과로 연결하도록 지원합니다.

전체 고객 여정(User Journey) 예시

(사용자 여정 예시) 광고를 클릭하고 ~ 계정을 생성하고(Onboarding Process라고 함) ~ 가입하고 ~ 기능 A를 경험하고 ~ 모바일로 로그인하고 ~ 첫구매를 하고 ~ 기능 B를 경험하고 ~ 기능 C를 경험하고 ~ 앱푸시를 받고 ~ 구독할 것 같은데 ~ A/B 테스트를 경험하고 ~ 파워 유저가 되고 ~ 남에게 추천하고...

위와 같은 사용자 여정 중에서 하기 질문에 앰플리튜드를 통해서 답할 수 있습니다.

  • Why do users convert or dropoff? (사용자가 전환하거나 이탈하는 이유는 무엇일까요?)

  • Which featurees predict likelihood to buy? 구매 가능성을 예측하는 기능은 무엇인가요?
    *커머스라면 대개 상품/브랜드 찜하기, 장바구니에 상품 담기가 그 기능입니다.

  • What is the cross-device user journey? 크로스 디바이스 유저의 여정은 무엇인가요?
    보통 Web to App으로 Mobile/Web에서 프로덕트를 경험하다가 App을 설치하고 App으로 넘어갑니다.
    *대개 여기서 데이터가 유실됩니다.

  • How did our launch impact monetization? 출시가 수익 창출에 어떤 영향을 미쳤나요?

  • Who are our highest value customers? 우리의 최고 가치 고객은 누구입니까?
    *가치가 가장 높은 고객군의 특성을 알아야, 그 고객군과 유사한 고객들을 더 데려올 수 있고 혹은 기존 고객들이 그 고객과 유사한 행동을 하게끔 유도해야합니다.

  • How likely is churn within user cohorts?사용자 집단 내에서 이탈할 가능성은 얼마나 되나요?
    *이탈 지점과 시점을 알고 있어야 이를 방지하거나 개선할 수 있습니다.


커머스의 필수 지표: 매출, 주문수, 건단가, 객단가

프로덕트 분석이라고 하면 거창해 보이지만 실전은 생각보다 단순합니다. 커머스에서 가장 중요한 지표가 무엇일까요? 바로 매출/주문수/객단가/건단가입니다.

매출=주문수X건단가, 매출=주문자수X객단가 개념으로, 결국 '매출'이 가장 중요한데요.

동일한 매출을 기준으로 주문수가 많아지면 건단가가 낮아지고, 건단가가 높아지면 주문수가 적어집니다. 아주 당연한 얘기지만, 이 내용이 무엇과 연관이 있을까요? 바로 물류비입니다.

건단가가 낮아서 주문수가 많아지면 택배 물량이 많아집니다. 물론 합배송이 가능하냐, 물류 체계가 자체 배송이냐 위탁 배송이냐, 물류 센터가 있느냐 등에 따라 상황은 다를 수 있겠지만 대개 커머스는 주문수와 건단가 중 굳이 택한다면, 건단가를 높이고 주문수를 줄이는 것이 좋습니다. (객단가는 유저수와 객단가를 둘 다 올리는 게 좋고요...ㅎㅎ)


앰플리튜드(Amplitude)의 Segment Chart 만들기: 매출, 주문수, 객단가, 건단가

*매출, 주문수, 객단가, 건단가 차트 모두 '주문 완료'/'구매 완료'/'결제 완료' 와 같은 이벤트와 '주문 금액'/'구매 금액'/'결제 금액'을 뜻하는 이벤트 프로퍼티가 필수입니다.

*여기서 이벤트와 프로퍼티는 모두 개별적으로 설정되는 것으로 통용되는 단어가 아님을 참조해주세요.

1️. 매출 차트 그리기

1. Segmentation by 에서 주문 완료 이벤트를 설정해줍니다.

해당 택소노미에서는 total_items_order_completed 가 주문 완료/결제 완료 이벤트입니다.

그리고 by order_total 이라는 이벤트 프로퍼티를 사용하여 값을 표현해줍니다.

2. ...performed by Any Users는 따로 설정하지 않아도 됩니다. (전체 유저의 매출을 보는 것이고, 특정 유저의 행동을 보고자 하는 것이 아니니까요.)

3. ...measured as 에서 'Properties'를 선택하고 Sum of Property Value를 설정합니다.

4. 일자까지 설정해주면 그래프가 구현됩니다!

5. 그래프 하단에는 데이터 테이블이 표 형식으로도 나오고, 이는 CSV로 다운로드 받을 수 있습니다.

앰플리튜드로 구현한 매출 차트
앰플리튜드로 구현한 매출 차트

매출은 'order_total'이라는 이벤트 프로퍼티의 값(value)를 더한 것이기에
… measured as Sum of Property Value로 설정합니다.

2️. 주문수 차트 그리기

주문수는 쉽습니다! ...measured as Sum of Property Value를 Event Property로 바꿔주면 됩니다.

매출이 구매 이벤트의 금액의 총합이었다면, 주문수는 이벤트가 발생한 수이기 때문입니다.

앰플리튜드에서 구현한 주문수 차트 (+grouped by order_total)
앰플리튜드에서 구현한 주문수 차트 (+grouped by order_total)

Event Totals로 바꿨는데 그래프가 조금 이상하죠? order_total이라는 주문금액값이 grouped by 필터로 걸려있어서 그렇습니다. 금액값 별로 어떻게 구성되어져있는지 보여주는 거죠. 해당 필터를 지워주면 됩니다.

앰플리튜드로 구현한 주문수 그래프
앰플리튜드로 구현한 주문수 그래프

3️. 객단가 차트 그리기

객단가는 매출/주문자수입니다. 그러므로 매출=주문완료 이벤트(+order_total 프로퍼티)의 PROPSUM (PropertySUM)/주문완료 이벤트의 유니크(사용자수)로 수식을 만들어서 적용하면 됩니다. 즉 객단가는 PROPSUM/UNIQUES입니다.

객단가의 추이를 과거와 비교할 수도 있습니다. Comparing to date range ending _ 여기서 일자를 설정하여 두 개의 그래프로 구현되도록 할 수 있습니다. 과거 일자와 비교하면 그 시점의 유저가 **[Previous]**로 표시되고, 이후 시점의 유저가 All User로 표시됩니다.

앰플리튜드 객단가 차트 그리기

4️. 건단가 차트 그리기

건단가는 매출/주문수입니다. 그러므로 주문완료 이벤트의 속성값, 주문액 평균을 확인하면 됩니다. ...measured as Average of Property Value로 설정해줍니다.

앰플리튜드 건단가 차트 그리기

건단가는 주로 프로모션을 진행할 때 부차적으로 확인합니다. 평상시 대비 프로모션 진행 시에 카테고리/브랜드/상품/장바구니 할인 쿠폰이 발급되어 건단가가 낮아지는 경우가 많기 때문입니다.

건단가/객단가는 대개 유사합니다. 다만 예외도 존재합니다. 리셀러가 커머스에 많은 경우, 상품을 대량하는 구매하므로 경우 주문수가 주문자수보다 월등히 많아 건단가는 낮고, 객단가는 높을 수 있습니다.

건단가/객단가는 시즈널리티를 탑니다. 특히 의류 커머스의 경우 S/S에는 반팔 티셔츠가 주가 되기에 객단/건단이 낮아지고, F/W에는 아우터 상품이 메인이 되면서 객단/건단이 높아집니다.


앰플리튜드 대시보드 예시

대시보드 한 판에 차트들을 모을 수 있습니다. 매출도, 구매전환율도, 상품수도 여러 필터로 쪼개보면서 프로덕트의 현황을 확인할 수 있습니다.

앰플리튜드 대시보드 예시


분석 내용 공유하기

앰플리튜드 차트로 확인한 데이터들은 구글 스프레드시트로 이전 성과들과 비교하거나, 노션으로 정리하거나, 간단하게는 슬랙으로 정리하여 공유합니다.

분석 내용 공유 예시

참 쉽죠...?

그로스마케터가프로모션/쿠폰 분석을 하는 과정 중에 앰플리튜드로 세그먼트 차트 (커머스에 꼭 필요한 매출, 주문수, 건단가, 객단가) 그리는 법을 알아보았습니다! 감사합니다.

풀스택 마케팅 컨설팅펌 마티니아이오

https://martinee.io/

원본 포스팅 링크

앰플리튜드(Amplitude) Segment Chart

BI_image_thumbnail
FULL FUNNEL

링크드인 통계 분석 대시보드 만들기

June 24, 2024

📊 링크드인 통계 분석 대시보드 만들기

데이터를 다루다보니 링크드인 컨텐츠도 데이터로 관리하고 싶은 마음이 컸습니다.

링크드인에서 가장 많이 들어가는 항목이 통계 부분인데 들어갈때마다 아쉬운건 제공 되는 데이터가 너무 제한적이라는 것이었습니다.

링크드인이 제공해주지 않아서 직접만들어 봤습니다.

1️. 평균/누적 컨텐츠 노출, 참여도(좋아요, 댓글), 팔로워에 대해서 알 수 있습니다.

링크드인 통계 분석 대시보드 1

2️. 노출, 참여도, 팔로워에 긍정적인 컨텐츠 종류를 확인할 수 있습니다.

링크드인 통계 분석 대시보드 2

3️. 컨텐츠 개별 누적 지표와 계정 지표를 분리해서 볼 수 있습니다.

링크드인 통계 분석 대시보드 3

링크드인이 제공하는 API가 페이지 데이터다 보니 개인용 컨텐츠에 대한 통계를 자동화 하지 못한 게 아쉽긴 하지만 주기적으로 데이터를 다운받아서 스프레드시트에 올리기만 하면 자동으로 시각화에 업데이트가 되게 했습니다.

<추가할 것들>

+ Social Selling Index (SSI)와 같은 지표를 추가하면 좋을 것 같아 점진적으로 추가할 계획입니다.

+ 각 콘텐츠 유형에 대한 레이블을 추가하여 분석을 다양화하려고 합니다.

+ 링크에서 썸네일 이미지 자동으로 가져올 수 있게 하는 방법 없을까요?! 고민중입니다.

👉 혹시나 더 보면 좋을 지표와 내용들이 있을까요?

👉 대시보드 링크 : https://lnkd.in/gRGdQE2i

원본 포스팅 링크

📊 링크드인 통계 분석 대시보드 만들기

BI_image_thumbnail
GROWTH

앰플리튜드(Amplitude), 왜 쓰는 걸까?

June 17, 2024

왜 유니콘 스타트업에서는 앰플리튜드를 쓰는 그로스마케터를 구할까?

앰플리튜드란?

웹/앱 서비스 내에서 사용자들의 행동을 분석할 수 있는 프로덕트 애널리틱스(Product Analytics), 서비스 분석 툴입니다.

앰플리튜드(Amplitude) 웹사이트 메인 페이지

마테크 솔루션 중에 프로덕트 애널리틱스, 그 중에 앰플리튜드

앰플리튜드는 프로덕트 애널리틱스(Product Analytics)입니다. 단어가 영어일 뿐, 직역하면 서비스 분석 솔루션/툴입니다. 온라인 비즈니스, 서비스, 프로덕트, 마케팅 서비스들을 도와주는 기능들을 솔루션(Solution)/툴(Tool)이라고 많이 지칭합니다. 특히, 마케팅 쪽에서는 마테크 솔루션(Mar-tech Solution), 마테크 툴(Mar-tech Tool)이라고도 하죠.

2022 마테크 솔루션 Landscape
마테크 툴은 엄청나게 많다....

주요 마테크 솔루션 소개 이미지
주요 툴들은 또 이렇게 나눌 수 있습니다.

구글 애널리틱스보다 '앱'에 좀 더 특화된 솔루션!

가장 유명한 마테크 솔루션으로는 구글 애널리틱스(Google Analytics)가 있습니다. 무료인 만큼 대중성이 높고 자사몰이 있는 웹 서비스를 하신다면 들어보셨을 것입니다. 이전에는 앱이 약하다는 단점이 있었지만, 최근 GA4는 앱까지 커버합니다.

구글애널리틱스(Google Analytics4) 보고서 화면
구글애널리틱스(Google Analytics4) 보고서 화면

GA4가 앱까지 커버한다 해도 아직 앱 분석의 디테일은 앰플리튜드가 강합니다. 즉 GA는 웹(Web)>앱(App), Amplitude는 앱(App)>웹(Web)의 순으로 장점이 있습니다.

또한 구글애널리틱스는 사용자를 서비스 웹/앱에 들어오게 하는 유입에 초점이 맞춰져있습니다. 사용자 획득이라고 하여, UA(User Acquisition)으로도 이야기하는데요. 모든 서비스의 첫 시작이라고 할 수 있습니다.

유튜브를 구독하기 위해서, 무신사에서 상품을 사기 위해서, 밀리의 서재에서 책을 읽기 위해서는 결국 유튜브, 무신사, 밀리의 서재에 유입되어야 하니까요. 즉 목표가 되는 전환을 위해서는 유입이 필수 요건입니다.

일례로 구글애널리틱스는 사용자의 유입을 만들어내는 채널(Organic, Paid, Refferal)의 데이터를 세부적으로 확인할 수 있습니다. (물론 앰플리튜드로도 확인할 수 있습니다.)

  • 오가닉 채널(Organic)은 자연적인 방식으로, 네이버나 구글에 키워드를 직접 검색해서 들어온 경우
  • 페이드 채널(Paid)는 퍼포먼스마케팅와 연계된 방식으로, 페이스북/인스타그램 광고나 네이버 검색 광고를 클릭해서 들어온 경우
  • 추천(Referral)은 링크를 타고 들어오는 경우 등

앰플리튜드 (Amplitude)와 구글애널리틱스(Google Analytics4) 비교표
앰플리튜드가 왜 필요한가요? 앱 분석을 위해 필요합니다.

앰플리튜드는 유입 이후 웹/앱 서비스 내에서의 사용자 여정(User Journey)을 행동(Event)을 기반으로 세부적으로 확인할 수 있습니다.

  • Q1. 사용자가 우리 서비스에 유입된 이후에 직후에 가장 많이 한 행동은 무엇일까?
  • A1. SALE을 눌러볼까, 상품을 검색해볼까, 가입을 할까, 혜택을 볼까?
  • Q2. A 브랜드에서 구매 완료 행동을 N개월에 걸쳐 X회 이상 한 유저들의 특성은 무엇일까?

앰플리튜드의 퍼널(Funnel) 차트
앰플리튜드의 퍼널(Funnel) 차트

UA 관점 (User Acquisition) 이후로 언급되는 것은 리텐션 (Retention)인데요. 첫 방문, 첫구매로 사용자의 행동이 끝난다면 서비스가 장기적으로 살아남기는 어렵겠죠? 이에 따라 두 번, 세 번 방문하고 또 전환되는 재방문과 재구매가 중요합니다.

앰플리튜드는 전환된 사용자들의 행동을 세부적으로 분석하여, 여러 번 방문/전환한 충성 사용자들을 코호트화 할 수 있습니다.

(*코호트: 동일 특성을 가진 사용자의 집단화) 충성 사용자들의 코호트를 분석하여 특성을 파악하고 다른 사용자들이 충성 사용자가 될 수 있도록 유도할 수 있습니다.

즉, 구글 애널리틱스가 UA에 강점이 있는 솔루션이라면 앰플리튜드는 리텐션에 강점이 있는 솔루션이라고도 이야기할 수 있겠습니다. (물론 GA도 Retention을 볼 수 있고, 앰플리튜드도 UA를 볼 수 있습니다.)

앰플리튜드(Amplitude), 개인에게는 왜 필요한가요?

스타트업 쪽에서 데이터 분석 역량을 요하는 직군에게는 우대 사항 혹은 자격 요건이 됩니다. 오늘 기준 원티드에서 찾아본 채용 공고인데요.

여기어때에서 Growth Marketer(그로스 마케터)를 채용하는 공고에 주요 업무로 데이터 분석과 그로스 전략 수립이, 자격 요건에 마케팅 툴 [MMP(Appsflyer, Adjust), Amplitude, Braze, GA 등]에 대한 내용이 기재된 것을 확인할 수 있습니다.

채널톡의 마케팅 매니저 채용 공고 내에도 우대사항으로 세일즈포스(아마 태블로겠죠?), 앰플리튜드 등 데이터 솔루션을 통한 성과 측정이 언급됩니다.

여기어때 컴퍼니 그로스 마케터 채용공고
채널톡 마케팅 매니저 채용공고

결국 더 좋은 앱을 만들어 (수익을 높이고자) 쓰는 솔루션입니다.

왜 앱 데이터를 분석해야 할까요? 더 좋은 앱을 만들기 위해서겠죠. 앱 데이터는 무엇으로 구성될까요? 사용자들의 정보와 행동에 의해서 앱 데이터가 쌓입니다.

즉 사용자의 행동을 분석할수록 더 나은 프로덕트/서비스를 만들 가능성이 높아집니다.

사용자들이 불편을 느끼는 지점이 사용자들이 이탈하는 지점일테고, 불편을 개선하면 이탈률이 낮아지고 잔존율이 높아지며, 잔존율이 높아지면 전환의 대상이 되는 모수가 많아지기 때문입니다. 즉 더 많은 전환을 유도할 수 있게되어 서비스가 목표하는 KPI - 매출이나 회원수 등 - 을 달성할 수 있게됩니다.

앰플리튜드(Amplitude), 회사에게는 왜 필요한가요?

앰플리튜드를 사용하면

여러 종류의 데이터를 한 번에 보여주는 대시보드의 형태를 쉽게 쓸 수 있게 됩니다.

대시보드는 여러 차트의 구성으로 이루어져있는데요.

예를 들어 UA 대시보드라고 하면, 첫방문수 추이(차트1), 가입수 추이(차트2), 첫구매수 추이(차트3), 첫방문을 광고 매체 별로 쪼갠 것(차트1-1) 등으로 구성될 수 있겠습니다.

대시보드 한 판에 여러 지표 보기

이외 데이터에 대한 접근성을 높여서 회사 구성원들의 데이터 기반 의사 결정 (data-driven) 의사결정을 돕습니다. 데이터를 sql, python으로만 추출하는 경우 이 데이터 스킬셋이 있는 사람들만 데이터를 추출할 수 있는데요. Amplitude는 한 번 도입해두면 차트를 그리는 것이 훨씬 쉬워, 원하는 것을 보기도 쉽습니다.

다양한 구성원 간의 데이터 드리븐 의사결정

마지막으로 데이터의 연동이 빠르다는 것 또한 장점입니다. 어제의 매출 데이터도, 오늘 오전의 유입 데이터도 바로 확인할 수 있습니다.

데이터의 빠른 업데이트

앰플리튜드 누가 쓰나요?

마케터와 서비스기획자(PM/PO), 데이터 분석가(Data Analyst), UIUX 디자이너 등 여러 직군에서 활용할 수 있습니다.

언제, 어디에 쓰나요?

전체 구성원들이 함께 확인할 수 있는 KPI 대시보드

마케터가 사용하는 마케팅 대시보드

서비스기획자(PM)이 사용하는 프로덕트 대시보드

디자이너가 사용하는 디자인 대시보드 등이 있습니다.

앰플리튜드의 마케팅 대시보드 샘플
앰플리튜드의 마케팅 대시보드 샘플
앰플리튜드의 이커머스 KPI 대시보드 샘플
앰플리튜드의 이커머스 KPI 대시보드 샘플
앰플리튜드의 콘텐츠 대시보드 샘플
앰플리튜드의 콘텐츠 대시보드 샘플
앰플리튜드의 프로덕트 대시보드 샘플
앰플리튜드의 프로덕트 대시보드 샘플

앰플리튜드 어떻게 쓰나요?

무료 버전이나 구독 모델을 사용해볼 수 있습니다.

앰플리튜드의 플랜 비교표

https://amplitude.com/pricing

앰플리튜드 정규 도입은 한국 공식 리셀러인 AB180/CJ맥소노미를 통해 진행할 수 있습니다. 이후 기획자들의 택소노미 설계와 개발자들의 구현을 통해 도입이 완료됩니다.

앰플리튜드의 존재가 당연해집니다.

앰플리튜드를 한 번 사용하면 없는 것을 상상하기 어렵습니다. 앰플리튜드의 효능을 체감하는 곳들은 많습니다. 29CM, 무신사, SSG, 올리브영 등 '앱'이 중요한 주요 커머스들은 많이들 사용합니다!

(참조) 29CM의 데이터 그로스팀의 데이터 분석가 분이 쓰신 글

목적 조직에서의 DA가 하는 일

앰플리튜드 본사? 리셀러? 컨설팅펌?

앰플리튜드의 한국 공식 판권은 AB180과 CJMaxonomy(CJ맥소노미)가 가지고 있습니다. 제가 재직 중인 마티니아이오(martinee.io)는 컨설팅펌입니다.

마티니의 그로스팀은 Amplitude를 도입할 때 택소노미 설계를 도와주고 데이터 파이프라인을 구축을 지원하며, 대시보드의 기획과 제작을 돕습니다. 즉 앰플리튜드가 '참고서'라고 했을 때 이를 판매하는 서점은 AB180과 CJ맥소노라면, 마티니는 과외 선생님입니다. 어떤 식으로 과외가 진행되는지, 시연을 원하시는 분들은 연락주세요!

원본 포스팅 링크

앰플리튜드(Amplitude), 왜 쓰는 걸까?

BI_image_thumbnail
GROWTH

태블로 대시보드, 왜 구축하는 걸까?

June 14, 2024

01. 데이터드리븐이 도대체 뭐길래

왜 다들 데이터드리븐을 이야기할까요?

데이터드리븐의 중요성을 논하기 전에, 어제 회의를 떠올려 보면... 회의 때 다들 어떤 이야기를 하고 계신가요?

(As-is) 모호한, 정성적인 이야기들
  • 가입 과정이 복잡해서 회원 수가 정체된 것 같아요.
  • 이번에 리뉴얼한 UI가 사용성이 좀 떨어지는 것 같아요.
  • 새로 나온 상품이 별로라서 매출이 떨어진 것 같아요.
  • 평균 체류시간이 지난주 대비 낮아진 것 같아요.

(To-be) 구체적인, 정량적인 이야기들
  • 가입 과정 중 핸드폰 번호 인증에서 이탈률이 다른 영역 대비 10%p 높아요.
  • UI 개선을 위해 A/B 테스트를 7일 간 운영했는데 개선안의 구매 전환율이 1% p 높았어요.
  • 새로 나온 상품의 클릭률이 기존 상품보다 5%p 낮네요.
  • 평균 체류시간이 지난주 대비 3%p 전월 대비 13%p 감소했네요.

눈치채셨나요?

같은 상황(가입 과정, UI, 상품 매출, 체류시간)에 대해서 이야기하고 있는데 숫자가 더해진 것만으로 내용이 구체적이 되었습니다.

As-is의 상황은 상황 설명과 추측으로만 이루어져 특정 팀을 탓하는 것처럼 들리기도 하네요. (마케팅팀, UIUX팀, 상품팀, 프로덕트팀...에게 잘못을 전가하는 느낌이 묘하게 들죠.) 이에 반해 To-be의 상황은 상황 설명에 숫자가 붙고 비교군이 명확해지면서 문제를 정확히 직시하게 해줍니다.

(To-be) 구체적인, 정량적인 이야기들 > 바로 적용해볼 수 있는 실행방안 도출하기
  • 가입 과정 중 핸드폰 번호 인증에서 이탈률이 다른 영역 대비 10%p 높아요.

✅ 카카오로 간편 가입하면 핸드폰 인증은 필요 없으니, UI에서 카카오를 좀 더 강조한 A/B 테스트해보시죠!

  • UI 개선을 위해 A/B 테스트를 7일 간 운영했는데 개선안의 구매 전환율이 1% p 높았어요.

✅ 개선안 내에서 어떤 영역의 클릭률이 가장 높고 어느 영역에서 이탈하는지 추가 분석해볼까요?

  • 새로 나온 상품의 클릭률이 기존 상품보다 5%p 낮네요.

✅ 클릭률이 높은 상품들의 썸네일들을 모아서 다른 점이 있는지 인사이트 찾고, 이미지 A/B 테스트 운영해보죠!

  • 평균 체류시간이 지난주 대비 3%p 전월 대비 13%p 감소했네요.

✅ 신규 캠페인에 의해서 유입 채널별 비중이 달라졌는지 확인해보고 사용자 특성 및 체류시간 점검해보죠.

CRM 마케터와 PM의 분석
상황을 데이터로 분석하면 어떤 행동을 해야할지 명확해져요!

숫자와 비교군이 더해졌을때 데이터드리븐이 가능해집니다!

구성원 별로 한 상황에 대해 여러 측면의 추측을 하는 것이 아닌, 동일한 시야를 가질 수 있게 되어 의견 교환이 훨씬 원활하고 빠르게 같은 결론에 도달할 수 있죠. 결국 데이터드리븐은 내 머릿속 드리븐이 아닌, 팀장님 머릿속 드리븐도 아닌, 사장님 머릿속 드리븐(....!)도 아닌

우리 모두가 합의할 수 있는 '데이터'를 기반으로 의사결정을 한다는 데에 그 핵심이 있습니다.

데이터드리븐의 중요성은 인지했다면 그 다음은 무엇일까요?

데이터드리븐 의사결정과 그것이 가능해지는 환경을 구축하는 것이겠죠.

02. 데이터를 잘 보기 위해서는?

보통은 엑셀, 구글 스프레드시트, PPT등으로 데이터를 봅니다. 엑셀/스프레드 시트의 단점은 숫자의 나열이기에 표를 해석하기가 쉽지 않다는 것이고 (물론 엑셀로 그래프를 구현할 수 있지만요!) 엑셀/시트를 raw data로 그래프를 그려 PPT에 얹으면 보기는 좋아지만 수작업이 필요하다는 것이 단점입니다.

특히 마케터들은 다수의 광고 매체와 MMP, 내부 DB의 데이터를 함께 봐야하므로 아무리 pivot을 돌린다고 해도 재가공해야하는 rawdata가 꽤나 많고 일간/주간 성과를 정리하는 것이 결국 시간을 왕창 잡아먹는 업무가 되죠.

엑셀/스프레드 시트 피봇 테이블 예시
돌려 돌려 pivot table~!~!~!

그래서 태블로로 대시보드를 구축합니다.

결국 대시보드의 가장 좋은 점은 '자동화' 입니다. 직접 다운로드 받던 데이터들은 API로 호출해서 받아내고, 직접 정제하던 데이터들 또한 미리 정의해둔 데이터 스키마에 의해 분류되어 적재됩니다. 그래프, 필터, 전일/전주/전월 추이 등 형식을 미리 정해두면 데이터가 자동 업데이트되며 값은 채워집니다.

Marketing Dashboard 예시
Data pipeline 예시

Marketing Dashboard 예시
Marketing Dashboard 예시

03. 대시보드를 구축하는 4단계

태블로 대시보드를 제작하기 위해는 4단계의 프로세스가 필요합니다.

환경 점검 > 데이터 수집 > 데이터 저장 > 데이터 시각화인데요.

자세한 내용은 다음 번 글에서 다뤄보도록 하겠습니다!

대시보드를 구축하는 4단계
태블로 대시보드 구축을 위한 4단계

원본 포스팅 링크

태블로 대시보드, 왜 구축하는 걸까?

BI_image_thumbnail
FULL FUNNEL

루커스튜디오 신규 릴리스 : 📅 타임라인 차트

June 4, 2024

루커스튜디오 신규 릴리스 : 📅 타임라인 차트

루커스튜디오 신규 릴리스 : 타임라인 차트 예시 이미지

👉 구현방법

프로모션 시작날짜, 종료날짜, 프로모션 이름만 있다면 간단하게 구현가능 합니다.

🙋 활용 방법

커머스 뿐 아니라 프로모션이 빈번한 서비스에서는 다양한 프로모션이 진행되기도 하고 심지어 겹쳐서 진행되기도 합니다.

프로모션은 매출에 직접적인 영향을 주는 중요한 요소이기 때문에 프로모션에 대한 매출 영향도를 잘 분석해서 프로모션 효과를 지속적으로 높여나가야 합니다.

다만, 앞서 말한 것처럼 여러 개가 동시에 진행되는 프로모션의 매출과 영향도를 구별해서 보는 것은 쉽지 않습니다.

아래의 루커스튜디오 차트를 활용하면 프로모션에 대한 타임라인을 간단하게 시각화할 뿐 아니라 각 프로모션 주요 지표도 동시에 확인 가능합니다.

차트 내 필터 클릭 시 발생하는 기능 오류가 있긴 하지만 추후 차트에 대한 완성도가 높아진다면 날짜별 액션에 대한 성과분석이 중요한 프로모션 & CRM 마케터 분들에게 유용한 방식이 될 것 같습니다.

원본 포스팅 링크

루커스튜디오 신규 릴리스 : 📅 타임라인 차트

BI_image_thumbnail
FULL FUNNEL

KPI 대시보드 | 루커스튜디오

June 3, 2024

KPI 대시보드 | 루커스튜디오

루커스튜디오 KPI 대시보드 메인 썸네일

비즈니스의 주요 지표를 파악하고 데이터 기반 의사결정을 하는 것은 매우 중요합니다.

다양한 기업들을 대상으로 데이터 드리븐 환경 구축을 목적으로 데이터 대시보드를 만들고 있습니다.

그 중 무엇보다 우선적으로 구축하는 것은 비즈니스 주요 지표를 한판에 보면서 전반적인 흐름을 살펴보는 KPI 대시보드 입니다.

KPI 대시보드를 구축하는 방법은 다양하지만 중요한 기준 중 하나는 지표의 표현 방식입니다.

비즈니스 주요 지표는 집계된 숫자로는 그 의미를 한눈에 알 수 없습니다.
(e.g.오늘의 매출 100만원)지표가 데이터로서 충분한 의미를 가지기 위해서는 비교와 비율이 필요합니다.

만약 해당 지표가 시계열 데이터라면 트렌드까지 더해주면 더욱 완벽한 지표 기준이 될 수 있습니다.

예를 들어 아래와 같이 해석할 수 있게 분석과 대시보드가 구성되어야 합니다.

"오늘 매출 100만원은 전일대비 30% 상승한 수치입니다. 다만 최근 1주일 트렌드 기준 하락추세이기 때문에 추가적인 매출 상승 전략이 필요합니다."

해당 내용을 담은 대시보드가 궁금하신 분들은 아래 링크를 확인해주세요.

📑 대시보드 보기

💡 데이터 : KR Superstore

📊 BI : 루커스튜디오

원본 포스팅 링크

KPI 대시보드 | 루커스튜디오

BI_image_thumbnail
GROWTH

AARRR 프레임워크로 앰플리튜드 대시보드 만드는 방법

May 10, 2024

마티니는 최근 버거킹 코리아와 함께 Amplitude를 활용한 그로스 프로젝트를 진행하고 있습니다.

고객의 참여를 유도하고 장기적으로 수익 증대를 실현하는 그로스 마케팅의 첫 단추인 AARRR 퍼널 구현 사례를 공유하고자 합니다.

이 글에서는 AARRR 프레임워크의 정의부터 해당 프레임워크를 적용하여 어떻게 대시보드 목차를 구성하고 직접 구현하는지에 대한 플로우를 설명하였습니다. 차트 예시는 Amplitude의 데모 계정의 데이터를 활용하여 구현하였습니다.

1. AARRR은 무엇인가요🧐? 중요하게 생각해야 하나요?

‘그로스 해킹’이라는 단어를 처음으로 만들어낸 션 앨리슨은 비즈니스가 성장하기 위해서는 ‘좋은 제품을 사람들이 어떻게 사용하게 만들지’를 고민하는 것이 매우 중요한 시작점이라고 했습니다. 그는 비즈니스가 최대한으로 성장할 수 있는 방법을 계속해서 실험하여 그로스 해킹의 프레임워크가 있다고 주장했습니다.

실제로 이러한 프레임워크를 활용해서 Dropbox는 10명의 직원에서부터 지금은 10억 달러 (한화 1조원)이 넘는 초 대기업이 되었습니다.

그로스 분석의 목적 사이클

그로스 분석의 목적은 서비스별 지속 가능한 선순환의 비즈니스 사이클을 만드는 것입니다.

그럼, 이 사이클은 어떻게 찾아낼 수 있을까요? 지금까지 해왔던 대로의 ‘관습’은 새로운 소비자의 변화를 쫓아가기에 느리고, ‘감’은 불확실합니다. 이때 우리는 ‘데이터’를 활용하게 됩니다.

과학적으로 접근해서 이러한 사이클의 단서를 찾을 수 있습니다. 즉, 션 앨리스가 강조하는 ‘과학적 접근’의 ‘그로스 해킹 프레임워크’가 바로 ‘AARRR’입니다.

그로스 해킹 퍼널인 AARRR은 Acquisition(유입), Activation(활성화), Retention(리텐션), Revenue(매출), Referral(추천)의 5단계로 이루어져 있습니다.

AARRR 프레임워크
AARRR 프레임워크

버거킹 서비스에 대조해 보면 아래와 같은 질문들을 나열해 볼 수 있으며, 해당 질문들이 바로 각 단계별로 고려해야 하는 지표를 의미합니다.

📝 AARRR Funnel

(1) Acquisition (유입, 획득)

  • 고객들이 얼마나 버거킹 앱에 접속(설치, 방문, 가입) 하나요?
  • 어떤 고객들이 버거킹 앱에 접속하나요?
  • 어떻게 고객들이 버거킹 앱을 알게 되었을까요?
  • 고객들이 어떤 프로모션을 보고 앱에 접속하나요?

(2) Activation (활성화)

  • 고객들은 버거킹에서 첫 주문을 할 때 좋은 경험을 했나요?
    • 첫 주문 시 어떤 아이템을 구매하나요?
    • 첫 주문 시 어떤 쿠폰을 쓰나요?
    • 첫 주문 시 어떤 플랫폼을 많이 이용하나요?
    • 첫 주문 시 어디서 이탈을 많이 하나요?

(3) Retention (리텐션)

  • 우리 고객들의 리텐션은 어떻게 되나요? 급격하게 감소하나요? 완만한 평행선을 이루고 있나요?
  • 재구매 리텐션은 어떻게 되나요?
  • 재구매 주기는 어떻게 되나요?
  • 서비스 별로 리텐션이 다른가요?
  • 리텐션이 높은 고객들이 많이 하는 특정 행동이 있나요?

(4) Revenue (매출)

  • 앱 주문 고객과 일반 고객들의 매출은 어떻게 되나요?
  • 앱 주문 고객들이 어떤 상품 종류를 많이 구매하나요?
  • 매장별로 매출이 어떻게 다른가요?
  • 어떤 쿠폰을 구매할 때 가장 많이 쓰나요?
  • 주문을 많이 하는 고객들이 많이 하는 특정 행동이 있나요?
  • 앱 주문의 건단가는 어떻게 되나요?
  • 앱 주문의 객단가는 어떻게 되나요?
  • 주문자 당 구매 평균금액(ARPPU)는 어떻게 되나요?

(5) Referral (추천)

  • 바이럴 마케팅의 효과가 있나요? 유입이 있었나요?

그럼 우리는 위 질문에 대한 답을 어떻게 찾을 수 있을까요? Amplitude라는 프로덕트 분석 툴을 활용하여 AARRR 대시보드를 구현하여 확인할 수 있습니다.

📝 AARRR Funnel에 따른 대시보드 목차 구성

(1) Acquisition (유입, 획득)

  • DAU (Daily Active User, 일별 활성 유저)
  • MAU (Monthly Active User, 월별 활성 유저)
  • 회원가입
  • 설치

(2) Activation (활성화)

  • 첫 주문
    • 상품 항목(아이템)
    • 쿠폰, 프로모션
    • 플랫폼
  • 첫 주문 경로 (퍼널)

(3) Retention (리텐션)

  • 방문 리텐션
  • 구매 리텐션
  • 코호트별 리텐션 Engagement Matrix

(4) Revenue (매출)

  • 주문
    • 주문 건수
    • 신규 유저, 기존 유저의 주문 건수 비중
    • 주문 이벤트 Engagement Matrix
    • 주문 이벤트 Compass
  • 매출
    • 일별 매출
    • 상품 항목별 매출
    • 쿠폰별 매출
    • 플랫폼별 매출
  • 주문 수
  • 고객 수
  • 건단가
  • 객단가
  • ARPPU (주문자의 주문 평균 금액)

(5) Referral (추천)

  • 입소문 계수 (WOM, Word of Mouth)

2. Amplitude를 활용하여 AARRR 대시보드 구현하기

우선 서비스 특성에 맞춰 유저 코호트를 생성합니다. 예를 들면 앱 주문, 웹 주문과 같이 주문 채널, 주문 횟수, 연령대, 주문 금액대, 성별 등 특성을 기반하여 유저 코호트를 생성하고 코호트와 전체 유저별 차이를 확인합니다.

더불어 프로모션의 주기, 사용 주기를 바탕으로 각 차트의 기간을 정합니다. 최근 30일 자, 일자별 혹은 최근 90일, 월별 등의 날짜 옵션으로 정할 수 있습니다.

*Amplitude 차트는 목업 데이터를 활용하였습니다.

*각 항목별 주요 테이블 차트만 예시로 설명하였습니다.

(1) Acquisition (유입, 획득)

1️. DAU (Daily Active User, 일별 활성 유저)

앰플리튜드(Amplitude) DAU 확인 화면
  • Segmentation 차트를 활용하여 DAU, WAU, MAU 차트를 만들 수 있습니다.
  • Start Session, 메인 페이지 뷰 등 유입으로 인정하는 이벤트를 기준으로 잡습니다.
  • 대시보드에 내가 만든 DAU 차트를 추가하고 > Show summary matrics 를 클릭하면 현재 활성 유저 수, 증감률을 차트와 함께 대시보드에서 즉시 확인할 수 있습니다.
앰플리튜드(Amplitude) Show summary matrics 화면
앰플리튜드(Amplitude) 유입 획득 DAU 대시보드 스코어카드

📌  체크 포인트

  • DAU, MAU 평균, 최고치, 최저치
  • 프로모션 전후 증감률
  • 유저 코호트와 전체 유저 차이

2️. 회원가입

  • 회원가입률

3️. 설치

  • AppsFlyer, Airbridge와 같은 MMP와 Amplitude를 연동하면 Amplitude 대시보드에서 인스톨과 미디어 소스 값을 확인할 수 있습니다.
앰플리튜드(Amplitude) MMP 데이터 연동 대시보드 예시

📌  체크 포인트

  • 설치 평균, 최고치, 최저치
  • 프로모션 전후 증감률
  • utm 소스 별 설치 수

(2) Activation (활성화)

1️. 첫 구매 경로

앰플리튜드(Amplitude) 활성화(Activation) 차트 화면
  • 만약 구매 경로가 View Item DetailsAdd to CartCheckoutComplete Purchase 순이라고 가정했을 때, 첫 구매 경로를 구하기 위해서는 기준이 되는 이벤트에 Historical Count = 1 조건을 걸어 확인할 수 있습니다.
    • Historical Count란 (링크): 특정 이벤트를 N번 수행한 횟수를 기준으로 고객을 식별할 수 있는 필터링 조건입니다.
  • Measured as 조건으로 Completed within 5 days으로 확인하였습니다.
    시작 이벤트인 View Item Details에서 마지막 이벤트인 Complete Purchase까지 대부분의 유저가 5일 내에 전환을 완료했기 때문입니다. 이는 Time To Convert 측정을 통해 확인할 수 있습니다.
  • 만약 더 보수적으로 경로 전환율과 이탈률을 확인하고 싶을 경우 Measured as 조건을 1일 이내 등 제한을 걸어 확인이 가능합니다. 보수적인 조건, 전환 완료 시간 조건 등 두 가지의 조건을 각각 비교하여 확인할 수도 있습니다.
앰플리튜드(Amplitude) 활성화(Activation) 구매 과정 확인 차트

📌  체크 포인트

  • 각 퍼널 단계의 전환율과 이탈률
    • 유저 코호트별 비교 가능
  • 전환 소요 시간

(3) Retention (리텐션)

1️. 리텐션 Engagement Matrix

  • 방문 이벤트와 관련된 이벤트의 수와 빈도에 있어서 연관성을 가진 다른 행동(이벤트)를 확인할 수 있는 차트입니다.
  • A > B > C > D 순으로 사분면을 확인하여 방문과 관련된 중요 이벤트들을 확인할 수 있습니다.
  • x축은 빈도(얼마나 더 자주 한 행동인지)를 나타내며, y축은 수(얼마나 더 많은 유저가 한 행동인지)를 나타냅니다. 따라서 A면에 있는 이벤트는 평균보다 더 많은 유저가, 더 높은 빈도로 수행한 이벤트라는 것을 의미합니다.
  • App Push, In_App_Message Impression과 같은 분석과 관련도가 낮은 이벤트는 수동으로 체크박스 해지하여 필터링 적용할 수 있습니다.
앰플리튜드(Amplitude) 리텐션(Retention) 차트 화면

📌  체크 포인트

  • 리텐션 주기 (방문/주문)
  • 코호트별 리텐션
  • 코호트별 자주 방문하는 요소(이벤트) 찾기

(4) Revenue (매출)

1️. 주문 이벤트 Compass

앰플리튜드(Amplitude) 매출(Revenue) 차트 화면
  • 7일 이내 어떤 특정 이벤트가 선택한 코호트 그룹(위 그래프 내 ❷번, Users who complete purchase ≥ 1x)과 상관관계를 가지고 있는지 히트맵 형태로 확인할 수 있는 차트입니다.
  • 상관관계 지수에 따른 해석
    • Highly Predictive(예측성 높음): correlation ≥ 0.4
    • Moderately Predictive(중간 예측성): correlation ≥ 0.3
    • Slightly Predictive(약간 예측 가능): 0.3 > correlation ≥ 0.2
    • Not Predictive(예측되지 않음): correlation ≤ 0.2

2️. 건단가

앰플리튜드(Amplitude) 건단가 확인 차트
  • 매출이 발생하는 이벤트 (구매, 주문완료)의 매출 이벤트 프로퍼티($revenue: 주문금액)를 기준으로 건단가를 계산합니다. Measured as 에서 주문 금액의 평균값을 구해 건단가를 구할 수 있습니다.
  • 만약 총매출 추이에 대해서 확인하고 싶을 경우, Measured as에서 Average of Property Value 대신 Sum of Property Value로 선택하여 확인이 가능합니다.
    • Property Value는 상단 Event 영역에서 선택한 이벤트의 프로퍼티의 값을 뜻합니다.

3️. 객단가

  • 객단가는 고객 1명의 평균 구매 금액을 의미합니다.
    일반적으로 객단가는 매출액 / 주문자수로 나누어 계산합니다. Amplitude에서는 주문 완료(구매) 이벤트를 통해 구할 수 있습니다.
  • 수식을 적용해야 하므로 Measured as 하단의 Formula를 클릭하여 수식을 적용해야 합니다.
앰플리튜드(Amplitude) 객단가 확인 차트
  • 적용 수식
앰플리튜드(Amplitude) 객단가 적용 수식 설명
  • A: Complete Purchase, B: Complete Purchase로 선택합니다. (주문 금액을 확인할 수 있는 주문 완료 이벤트를 클릭합니다.)
  • 매출액 = 주문 완료 이벤트의 주문 금액의 총합 = PROPSUM(A)
  • 주문자수 = 주문 완료 이벤트를 발생한 유니크(사용자) 수 = UNIQUES(B)
  • Formula = PROPSUM(A) / UNIQUES (B)

📌  체크 포인트

  • 매출
  • 카테고리별 매출
  • 주문 건수
  • 주문 고객 수
  • 객단가
  • 건단가
  • LTV
  • 주문 완료 이벤트에 영향을 끼치는 요소(이벤트) 찾기

(5) Referral (추천)

1️. 입소문 계수 (WOM, Word Of Mouth) (출처:Reforge)

  • Amplitude에서 쉽게 구현할 수 있는 바이럴 지표로 아래와 같이 계산할 수 있습니다.
입소문계수(WOM) 수식
  • New Organic Users, Non-Organic New Users 구하는 방법
    • MMP를 연동하여 UTM 값으로 앰플리튜드에서 확인이 쉽게 가능합니다.
    • Organic User: 주로 (none), direct, search domain 값으로 확인할 수 있습니다.
    • Non-Organic User: 광고 채널 값으로 확인할 수 있습니다.
  • WOM 구하는 방법
앰플리튜드(Amplitude) 입소문 계수 (WOM) 확인 차트
  • Events 설정 영역에서 A: New User (utm_source: (none), Direct), B: Any Active Event를 선택합니다.
  • Measured as에서 Formula를 클릭하고 아래 수식을 입력합니다.
    • UNIQUES(A) / (UNIQUES(B)-UNIQUES(A))
  • UNIQUES(A)
    • A는 utm_source가 (none), Direct로 들어온 신규 오가닉 유저라고 할 수 있습니다.
  • UNIQUES(B)
    • B는 앱 또는 플랫폼 내에서 일정 기간 동안 Active Event를 발동 시킨 유저의 유니크(사용자) 수를 뜻하므로 신규 유저(오가닉+논 오가닉)+복귀 유저의 합산 수를 의미합니다.
  • (UNIQUES(B)-UNIQUES(A))
    • (신규 유저(오가닉+논 오가닉)+복귀 유저)-(신규 오가닉 유저) = 신규 논 오가닉 유저+복귀 유저

3. 끝으로

Amplitude는 프로덕트를 이용하고 있는 고객을 이해할 수 있도록 도와주는 매우 유용한 분석 툴입니다. 하지만 동시에 처음 시작하기에 어려운 툴이기도 합니다. 어떠한 데이터 차트를 만들고 무슨 지표를 봐야 할지 결정하기란 쉽지 않기 때문입니다.

이때 그로스 해킹의 AARRR 프레임워크를 기반으로 질문들을 써 내려가다 보면 답을 얻기 위해 필요한 데이터와 지표가 눈에 보이기 시작할 것입니다. AARRR 대시보드를 통해 서비스의 성장을 확인하고 추가적으로 시도해 볼 만한 인사이트를 얻으시길 바랍니다.

4. 참고 자료

- AARRR: Come Aboard the Pirate Metrics Framework

- Engagement Matrix: discover what your users love (and don't love) about your product

- Reforge

- How to Calculate The Word of Mouth Coefficient in Amplitude

BI_image_thumbnail
GROWTH

혼자서 GA4 연동하고 루커스튜디오 대시보드 만들기-2

January 13, 2024

GTM은 Google Tag Manager의 약자로 구글이 쉽게 웹 사이트에 구글의 태그(코드)를 설치할 수 있도록 도와주는 솔루션이다.

여기서 잠깐... 그럼 태그(Tag)는 무엇일까?

태그는 뭐고 픽셀은 뭔가요? 다른 걸까요?

디지털 마케팅을 접해본 사람이라면 픽셀, 태그라는 용어를 정말 많이 들었겠지만 저렇게 질문을 했을 때 명확하게 답하는 사람은 많지 않다.

정답은 태그(Tag)와 픽셀(Pixel) 모두 같은 말이다(!).

GA4과 같은 제삼자에게(메타일 수도, 구글애즈일 수도, 앰플리튜드일 수도 있다.) 정보를 전송하는 자바스크립트(전송 컴퓨터 언어 종류) 코드 조각을 '태그'라고 부른다.

메타, 카카오에서는 '픽셀'이라 말하고 구글에서는 '태그'라고 지칭한다.

GTM 구조
GTM 구조

태그 스니펫(=코드 조각)은 이렇게 생겼다.

태그 스니펫(코드조각) 구조

위 코드 스니펫은 유저가 로그인 성공했을 때 gtag(구글태그)라고 하는 해당 코드를 발동시켜 user_id를 포함한 login 이벤트를 구글 매체에게 전송하는 역할을 가지고 있다.

즉, 유저가 내가 추적하고자 하는 행동(이벤트)을 했을 때 코드가 작동하면서 유저 행동 정보를 매체에게 전송하고 매체들은 본인들의 집계 기준을 통해서 필터링하여 대시보드에 적재하게 된다.

만약 대시보드 내에 확인되는 수치들이 이상하다면 태그가 정상 발동되는지 가장 먼저 의심해보아야 한다.

자 그렇다면 GA4를 설치하기 위해서는, 당신의 사이트에 1) GTM의 코드와 2) GTM 안에 GA4코드를 설치해야 한다. 그래야 GTM이 작동하면서 GTM 내부에 있는 GA4 코드를 실행시켜 유저 액션 데이터를 GA4 대시보드에 보여주니까!

1. GTM 설치하기

우선 GTM 사이트(링크)에 들어가서 GTM의 계정과 컨테이너를 생성한다.

GTM 사이트 계정 만들기 화면

1개의 계정 안에는 복수 개의 컨테이너를 추가 생성할 수 있다.

GTM 사이트 컨테이너 추가 화면

컨테이너를 생성하면 GTM id가 부여되고 GTM id를 클릭하면 GTM 코드를 확인할 수 있다. <head> 영역의 코드를 복사한다.

GTM 고유 ID 확인

<head> 코드에 부여된 GTM id가 내가 생성한 id와 동일한지 확인을 하고 맞다면 웹 페이지의 HTML <head> 영역의 가장 최상단 영역에 코드를 넣는다.
(가능하면 최! 상단에 넣도록 한다. GTM 코드가 가장 우선적으로 실행되어야 하기 때문에..)

만약 내부 개발자가 자체적으로 구축한 사이트라면 개발자에게 부탁하여 디자인 소스 <head> 영역에 넣어달라고 요청해야 하고 카페24, 아임웹, 고도몰과 같은 호스팅사를 이용해 구축했다면 관리자에 들어가서 쉽게 코드를 추가할 수 있다.

📝 호스팅사 별 GTM 삽입하는 방법

(1) 카페24: 쇼핑몰 설정 > 기본설정 > 검색 엔진 최적화 > 고급 설정 > 코드 직접입력

(2) 고도몰: 기본 설정 > 기본 정책 > 외부스크립트 관리

(3) 아임웹 (링크)

(4) 식스샵 (링크)

카페24 내 GTM 코드 삽입 과정
카페24는 PC 쇼핑몰, 모바일 쇼핑몰 head 영역 두 곳에 GTM 코드를 붙여 넣기 해야 한다.

단, GTM은 내 사이트 영역에만 삽입되어 작동하는 코드이므로 내 사이트 내에 열리는 다른 소유의 사이트에 대해서는 추적이 불가능하다.

가장 대표적인 예로는 Npay 버튼을 클릭했을 때 넘어가는 Npay 결제 화면으로, 해당 페이지는 네이버 페이 권한이기 때문에 GTM으로는 정확하게 결제 완료까지 추적이 불가능하다.

대신 Npay 버튼 클릭 값으로 수치를 추측할 수 있다.

예외적으로 카페24처럼 매체와 네이버 간 API로 직접 연동이 되어 있는 호스팅사라면 매체 대시보드에서 API로 받아오는 구매 건수와 결제금액을 확인할 수 있다.
(카페24 <> 메타의 경우)

2. GA4 코드를 GTM에 삽입한다.

커머스 사이트라면 기본적을 아래 이벤트를 가장 많이 활용할 것이다.

pageview (페이지뷰)

전자상거래 이벤트의 경우 GA4 매뉴얼 문서에 이벤트 명을 명시해 두었으므로 문서를 참고해서 내 사이트에 필요한 이벤트를 선별 하면된다. (링크)

GTM으로 삽입하는 방식은 크게 (1)페이지 URL(2)버튼 클릭 조건으로 삽입할 수 있다.

(1) 페이지 URL 조건으로 삽입하기

페이지 URL 조건 삽입 과정

마티니 아이오 페이지를 예시로 들어보자.

마티니 아이오 홈페이지에 들어가면 상단 바에 'Our Workflow', 'Success Stories', 'Meet Martinee' 탭이 보인다.

만약 방문 유저가 'Meet Martinee' 페이지에 랜딩 했을 때 view_item(상세페이지 조회) 이벤트를 추적하고 싶다면 가장 쉬운 방법으로는 페이지 URL이 변경될 때를 조건으로 설정하는 것이다.

GTM에서 '트리거'는 발생 조건을 의미한다.

우리는 특정 페이지 주소를 조건으로 잡아야 하기 때문에 GTM > 트리거에서 새로 만들기를 클릭한다. 트리거 유형은 'DOM 사용 가능'으로, 특정 페이지 URL이 랜딩 됐을 때만 이벤트가 발동해야 하므로 '일부 DOM 사용 가능 이벤트'로 설정한 후 page path 조건을 걸어둔다.

GTM 트리거 구성 화면

(2) 버튼 클릭 조건으로 삽입하기

버튼 클릭 조건 삽입 과정

만약 유저가 'Meet Martinee' 페이지에 랜딩 했을 때가 아닌, 'Meet Martinee' 버튼을 클릭했을 때 view_item(상세페이지 조회) 이벤트를 발동하고 싶다면 트리거를 클릭요소로 바꾸면 된다.

우선은 웹 사이트 상에서 개발자 도구를 연다. 그 후 내가 추적하고 싶은 아이콘(버튼)에 마우스 커서를 갖다 대면 해당 버튼의 html 코드가 같이 표시된다.

개발자 도구에서 보면 해당 버튼의 클래스 이름은 "font-poppins-bold text-base text-white"이고 버튼 텍스트는 "Meet Martinee"임을 알 수 있다. 그럼 우리는 Click Classes와 Click Text를 가지고 GTM에서 트리거 조건을 걸 수 있다.

GTM 태그관리자 트리거 구성 화면

자, 이제 이벤트 발동 조건을 모두 설정하였으니 이벤트만 설정하면 된다. 이벤트는 GTM의 태그에서 생성할 수 있다. 트리거와 마찬가지로 태그에서 '새로 생성하기'를 클릭하고 이벤트 명을 설정해 준다. 이벤트 명은 내가 대시보드에서 확인할 수 있는 이벤트명과 매체를 명시하는 것이 추후 수정/관리가 용이하다.

GTM 태그관리자 태그 구성

GTM은 구글 마케팅 플랫폼으로 GA4와 연동이 되어 있어 어려운 코드가 필요하지 않다.

이벤트 이름과 내가 설정한 meet_martinee_landing_page 트리거를 설정한 후 '저장'을 클릭하면 Meet Martinee 페이지에 랜딩 할 때마다 GA4의 view_item 이벤트가 발동하게 되는 것이다.

트래킹이 필요한 이벤트의 태그 삽입을 완료하면 GTM 컨테이너 상단의 '미리 보기'를 통해 이벤트가 잘 발동되고 있는지 체크를 해보고, 문제가 없다면 '배포'를 클릭하여 실제 사이트에 코드를 배포하면 된다.

원본 포스팅 링크

혼자서 GA4 연동하고 루커스튜디오 대시보드 만들기-2

BI_image_thumbnail
GROWTH

혼자서 GA4 연동하고 루커스튜디오 대시보드 만들기-1

January 12, 2024

태그(Tag 혹은 Pixel)는 디지털 마케팅을 하기 위해 데이터를 전송하는 역할을 하는 코드 조각으로 디지털 마케팅의 첫 단추라고 생각하면 된다.

약간의 컴퓨팅 지식(예를 들면 javascript, 웹/앱 구조 등등)이 필요할뿐더러 매체마다 메뉴얼이 다르고 업데이트가 빨라 한 번에 지식을 터득하기가 매우 어려웠다. 국내외 블로그, 매뉴얼 문서, 오프라인 강의 등 닥치는 대로 찾아보면서 공부했었다.

그렇게 한 땀 한 땀 구슬 꿰듯이 터득하고 보니 결국 하나의 매체 혹은 마테크(MartTech, Marketing + Technology) 툴을 활용하기 위한 순서가 크게 다르지 않다는 것을 깨달았다.

보통은 아래와 같은 일련의 순서를 따르게 된다.

📝 연동 플로우

1. 내 사이트/앱 컨디션 점검

2. (웹) GTM 태그 설치 / (앱) SDK 설치

3. QA 및 배포

4. 대시보드 설정

5. 활용하기

 5-1. 데이터 분석

 5-2. 데이터 시각화

 5-3. 다른 마테크 툴 또는 매체와 연동

1. 내 사이트 컨디션 점검

개발자 도구, 익스텐션 앱, 디자인 소스에서 코드 찾아보기 등의 방법을 활용한 사이트 점검 모습
개발자 도구, 익스텐션 앱, 디자인 소스에서 코드 찾아보기 등의 방법을 활용해서 점검한다.

우선은 내가 분석해 보고 싶은 사이트/앱의 (접근 권한을 가지고 있어야 하므로 보통은 내 서비스의 사이트 혹은 앱)의 현황을 체크해야 한다. 어떻게 사이트를 구축했는지, 개발자의 지원은 받을 수 있는지, 이전에 사이트에 설치해 놓은 다른 분석 툴이나 매체 코드가 있는지 등을 주로 확인한다.

2. (웹) GTM 태그 설치 / (앱) SDK 설치

GTM 계정 및 태그 화면
GTM 사이트

GTM(Google Tag Manager)은 구글에서 2012년에 웹 사이트 추적 코드를 빠르게 삽입하기 위해 론칭한 솔루션으로, 추적 코드를 매우 빠르게 설치하고 쉽게 수정할 수 있다.

웹 사이트는 주로 GTM을, 앱은 SDK를 활용하여 필요한 태그를 설치하면 된다. 단, 어떤 데이터를 추적하고 싶은지 목적을 잘 설정해야 하고 해당 목적에 따라 세부적으로 어떤 유저 행동을 각각 봐야 하는지('이벤트'라고 부른다.) 잘 설계해야 한다.

이렇게 체계적으로 추적할 이벤트를 설계하는 것을  '택소노미'(Taxonomy)라고 한다.

3. QA 및 배포

QA(Quality Assurance)는 새로운 코드나 기능을 배포하기 전 해당 코드를 실제처럼 구현해 보고 문제가 있는지 여러 번 확인하거나 모니터링하는 단계라고 보면 된다.

QA 단계가 끝나면 실제 웹/앱 서비스에 신규 코드를 배포하여 반영될 수 있도록 한다. QA 단계에서 테스트를 여러 번 진행했더라도 실제 서버에서 에러가 나는 경우도 많으므로 배포 직후에도 테스트를 해보는 것이 중요하다.

4. 대시보드 설정

유저 리텐션 및 코호트 차트 대시보드 화면
GA4에서 제공하는 기본 대시보드 기능 예시 화면
GA4에서 제공하는 기본 대시보드 기능

실제 사이트에서 매체나 마테크 툴 연동 코드를 배포하고 나면 해당 매체나 마테크 대시보드에 수치가 찍히게 된다.

이때 각 대시보드에서 설정해야 하는 기본적인 사항들이 있으므로 잘 숙지를 하고 미리 세팅을 해놓아야 한다. 그렇지 않으면 대시보드에 수치가 반영되지 않기도 한다.

5. 활용하기

루커스튜디오, 태블로를 활용한 대시보드 예시
루커스튜디오, 태블로를 활용한 대시보드

기본적으로 제공해 주는 툴을 사용하다 보면 내가 가지고 있는 추가적인 데이터와 연결하여 분석하고 싶거나 다른 부서의 사람들과 함께 활용하거나 보고용으로 시각화하는 작업이 필요하기도 하다.

이때는 빅쿼리, 스노우 플레이크, AWS와 같은 클라우드 서비스와 연동해서 데이터를 추가하고 정제하는 작업을 하거나 태블로, 루커 스튜디오와 같은 데이터 시각화 툴과 연동해서 추가 작업을 한다.

끝으로,

세상에는 많은 마테크 툴이 있지만 사업 규모나 예산에 상관없이 한 개만 선택해야 한다면, GA4(Google Analytics)를 추천하고 싶다.

일단은 무료인 데다가 다른 구글 마케팅 플랫폼과 연동이 쉬워 진입 장벽이 낮기 때문이다. 그리고 GA3에서 GA4로 업데이트 되면서 대시보드 업로드 속도도 개선되었고, 데이터 분석에 익숙하지 않은 사용자들이 비교적 쉽게 이해할 수 있도록 직관적인 시각화 기능도 추가되어서 초기 도입 툴로 좋다. (실제로도 많은 기업들이 초기 도입 툴로 GA4를 많이 활용하고 있다.)

위에 나열한 것과 같이 많은 단계를 거쳐야 하지만 내 사이트를 방문하는 고객들을 분석하고 기본적인 대시보드(리포트)를 만드는 것, 디지털 마케팅의 필수 단계이다. 다만, 관련된 도메인이 많아서 흩어진 자료를 취합하고 이해하는 과정에서 굉장히 시간이 많이 소요될 것이다.

소규모 기업부터 대기업까지 여러 규모의 담당자들을 만나면서 느낀 점은 치열한 경쟁 속에 비즈니스를 성장시키는 것은, 그야말로 전쟁터 같았다. 그 망망대해 같은 전쟁터에서 누군가의 직관적인 '감'으로만 고객을, 그리고 팀원을 설득한다는 것은 매우 불안한 일이다. 그 말을 하고 있는 나 조차도 흔들리기 때문이다.

데이터는 그때마다 등대와 같은 역할을 해주는 것을 많이 보았다. 어디로 나아갈지 확신을, 방향을 가르쳐줬다. 그래서 누구나 데이터를 활용할 수 있고 볼 수 있어야 한다.

어렵지만 어려운 것으로만 남아서는 안되므로, 혼자라도  GA4를 연동하고 루커 스튜디오를 활용해 기본적인 대시보드를 만들 수 있도록 필요한 개념과 과정들을 이 시리즈로 한 번에 끝낼 수 있도록 소개하려고 한다.

원본 포스팅 링크

혼자서 GA4 연동하고 루커스튜디오 대시보드 만들기-1

BI_image_thumbnail
GROWTH

모바일 게임 마케터 야근 시간 줄여주는 마법같은 대시보드 구축기(무료) feat. python

January 2, 2024

전쟁 같은 모바일 게임 마케팅의 현실

게임 런칭 후, 규모가 큰 예산을 다양한 매체에 투입하여 빠른 최적화를 위해
MMP(Mobile Measurement Platform)와 광고비 데이터를 매칭하는 일은 게임 마케터들에게는 매일이 도전이다.

성과를 리포팅하기 위해 매일 오전에 엑셀로 기계적으로 해야만 하는 매칭 작업은 정말 번거롭다.

엑셀에서의 작업은 단순하지 않다.

굉장히 많은 시트를 참조하는 수식과 표들이 엄청나게 많다.

아래처럼 데이터가 정리되어 있다면 보는 사람도 힘들다.

매일 핑퐁되는 성과 집계 엑셀 파일
일 핑퐁되는 성과 집계 엑셀 파일

이 엑셀에 있는 수 많은 테이블들을 깔끔하게 시각화 대시보드를 만들어서 성과를 볼 수 있는 방법에 대해서 소개하려고 한다.
(다만 약간의 파이썬으로 데이터를 약간 다룰 수 있다면 가능한 수준)

대시보드의 필요성과 구축 방법

대시보드는 만드는게 왜 중요할까?

시각화해서 보면 데이터 분석이 용이해져서? 편해서?

대시보드가 마케터에게 필요한 이유는 전체적인 상황을 빠르게 파악해서 문제 발생 시 빠르게 대응하는데 도움을 준다.

엑셀로 시각화 해서 볼 수 있겠지만..
아무래도 BI툴(Business Intelligence Tool)은 데이터가 많아졌을 때와 지표를 복합적으로 다양한 분석 단위와 엮어서 볼 때 힘을 발휘한다고 생각한다.

마케터도 직접 구축 가능한 대시보드

Looker Studio(구) Data Studio와 빅쿼리(BigQuery)를 활용하여 속도와 효율성을 높일 수 있다.

특히 BI engine이 빅쿼리를 사용하면 빠른 속도로 대시보드를 사용 수 있다.
(대시보드도 데이터 양이 많거나 수식 등이 많아지면 당연히 느려지긴 하지만 엑셀처럼 '응답 없음' 이런 에러는 발생하지 않음)

👉 BI engine 이란?

BigQuery BI Engine은 가장 자주 사용하는 데이터를 지능적으로 캐시하여 BigQuery의 여러 SQL 쿼리를 가속화하는 빠른 메모리 내 분석 서비스입니다.

루커스튜디오에서 BI 엔진이 작동하는지 어떻게 알 수 있는지는 아래 이미지 캡쳐의 번개모양이 표시되고 있다면 지금 BI 엔진이 동작한다는 뜻이다.

루커 스튜디오 테이블 예시(출처: google 공식 문서)
루커 스튜디오 테이블 예시
(출: google 공식 문서)

빅쿼리는 뭐냐? 데이터 웨어하우스 종류의 하나다. 쉽게 말해 데이터 저장소이다.

우리는 이걸 활용해서 엑셀에 데이터만 모아서 구글 저장소에 던져주면 우리는 데이터 해석만 하면 된다!

광고 데이터 분석에 시간을 더 투입할 수 있다.

모바일 게임 성과에 중요한 지표

게임 성과에 중요한 지표는 ROAS, CPA, NRU, CPI, ROAS D+1, ROAS D+7 , LTV 등이 있다.

이해를 위해 쉽게 설명하면 내가 우리 게임을 위해 10억을 광고비에 투자했을 때, 이 돈이 한 명의 잠재 고객을 데려오기 위해 얼마나 효율적으로 쓰였는지?

신규 유저를 효율적인 단가에 잘 데려와서 우리 게임을 얼마나 오랫동안 즐기고 있는지를 파악하기 위해 숫자로 분석하는 지표다.

이 지표들은 트렌드들을 한눈에 볼 수 있어야 되고 특정 지표가 상승하거나 하락했을 때 원인을 분석 단위(광고 매체, 광고 캠페인, 광고 소재) 등에서 빠르게 찾아낼 수 있어야 한다.

마케팅 데이터 대시보드 구축과정

여기 소개드리는 마케팅 대시보드 구축을 위한 데이터 파이프라인은 아래와 같다.

데이터 파이프라인 구조
데이터 파이프라인 구조

게임 회사들은 대부분 모든 회사들이 MMP(AppsFlyer, Adjust, Airbridge 등)를 쓸 것이다.
(보통 대행사들은 광고주 측과 엑셀 파일에 성과를 정리하여 핑퐁 한다)

1. 엑셀 파일에 Raw Data를 수집한다. (MMP, 광고 채널별 데이터) - API를 활용해서 자동으로 데이터를 수집할 수 있지만, 개발자 없이 마케터 혼자 할 수 없다.

2. 데이터 전처리 : 여러 데이터를 네이밍 컨벤션을 기준으로 엮어서(JOIN) 해서 MMP 데이터를 통한 지표와, 광고비, 클릭수와 같은 광고 성과 데이터를 하나의 테이블로 만들어낸다.

3. 전처리한 데이터들을 구글 클라우드 스토리지(GCS)에 파일을 업로드한다.
(여기서 바로 그냥 스프레드시트와 데이터 혼합해서 사용해도 되지 않냐고 할 수 있지만 한 번 해보면 너무 느려서 대시보드를 사용할 수 없을 정도..)

4. 파일을 업로드하면 자동으로 Google Cloud Functions 에서 GCS파일이 업데이트될 때마다 읽어서 빅쿼리에 기존 데이터를 업데이트한다.

Google Cloud Function - 전처리 함수 python
Google Cloud Function - 전처리 함수 python

5. Looker Studio로 데이터 원본을 만들고 대시보드 구축을 시작한다.

엑셀에서도 물론 구현할 수 있지만 데이터의 양이 많아지고 분석 단위 차원이 많아지면 가시성이 떨어진다.. BI툴에서는 엑셀파일 없이 어디서든 열어볼 수 있다.
엑셀에서도 물론 구현할 수 있지만 데이터의 양이 많아지고 분석 단위 차원이 많아지면 가시성이 떨어진다..
BI 툴에서는 엑셀 파일 없이 어디서든 열어볼 수 있다.

Conclusion

마케터들이 직접 수행 가능한 대시보드 구축 프로세스를 통해 모바일 게임 마케팅에서의 복잡한 데이터 작업을 효율적으로 해결할 수 있다.

Looker Sudio와 BigQuery를 활용해서 빠르게 인사이트를 얻을 수 있을 것이다.

원래는 광고 데이터까지 API를 활용해서 자동으로 데이터를 소싱해서 전처리까지 자동화시킬 수 있으나 개발자와의 소통과 개발 리소스를 실무에서 획득하기가 쉽지 않을 것이다.

하지만 오늘 소개한 방법은 실제 퍼포먼스 마케터들도 충분히 활용 가능한 방법이고 엑셀 내 수많은 시트와 장표 지옥에서 해방되고 싶다면 무조건 시도를 해보면 많은 도움을 받을 수 있지 않을까 생각된다.

원본 포스팅 링크

모바일 게임 마케터 야근 시간 줄여주는 마법같은 대시보드 구축기(무료) feat. python

BI_image_thumbnail
GROWTH

[Amplitude] DAU, MAU를 Amplitude에서 확인하는 방법

December 29, 2023

DAU 및 MAU란?

  • DAU (Daily Active Users, 일일 활성 사용자): 하루 동안 서비스를 이용한 고유 사용자 수

이 지표는 서비스의 일일 사용량과 참여도를 측정하는 데 유용합니다.

  • MAU (Monthly Active Users, 월간 활성 사용자): 한 달 동안 서비스를 이용한 고유 사용자 수

이 지표는 장기적인 사용자 참여와 서비스의 월간 성장을 파악하는 데 도움이 됩니다.

DAU와 MAU는 서비스의 성공과 성장을 측정하고, 전략적 의사결정을 내리는 데 중요한 역할을 합니다.

DAU와 MAU를 확인해야 하는 이유

1. 사용자 참여도 파악

- DAU와 MAU를 통해 사용자들이 얼마나 자주 서비스를 이용하는지 파악할 수 있습니다.

- DAU의 중요성

  • 높은 DAU는 많은 사용자들이 매일 서비스를 이용하고 있다는 것을 의미합니다.
    • 이는 일(Day) 기반으로 높은 사용자 참여도를 나타내며, 사용자들이 서비스에 꾸준히 관심을 가지고 있음을 나타냅니다.

- MAU의 중요성

  • 높은 MAU는 장기적인 사용자 관심과 충성도를 나타냅니다.
    • 한달동안 서비스를 사용하는 고유 사용자 수가 많다는 것은 사용자들이 일정 기간 동안 서비스에 꾸준히 참여하고 있음을 나타내며,
      이는 장기적인 관점에서 성공적으로 사용자를 유지하고 있음을 나타냅니다.

- 참고) DAU & MAU

  • DAU와 MAU는 상호 보완적인 지표로서 작용할 수 있습니다.
    • 높은 DAU는 단기적인 사용자 참여도를 나타내는 반면, 높은 MAU는 사용자들이 장기간에 걸쳐 서비스를 계속해서 사용하고 있다는 것을 의미합니다.
    • 이 두 지표를 함께 분석함으로써, 서비스의 전반적인 사용자 참여 패턴을 더 정확하게 이해할 수 있습니다.

2. 성장 추세 분석

- DAU와 MAU를 시간에 따라 추적함으로써, 서비스의 성장 추세의 변화를 분석할 수 있습니다.

  1. 시간 경과에 따른 변화 파악
    • 일정 기간 동안 DAU와 MAU를 추적함으로써, 사용자 기반의 성장이나 감소 추세를 파악할 수 있습니다.
    • 연속적인 기간 동안 DAU와 MAU가 증가한다면, 이는 서비스가 점점 더 많은 사용자를 유치하고 유지하고 있음을 나타냅니다.
  2. 시즌별 변동성 이해
    • 특정 시즌이나 이벤트 기간 동안 사용자 참여도가 어떻게 변하는지 관찰할 수 있습니다.
  3. 마케팅 및 프로모션의 영향 평가
    • DAU와 MAU를 통해 새로운 마케팅 캠페인이나 프로모션이 실행된 후에 이 지표들이 어떻게 변하는지를 분석하고, 이러한 활동들의 효과를 평가할 수 있습니다.
  4. 장기적인 성장 전략 수립
    • 장기간에 걸친 데이터를 분석함으로써, 어떤 전략이 효과적이었는지를 이해하고, 향후 성장 전략을 수립할 수 있습니다.

Amplitude에서 DAU 및 MAU를 확인하는 방법

DAU

1. Amplitude에서 New Chart > Segmentation을 클릭합니다.

앰플리튜드 세그멘테이션 차트 만들기

2. 이벤트 모듈에서 Amplitude 자동생성 이벤트인 Start Session를 선택합니다.

앰플리튜드 자동 생성 이벤트 Start Session

"Start Session" Event 정의
A marker indicating the start of a user session.
A session is a period of time that a user has your app in the foreground.
By default, events within 5 minutes of each other are combined into a single session on a mobile app.
On web, events within 30 minutes of each other are combined into a single session.

유저수를 확인하는 것이 목적이므로 Measure 기준을 Uniques로 선택합니다.

앰플리튜드 Measre 기준 Uniques 선택

3. 해당 방식을 통해 Amplitude에서 DAU를 확인할 수 있습니다. 추가로 메트릭 모듈에서 날짜 설정을 통해 원하는 기간을 설정하여 확인할 수 있습니다.

앰플리튜드 DAU 확인

MAU

1. Amplitude에서 New Chart > Segmentation을 클릭합니다.

앰플리튜드 세그멘테이션 차트 만들기

2. 이벤트 모듈에서 Amplitude 자동생성 이벤트인 Start Session를 선택합니다.

앰플리튜드 자동 생성 이벤트 Start Session

3. 우측의 Advanced 버튼을 클릭해 Rolling Window를 클릭해줍니다.

앰플리튜드 Advanced-Rolling Window 버튼 클릭

월 기준 확인을 위해 기준 day를 30일로 설정해줍니다.

앰플리튜드 측정 기준 day 30일 설정

4. 해당 방식을 통해 Amplitude에서 MAU를 확인할 수 있습니다. 추가로 메트릭 모듈에서 날짜 설정을 통해 원하는 기간을 설정하여 확인할 수 있습니다.

앰플리튜드 MAU 확인

원본 포스팅 링크

[Amplitude] DAU, MAU를 Amplitude에서 확인하는 방법