본문 바로가기

인공지능/데이터 분석

[데이터 분석] 쇼핑몰 웹 로그 분석 - 2. 사이트 체류 시간

 

이번에는 이전 데이터 셋을 사용하여

사용자들의 사이트 체류 시간을 구하는 방법을 알아보자.

이전 글: https://bigsong.tistory.com/35

 

[데이터 분석] 쇼핑몰 웹 로그 분석 - 1. Active User(활성 사용자)

캐글에서 제공하는 쇼핑몰 웹 로그 데이터셋을 이용하여 데이터 분석을 진행해보려 한다. 사용 데이터셋 정보 https://www.kaggle.com/mkechinov/ecommerce-behavior-data-from-multi-category-store eCommerce b..

bigsong.tistory.com

 

 사이트 체류 시간과 페이지 체류 시간

참고 사이트: https://clicknote.tistory.com/3

 

사이트 체류 시간은 말 그대로 사용자가 해당 사이트에 접속하여 머무른 시간을 얘기한다.

그리고 페이지 체류 시간은 해당 사이트에 접속하여 하나의 페이지에 머무른 시간이다.

페이지 체류 시간을 계산하는 방법은 간단하다.

가장 최근의 페이지 방문 시간에서 이전 페이지 방문시간을 빼면 된다.

사이트 체류 시간은 페이지 체류 시간의 총합과 같다.

 

위의 사진처럼 세션이 남는다면 사용자의 페이지 체류시간은 3분이 되는 것이다.

 

하지만 여기에는 한가지 문제점이 존재한다.

위의 사진과 같이 사용자가 페이지를 이동했다고 가정했을때

첫번째 페이지의 체류 시간은 3분, 두번째 페이지의 체류 시간은 4분이다.

그러나 사이트 체류 시간은 10분이 아닌 7분으로 계산 된다는 점이다.

사용자가 이탈하는 경우 세션 로그가 남지 않기 때문에

세번째 페이지의 체류 시간을 알 수 없고, 사이트 체류 시간 계산에 포함되지 않는다.

 

그렇다고 해서 사이트/페이지 체류 시간이 유의미 하지 않은 지표는 아니다.

수많은 사용자들이 수많은 페이지를 빈번하게 오고가는 상황 속에

모든 로그에서 동일하게 마지막 페이지의 체류 시간을 계산하지 않기 때문에

모두가 일관된 기준으로 측정하기에 큰 문제가 되지 않는다.

그리고 그 양이 상당하기 때문에 한개 페이지의 시간 차이는 

크게 사용자들의 트렌드를 반영하지 못한다고 보는 것이 옳을 것이다.

 

◆ 사이트 체류 시간 계산하기

위의 사이트 체류 시간의 개념을 적용하여 

데이터셋을 이용하여 실제 사용자들의 사이트 체류 시간을 구해보자.

 

사용자들의 페이지 접속 시간을 확인하기 위해 세션 ID를 기준으로 한다.

사용자의 경우 동일한 ID여도 세션이 다르면은 다른 경우로 간주해야 한다.

왜냐하면 세션은 일정 시간동안 같은 사용자(정확하게는 브라우저)로 부터 들어오는

일련의 요구를 하나의 상태로 보기 때문에 세션이 달라졌다면은

다른 시간대에 접속한 것으로 보는 것이 맞기 때문이다.

 

먼저 사용자의 사이트 체류 시간을 구하기 위해

전체 데이터에서 원하는 날짜의 데이터만 별도로 추출해 사용하겠다.

이후 이전과 동일하게 자료형을 datetime으로 변환해 주었다.

 

그다음은 세션을 기준으로 groupby를 진행하는데,

동일한 세션에 대해 가장 마지막(최대)의 시간을 값으로 하는 그룹과

가장 처음(최소)의 시간을 값으로 하는 그룹 2개의 그룹을 만들고

이를 각각 데이터 프레임으로 생성해준다.

<가장 최근 접속 시간>
<처음 접속 시간>

 

이후 2개의 데이터 프레임을 연결하여 준 뒤,

컬럼 간의 연산을 통해 세션별 사이트 체류 시간을 구해준다.

 

 

다음과 같이 사용자의 세션 시간을 구할 수 있게 된다.

만약 세션 타임이 긴 사용자와 짧은 사용자를 찾고 싶은 경우

간단히 세션 타임 컬럼에 대해 정렬해주면 되겠다.

 

이번에는 세션타임이 긴 사용자 순서로 정렬해 보았다.

세션 시간이 21시간인 사용자가 있다?!

이쯤 되면 맞게 한건지 의심이 되네...

 

여튼 이런 방법으로 사용자 세션 시간을 계산해 보았다.

 

 

 

※ 혼자 진행한 부분이라 틀린 부분이 존재합니다.

(지적과 댓글은 언제나 환영입니다.)