1. 모든 것을 다 측정하려 하지 말 것
- 어떤 이벤트를 트래킹 해야 할 지 정하기 전에, 트래킹 해야 하는 KPI는 어떤 것이 있는지 등 어떤 것을 트래킹 해야 할 지 우선순위를 정해야 한다.
- 주요 비지니스 혹은 핵심 지표들과 연관된 행동들을 먼저 트래킹 해야 한다.
- 단순히 궁금해서 측정하는 것이라면 굳이 하지 않는 것이 좋다.
- 데이터를 수집하려면 “이벤트 정의 + 속성에 대한 고민 + 엔지니어들의 작업 + 앰플리튜드에 이벤트가 전송되면서 돈이 나감” 등의 비용이 필요하기 때문에 트래킹 하려는 데이터에는 분석 의도가 있는 것이 좋다.
- 분석 의도가 명확하면 어떤 이벤트를 어떻게 수집해야 할 지가 명확해진다.
2. 어떤 지표를 측정해야 할 지 잘 모를 경우?
- 대화식으로 알고 싶은 것을 정리해 보는 것이 좋다.
- ex) 얼마나 많은 사람들이 어떤 수단으로 회원 가입을 완료하는 지 알고 싶다면?
3. Critical Path: Funnel을 생각할 것
사용자가 어떻게 들어와서 어떻게 나가는 지를 파악해야 한다.
- 이벤트를 설계할 때 가장 기본은 제품 내의 핵심 이벤트를 먼저 생각하는 것이다.
- 쇼핑몰을 운영하고 있다면?
- 핵심 이벤트로는 주문완료/ 장바구니 담기/ 회원가입이 있다.
- 제품 내의 중요한 전환의 가장 마지막 step을 고려해야 한다.
- 만약 회원가입 완료 이벤트라면?
- 이벤트의 시작점은 회원가입 페이지 혹은 로그인 페이지 보기가 있을 것이며 이 두 가지 이벤트를 통해 전환을 측정할 수 있다.
- 주문완료 이벤트라면?
- 상품 찾기 이벤트로부터 시작한다. 이는 검색, 브랜드, 카테고리, 이벤트, 각종 배너 등등으로 breakdown 할 수가 있다.
- 이에 대한 중간 경로는 상품 리스트, 후기, 장바구니, 위시, 쿠폰 등으로 breakdown이 가능하다.
- 이벤트 정의할 때 중요한 점은 KPI 고민 > 핵심이벤트 > 시작 이벤트 > 중간 이벤트 > 마지막 이벤트를 고려해야 하며 해당 속성값을 미리 정의하는 것이 중요하다.
holding constant
: 선택한 이벤트들이 가지는 공통적인 속성을 확인할 수 있다. holding constant를 특정 카테고리로 설정해 놓으면 funnel을 동일한 조건으로 통과하는 이벤트들을 확인할 수 있다.
- 어떤 카테고리를 통과했는 지는 그 옆에 있는
broken down by
를 설정해서 확인하면 된다.
트래킹할 이벤트 설계 과정 요약
핵심 이벤트 정의 > 중간 이벤트 정의 > 핵심 이벤트의 속성 정의 > 해당 속성들의 앞 단에 붙일 수 있는 이벤트들을 붙이기 > 각 이벤트가 가지는 고유한 속성 정보들 붙이기
네이밍 컨벤션
- 소문자 사용이 권장 된다.
- Amplitude는 모든 이벤트들과 속성명의 대소문자를 구분하기 때문에 아래와 같이
page
의 대소문자가 달라지면 두 이벤트는 서로 다른 이벤트가 된다.
- ex)
View Product Page
, View Product page
- 한글명을 사용해도 되지만 가급적 영문으로 설계를 하는 것이 좋음
- display명을 변경하면 이벤트를 고를 때 변경한 한글명으로 사용이 가능하다.
- 사용자의 행동에 따라 가급적 명확히 표현해야 한다.
login
이라고 하면 어떤 행동인 지를 정확히 알 수 없다.
click login button
, view login page
, complete login
과 같이 사용자의 행동을 명확히 표현하는 것이 좋다.
- 묶어야 할 지 쪼개야 할 지 잘 모르겠을 때는 일단 이벤트를 쪼개는 것이 좋다.
- 제품 내의 주요한 핵심 이벤트들은 가급적 별개의 이벤트로 수집하는 것이 좋다.
- 메인 페이지에 붙일 수 있는 속성이 무엇인지, 프로덕트에 붙일 수 있는 속성이 무엇인지 고민을 해봐야 하는데, 합쳐 놓으면 각 속성을 관리하기가 어려워진다.
- 따라서, 이럴 때는 각각의 이벤트로 쪼개어 각 이벤트가 가질 수 있는 서로 다른 속성 값을 정의해 주는 것이 좋다.
- 이벤트를 잘 쪼개 놓으면 amplitude에 custom event라는 것이 있는데 이를 이용해 나중에 복수 개의 이벤트를 묶어서 사용할 수 있기 때문에 쪼개는 것이 좋다!
- 아래와 같이 3가지 방식으로 쪼개는 것이 가능하다.
- event-props-value로 나누어 쪼개는 방법
event | props | value |
---|
view page | page name | main |
- | - | product |
- | - | category |
- | - | brand |
- event별로 쪼개는 방법: view main page/ view product page/ view category page / view brand page
- 한 이벤트를 정의한 후 해당 이벤트에 여러 속성을 붙이는 방법
view product list page name | search |
---|
- | category |
- | brand |
- 이런 경우, amplitude 내의 pathfinder를 이용하게 되면 product list page가 찍혀 있을 때 어떤 상품 리스트인 지 잘 파악하기가 어렵다.
- 즉 이 경우, 원하는 속성으로 break down 하기가 어렵기 때문에 가급적 이 방법 보다는 event-props-value로 쪼개는 것이 좋다.
- 속성 값으로 id/code를 수집하는 경우 name 값을 같이 수집하는 것이 좋다.
- 코드나 아이디 값만 보고 이 값이 무엇이 의미하는 지 명확히 알기가 어렵다.
- 직관적인 data insight를 위해서 name 값도 함께 보여주는 것이 좋기 때문
- funnel의 holding constant를 사용하려면 이 조건을 사용할 모든 이벤트들이 동일한 속성을 가지고 있어야 한다.
- Revenue event는 revenue 이벤트 전용 메소드 혹은 revenue properties를 사용하는 것이 권장 된다.
- revenue event는 historical count 지원이 되지 않기 때문에 amplitude에서 제공하는 revenue properties를 사용해야 한다.
- historical count를 트래킹하기를 원한다면 revenue properties를 이용해 트래킹 하는 것이 유리하다.
- 한 건의 주문에 여러 상품에 대한 주문 정보가 전송된다면 반복문을 통해 처리하는 것이 좋다.
- 각 상품에 대한 이벤트 + 주문 이벤트를 수집해야 한다.
- ex) 한 주문에 상품 3개가 있다면 총 4개의 이벤트가 수집 되어야 한다.
강의 출처
Amplitude 101: Data Taxanomy