데이터 트래킹 기깔나게 잘 하는 방법

을 찾습니다.

TL;DR

저도 잘 모르겠습니다. 알고 계신 분은 같이 공유해주시면 감사하겠습니다. 농담이 아니라 진짜로요…

Intro

저는 주로 Google Analytics (Universal Analytics, GA4 등) 제품들을 이용해서 사용자의 행동 데이터를 트래킹하고, 트래킹한 데이터를 분석해왔습니다. 지난 1년 동안은 웹사이트 및 앱 전면 개편을 하면서 관련된 로그를 다시 정의해서 트래킹 플랜을 만들고, 웹사이트의 경우에는 Google Tag Manager 를 이용해서 직접 구현하였고, 앱의 경우에는 각 플랫폼 (OTT 서비스에 있었는데, Android, iOS 모바일 기기를 비롯하여 FireTV, AndroidTV, tvOS, Set-top box 등이 있었습니다) 의 개발자들에게 이렇게 심어주십사 요청을 하기도 했습니다.

지금은 다른 회사에 재직 중이지만 비슷한 문제를 겪고 있어서 이걸 어떻게 하면 잘 할 수 있을까 하는 생각과 함께, 진작에 쓰려고 했던 글을 밀린 월세 내는 느낌으로 작성해보고자 합니다.

트래킹 플랜이란 무엇인가?

트래킹 플랜은 데이터 트래킹을 위한 가이드 문서라고 할 수 있습니다. Google Analytics 외에도 데이터를 트래킹할 수 있는 툴을 다양하게 있습니다. 대표적으로는 Segment, Mixpanel, Amplitude 등이 있는데, 특이하게도 이 세 회사의 경우 직접 트래킹 플랜을 만들어서 공유해주고 있습니다. 덕분에 어느 정도 가이드라인은 가지고 갈 수 있었습니다.

아쉽게도 구글에서 Google Analytics, Firebase Analytics 용으로 만들어 놓은 트래킹 플랜은 찾을 수 없었지만, 다른 회사들의 사례로 어느 정도 감은 잡을 수 있어서 참 다행이었다고 생각합니다.

트래킹 플랜에 필요한 것들

제가 많이 사용했던 툴은 Google Analytics 4 와 Google Tag Manager 였기 때문에 이 두 도구를 중심으로 설명을 하는 게 좋을 것 같습니다. 그렇지만, 다른 도구를 참조하여 트래킹 플랜을 만들 수 있었던 것처럼 본인들의 회사에서 GA4 와 GTM 외의 다른 도구를 쓴다고 하더라도 비슷한 요소들이 있을테니 잘 응용해서 사용하시면 될 것 같습니다.

GTM 에서 Tag 는 Trigger 와 Variable 로 이루어져 있습니다. 각 태그는 하나의 이벤트를 의미하고, Trigger 는 해당 이벤트의 발생 조건을 정의해줍니다. 그리고 Variable 은 이벤트가 발생했을 때 어떤 정보를 같이 전달해줄지를 알려줍니다.

즉, 이벤트명과 해당 이벤트의 발생 조건, 그리고 전달해줄 값들이 필요합니다.

이 세 요소는 데이터 트래킹에 필수적인 것들이지만, 단순히 이 세 요소만 있다고 해서 데이터 트래킹을 잘 할 수 있는 것은 아닌 것 같았습니다.

왜 데이터 트래킹을 하려고 하나?

제가 참조한 문서들에 보면 주로 KPI 라거나, Business Goal 을 같이 적는 부분이 있었습니다.

우리가 어떤 이벤트를 심어서 데이터를 보고자 한다는 것에는 목적이 있어야 합니다. 단순히 보시니 좋았다 와 같은 목적이라면 그 기능을 만드는데 들어간 리소스를 낭비한 것과 다름없다고 생각합니다. 우리가 무언가를 측정하는 것은 단순히 현상을 보기 위함이 아니라, 개선을 하기 위함이라는 것을 명심하면 좋을 것 같습니다.

트래킹 플랜 문서를 작성하다보면 40인치 모니터가 부족할 정도로 컬럼이 많아지기도 하는데, 그럼에도 불구하고 해당 이벤트가 필요한 이유는 있으면 좋다고 생각합니다.

어려웠던 부분

가장 어렵다고 생각하는 부분은 이 문서를 지속가능하게 만드는 것이라고 생각합니다. 이 측면에서 저는 답을 찾지 못했습니다.

누가 작성을 하는 게 좋은지, 누가 관리를 하는 게 좋은지, 어떻게 관리를 하면 좋을지 다 물음표 밖에는 안 생겼습니다.

분석가가 가지고 가자니 트래킹 할 이벤트와 관련된 기능을 기획하지 않았고, PM 이 하자니 관련된 기술적인 부분에 대한 허들이 생각보다 높으며, 개발자가 하기에는 발생하는 로그의 소비자는 또 아닙니다. 그래서 이벤트 로그를 가장 많이 쓰는 분석가가… 결국에는 도돌이표가 되는 것이죠.

그리고 이를 한 군데서 관리하는 도구로는 스프레드시트만큼 편한게 없기는 한데, 너무 자유도가 높아서 처음 보면 압도당하기 쉽상입니다. 따로 문서를 만들어서 사용법을 공유하는 것도 마땅치않고요.

최근에 보니까 trackingplan 이라고 해서 SaaS 서비스도 나온 것 같더라고요. 사용해보지는 않았습니다만, 어쨌거나 모든 문제를 해결해줄 실버불릿은 아닐 것 같습니다.

마치며

결국에는 데이터 트래킹을 잘해야 한다는 생각을 가진 사람들이 필요할 것 같습니다. 이벤트 로그를 사용할 사람도 어떻게 사용하는 게 가장 좋은 방법인지 고민을 해야할 것이고, 해당 기능을 기획한 사람도 어떤 목적으로 기능을 기획하였고, 확인하고자 하는 게 무엇인지 명확하게 알고 있어야 한다고 생각합니다. 그리고 개발자도 어떤 데이터를 어떻게 보내줄 수 있고, 어떤 시점에 보내줘야 하는지를 알아야할 것 같습니다.

트래킹 플랜을 아무리 잘 만들어놔도 어떻게 사용해야하는지 모른다면 결국에는 아무짝에도 쓸모없는 데이터 쪼가리가 될 것이고, 제대로 된 지표는 확인하지 못한 채 데이터만 쌓여갈 수 있다고 생각합니다.

긴 글 읽어주셔서 감사합니다. 혹시라도 좋은 생각이 있거나 문서가 있으시다면 알려주시면 감사하겠습니다.


Twitter: https://x.com/chusine/status/1701251165865074836?s=20 에 감사하게도 조언을 달아주신 분들이 계십니다.

그리고 회사에서는 관련 내용을 준비해서 10월 중으로 사내 세미나를 열어서 컨센서스를 맞춰가려고 합니다.

2023

영어랑 친해지는 방법

7 minute read

가장 좋은 방법은 당연히 영어 밖에 사용하지 못하는 환경에 강제로 처해지는 것이겠지만 그것이 어려우니…

Back to top ↑

2022

Back to top ↑

2020

사내 스터디에 대한 회고

2 minute read

회사 서비스의 추천 시스템을 개선하기 위해 팀 내에서 (아직까진 두 명이긴 하지만) 지난 두 달 동안 스터디를 진행했습니다. 얼마 전 두 번째 스터디가 끝났고 이에 대한 회고를 해보려고 합니다.

Back to top ↑

2019

GitHub Pages Jekyll Blog 에 MathJax 추가하기

3 minute read

이 글은 MathJax 를 GitHub Pages Jekyll blog 에 추가하는 방법을 다룬다. 이탤릭체로 된 부분은 본문에는 없고 제가 따라하면서 고치거나 추가한 부분이니 참고하세요.

GitHub 블로그에 Jupyter notebook 올리는 방법

4 minute read

여러분의 GitHub 블로그에 Jupyter notebook 을 바꿔서 올릴 수 있도록 도와줄 글입니다. 직접 바꾸는 방법은 1회성 글들을 위해서 추가했고, 변환 과정과 파일 이동, 그리고 여러분의 블로그에 올리는 것까지 한 번에 할 수 있는 자동화 bash 를 만드는 자세한 방법...

Back to top ↑