Circle Button

팀 와이즐리


고객의 구매 여정 데이터 분석하기(feat. Amplitude)


와이즐리컴퍼니가 Amplitude로 더 좋은 고객 경험을 만드는 방식

안녕하세요. 와이즐리컴퍼니 그로스 엔지니어 김재민입니다. 와이즐리컴퍼니는 “어떻게 하면 고객이 더 쉽고 편하게 우리 제품을 구매할 수 있을까?”를 항상 고민합니다. 그 고민에 답을 찾기 위해 Google Analytics(이하 GA), Amplitude와 같은 툴을 도입해 퍼널 분석에 필요한 데이터를 수집하고 있고, 수집한 행동 데이터 및 주문∙재고 데이터를 분석해 더 좋은 고객 경험을 만들고자 노력하고 있습니다.


저는 그중에서도 Amplitude를 활용한 분석 시스템을 구축하며 고객의 행동 데이터를 어떻게 수집하고 이용할지 많이 고민했는데요. 이번 글에서 고민을 풀어내는 과정과 그 과정에서 얻은 작은 팁을 적어보려 합니다.



목차


Amplitude를 도입한 이유

홈페이지에서 Event 정의하기

 Event Taxonomy의 중요성

 이해하기 쉬운 택소노미 작성하기

 와이즐리컴퍼니에 필요한 이벤트는?

Amplitude 데이터를 고객 데이터와 합치기

 추가 과금이 필요했던 두 가지 시도

 작은 데이터 파이프라인 만들기

와이즐리컴퍼니에서 Amplitude를 활용하는 사례

 코호트별 분석

 홈페이지 리뉴얼 성과분석

 랜딩 페이지별 광고 성과 비교

 A/B Test 결과 deep-dive

글을 마무리하며


* 목차를 클릭하면 해당하는 본문을 바로 보실 수 있어요.

Amplitude를 도입한 이유


와이즐리컴퍼니는 웹 스토어도 하나의 프로덕트로 보고 있습니다. 고객님들이 스토어 페이지를 만족하며 이용하실 수 있도록 다양한 분석 및 실험을 진행하는데요. 기존에 사용하던 툴인 GA는 무료였지만 몇 가지 아쉬운 점이 있었습니다.


   ●  GA는 개인별 추적을 지원하지 않습니다. 특정인 또는 특정 집단이 어떤 양상을 보이는지 확인할 수 없습니다.

   ●  GA는 데이터가 실시간으로 수집되지 않습니다. 수치가 업데이트될 때까지 수십 분을 기다린 적도 있었습니다. 특히, QA처럼 즉각적인 변화를 확인해야 할 때 큰 단점으로 작용했습니다.

   ●  GA에서는 보고서를 작성할 때 트래픽 수가 50만을 넘어가면 샘플링된 데이터를 이용합니다. 경향성은 파악할 수 있겠지만 정확도를 신뢰하기 어렵습니다. 현재도 꽤 많은 트래픽이 발생하고 있고, 회사가 커질수록 더 많은 데이터가 쌓일 예정이므로 이것은 단점이라고 판단했습니다.


Amplitude는 이러한 GA의 단점을 모두 보완하는 툴이어서 도입하게 되었습니다. 고객 여정을 직접 확인할 수 있고, 데이터가 실시간으로 업데이트됩니다. 또한 신규 고객 여부, 유입 경로, 특정 브랜드 경험 여부 등 다양한 조건으로 코호트를 생성할 수 있다는 장점도 있습니다. 현재 와이즐리컴퍼니에서는 Amplitude를 통해 퍼널 및 이벤트 분석, 개별 고객 여정 추적, Pathfinder 그래프 기능을 활용한 전체적인 구매 여정 모니터링 등을 하고 있습니다.

홈페이지에서 Event 정의하기


Event Taxonomy의 중요성


Amplitude를 사용하기 위해서는 홈페이지에서 어떤 이벤트를 잡을지 정해야 합니다. 각 이벤트의 이름, 발생 조건, 이벤트가 가진 property(이하 이벤트 속성)를 정의한 것을 Event Taxonomy(이하 택소노미)라고 합니다.


처음 스크립트를 설치할 때 이 택소노미를 잘 정의해두어야 합니다. 만약 택소노미 시트를 대충 만들면서 확인하고 싶은 이벤트를 모두 정의해두지 않는다면, 나중에 이벤트를 추가하고 데이터가 쌓일 때까지 다시 기다려야 합니다. 반대로 너무 세세한 행동까지 추적한다면 비용이 커지며 분석에 방해가 될 수 있습니다. 따라서, 이벤트를 정의할 때 각 이벤트의 활용성을 신중하게 계산하는 것이 중요합니다.

이해하기 쉬운 택소노미 작성하기


택소노미는 백과사전 역할을 수행하므로 읽는 사람이 이해하기 쉽도록 작성해야 합니다. 네이밍 규칙을 정하고, 그 위계에 맞춰 작성한다면 읽기에 좀 더 수월하겠죠? 와이즐리컴퍼니에서는 {이벤트 종류}_{페이지 이름}_{쉽게 식별할 수 있는 단어}_{추가 단어} 의 규칙으로 이벤트 이름을 정의했습니다.



Event Taxonomy 일부. 현재 와이즐리컴퍼니에서는 550여 종류의 이벤트를 수집하고 있습니다.
Event Taxonomy 일부. 현재 와이즐리컴퍼니에서는 550여 종류의 이벤트를 수집하고 있습니다.



비슷한 위계의 이벤트를 각각 따로 둘지, 한 이벤트로 처리할지는 분석하는 사람 입장에 따라 판단해야 하는데요. 이때 이벤트 속성을 적극적으로 활용해서 불필요한 이벤트 종류를 줄이면 좋습니다.


예를 들어, 메인페이지 아이템 카드의 click 이벤트를 정의한다고 할 때  click_main_item_blade, click_main_item_starter 등을 하나씩 만들기보다는 click_main_item 이라는 하나의 이벤트 안의 속성으로 “itemid:101”을 잡는 것이 좋습니다. 이렇게 하면 메인페이지에서 아이템 카드를 누르는 비율을 볼 때 click_main_item 이벤트를 이용하면 되고, 특정 아이템 카드의 클릭 수를 볼 때는 itemid 조건을 걸면 되므로 분석가에게 좀 더 직관적인 데이터를 제공할 수 있습니다.



와이즐리컴퍼니에 필요한 이벤트는?


Amplitude를 사용하는 회사들은 보통 컴포넌트를 클릭할 때 발생하는 클릭 이벤트, 페이지가 바뀔 때마다 발생하는 뷰 이벤트를 주로 잡습니다(구체적인 이벤트 명칭은 회사마다 다릅니다). Amplitude 파트너사에서도 이런 방식을 권장해 초기에는 두 종류의 이벤트와 구매 전환 이벤트를 추적했습니다. 이렇게만 잡아도 고객의 여정을 추적하고 분석하는 건 가능했지만, 조금 아쉬운 점이 있었습니다.


와이즐리컴퍼니의 뷰 이벤트는 모든 페이지 접속마다 발생합니다. 그래서 고객이 새로고침을 하거나 React.js 및 Angular.js와 같은 SPA(Single Page Application) 라이브러리로 개발된 페이지에서 새로 렌더링 될 때마다 발생합니다(이 글을 읽고 계신 분이 개발자가 아니라면, 회사 개발자에게 SPA 페이지 여부를 문의해보세요). 그래서 Pathfinder 그래프를 보면 중요하지 않거나 중복된 뷰 이벤트가 분석을 방해하고 있어 퍼널 단위 분석이 어려웠습니다.





뷰 이벤트 로직을 수정하는 방법도 있지만, 사용자의 새로고침 여부처럼 나중에 필요할 수도 있는 분석을 위해 그대로 두었습니다. 대신 새로운 이벤트 유형인 퍼널 이벤트를 추가로 잡았습니다.


퍼널 이벤트의 경우 메인 페이지 진입, 제품 상세페이지 진입, 장바구니 담기 등 유저가 사전에 정의한 퍼널에 진입할 때 발생하도록 했습니다. 또한 퍼널 이벤트는 다른 퍼널에서 진입하는 경우만 발생하며, 새로고침이나 리렌더링 시에는 발생하지 않도록 했습니다. 


퍼널 이벤트 구현에는 브라우저의 Session Storage를 활용했습니다. Session Storage란 브라우저의 탭마다 생기는 작은 저장소이고, 탭이 종료되면 내용이 삭제되는 특성을 가진 브라우저 저장소인데요. 아래는 Session Storage를 통해 새로고침, 리렌더링 이슈의 영향을 받지 않고 현재 퍼널과 직전 퍼널의 구매 여정 단계를 구했던 방법입니다.


1. Session Storage에는 현재 퍼널, 직전 단계 퍼널을 저장합니다.

    a. 현재 퍼널은 currentFunnel, 직전 퍼널은 prevFunnel라는 이름의 변수에 저장합니다.

    b. 첫 진입일 경우 prevFunnel은 null로 저장합니다.



Session Storage를 확인해 보면 currentFunnel, prevFunnel가 저장되어 있습니다.
Session Storage를 확인해 보면 currentFunnel, prevFunnel가 저장되어 있습니다.



2. 어떤 페이지에 진입할 때 Session Storage에 저장된 currentFunnel과 현재 퍼널을 비교합니다.

    a. 만약 두 개가 다르다면, 퍼널이 바뀐 것이므로 퍼널 이벤트를 발생시킵니다.

        i. prevFunnel에는 currentFunnel 값을 저장하고, currentFunnel에는 바뀐 퍼널의 이름을 저장합니다.

    b. 만약 두 개가 같다면, 새로고침 한 상황이므로 퍼널 이벤트를 발생시키지 않습니다.


와이즐리컴퍼니는 모든 이벤트에 currentFunnel, prevFunnel 값을 이벤트 속성으로 저장하고 있습니다. 이벤트만 보고도 어느 퍼널에서 왔는지 확인할 수 있어, 구매 여정 분석을 좀 더 수월하게 할 수 있습니다.



퍼널 이벤트는 “enter_” 접두사를 사용합니다. view, click 이벤트 숨김 처리하면 pathfinder 그래프가 좀 더 깔끔합니다.
퍼널 이벤트는 “enter_” 접두사를 사용합니다. view, click 이벤트 숨김 처리하면 pathfinder 그래프가 좀 더 깔끔합니다.
제품 상세페이지 진입 이벤트. 이벤트만 보고도 어느 단계에서 상세페이지로 넘어왔는지 previousfunnel을 통해 확인 가능합니다. 참고로 Amplitude Event Explorer 크롬 확장 프로그램을 설치하면 수집하는 이벤트를 바로 확인할 수 있어 편리합니다.
제품 상세페이지 진입 이벤트. 이벤트만 보고도 어느 단계에서 상세페이지로 넘어왔는지 previousfunnel을 통해 확인 가능합니다. 참고로 Amplitude Event Explorer 크롬 확장 프로그램을 설치하면 수집하는 이벤트를 바로 확인할 수 있어 편리합니다.