믹스패널은 여러가지 플랫폼에 대해 sdk를 제공합니다.

이를 크게 나누면 다음과 같습니다.

  1. 서버사이드 (python, node.js 등)
  2. 모바일 앱 (ios, android 등)
  3. 웹 (javascript browser)

서버사이드 트래킹의 특징은 distinct id를 생성하지 않습니다. 서버는 유저의 device가 아니니까요. 서버에 요청을 보낼 때 distinct id를 클라이언트가 관리하고 서버에게 알려주면 그걸 그대로 담아 보내는 식입니다.

모바일 앱은 앱이 처음 실행될 때 device id를 생성하고 이를 이용해서 ($device: 프리픽스를 붙여서) distinct id를 생성합니다. 그리고 이것들과 기기 정보를 유저 설정(user preference)영역에 저장합니다. 그래서 앱을 삭제하고 다시 설치하거나, 유저가 유저 설정을 삭제하기 전까지 유지됩니다.

웹은 persistence 옵션으로 쿠키와 로컬 스토리지를 선택할 수 있습니다. 쿠키 혹은 로컬 스토리지에 device id와 distinct id(device id에 $device: 프리픽스를 붙인)를 저장합니다. 이 정보들은 쿠키 혹은 로컬 스토리지의 라이프사이클과 제약을 따릅니다.

웹뷰 : 앱과 웹의 경계

웹뷰는 ios, android 앱 내에서 웹 페이지를 보여줄 때 사용하는 앱 내 브라우저입니다. 앱 안에 전체화면으로 웹뷰를 띄우고 그 안에 웹 사이트를 보여줌으로써 앱 개발을 최소화하기 위해 사용하는 경우가 많습니다.

Untitled

그럼, 웹뷰를 가지고 웹을 띄우는 앱은 믹스패널 이벤트 추적을 앱에서 해야할까요? 웹에서 해야할까요?

둘 다 하면 어떨까요?