본문 바로가기
Develop/Data Analytics

Mixpanel에서 내부 IP Address를 제외하는 방법

by 라이프레이서 2021. 5. 10.

목차

    반응형

    Mixpanel에서 내부 IP 주소를 필터링하는 방법에 대해 알아보겠습니다.

    IP 주소를 제공하지 않는 Mixpanel

    Mixpanel에서는 Amplitude와 달리, IP 주소가 Tracking 되지 않습니다.

    때문에 퍼널, 인사이트 등 분석을 할 때, 내부 트래픽을 걸러주는 방법을 직접 추가해주어야 하는데요,

    그 방법에는 다음과 같은 선택지가 있습니다.

     

    • 회원 관리 시스템이 있는 경우, 이메일을 통해 걸러내기
    • 내부 사용자들에게만 ignore 속성을 추가하여, 데이터가 Tracking되지 않도록 처리하기
    • 직접 IP Address를 Tracking하고, 필터링 하기

    IP Address를 직접 넣고 필터링 하는 이유

    위 선택지 중, 나머지 두 가지는 다음과 같은 문제를 갖고 있었습니다.

    • 이메일을 통해 거르는 방법은 '회원 관리 시스템'이 있는 경우에 한정적이다.
    • 내부 테스트 데이터가 온전히 들어오는 과정이 확인되어야 Production에 배포할 수 있는데, ignore를 통해 테스트 데이터 자체가 차단되면 어떻게 확인해야 하는가?

    두 번째 문제는 테스트 할 때마다 수동으로 ignore 속성을 제거하는 방식이 가능합니다만, 번거롭습니다.

    하지만 IP 주소를 직접 Tracking 하고, 이를 Mixpanel로 보내 주어, 필터링 가능하게 해 주면 모든 문제는 단순하게 해결이 가능합니다.

    구현 방법

    이를 구현하는 방법은 간단합니다.

    <script>
    // Mixpanel init (믹스패널 설치 코드 넣는 부분)
    </script>
    <script type="text/javascript" src="https://jsgetip.appspot.com"></script>
    <script>
      var clientIP = ip();
      mixpanel.register({"IP Address": clientIP});
    </script>

    위와 같이, Mixpanel을 설치함과 동시에, IP주소를 알아내어 mixpanel.register를 통해 IP Address라는 속성에 전달해주는 것입니다.

     

    * 유의사항

    Mixpanel의 설치코드 바로 밑에 ip주소를 등록하는 코드를 적었습니다.

    그 이유는 다른 Mixpanel 추적 코드가 전송되기 전, ip 속성이 register 되어야, 이후의 Event들에서도 ip속성을 확인할 수 있기 때문입니다.

     

    설명

    아래는 위 코드의 역할에 대한 설명입니다.

    Javascript로 ip주소 가져오기

    <script type="text/javascript" src="https://jsgetip.appspot.com"></script>
    <script>
      var clientIP = ip();
    </script>

    jsgetip...부분은 ip를 쉽게 얻을 수 있도록 해주는 스크립트입니다.

    ip();라는 메소드를 통해 클라이언트의 ip를 얻어올 수 있습니다.

     

    Mixpanel의 Super Property에 IP주소 등록하기

    mixpanel.register({"IP Address":"사용자IP주소"});

    Super Property는 모든 이벤트에 따라다니는 꼬리표라고 보시면 됩니다.

    모든 이벤트에서 IP 주소 정보를 확인할 수 있도록, Super Property에 등록해주었습니다.

     

    내부 IP를 제외하고 Mixpanel 대시보드에서 받아보기

    Mixpanel에서 IP Address를 필터로 걸어주기

    이제 Mixpanel의 이벤트를 지정하고, IP Address를 필터로 걸 수 있게 되었습니다.

    위 사진처럼, 등호(=)를 does not contain으로 바꾸고, 내부 직원의 IP 주소를 넣어주면 됩니다.

    반응형