안녕하세요 구글 애널리틱스 커스텀 디멘션 세팅하는 방법을 알아 보겠습니다.
커스텀 디멘션/메트릭은 왜 세팅하는가?
- 기본적으로는 GA 에서 추적하지 않으나 추가적으로 추적하고 싶은 측정기준이나 수치가 있을 때
- GA 에서 수집은 하고 있으나 리포트에서 조회가 불가능한 측정기준을 세팅 하기 위해 ( ex : timestamp , clientId , userId)
오늘은 타임스탬프와 클라이언트 ID 를 커스텀 디멘션으로 만들어보려고 합니다.
타임스탬프와 클라이언트 ID 는 사실 GA 에서 수집하고 있는 기준들이나 리포트나 API 에서는 조회가 불가능한 지표들 입니다.
아마 추측 하건데 이 두 개의 디멘션을 조회하게 되면 raw 한 단위의 데이터 추출이 가능해지고 데이터 요청량이 늘 수 밖에 없기 때문에 기본 디멘션으로 제공하지 않는 것이 아닌가 개인적으로 추측을 하고 있는데요 ,
타임스탬프는 1970년 1월 1일 00:00:00를 기준으로 경과한 초를 의미하여 이를 기록하면 사용자가 접속한 정확한 시간을 알 수 있고
클라이언트 ID 는 구글 애널리틱스에서 사용자를 식별하기 위해 쿠키를 심는데 이 쿠키의 값이라고 생각해주시면 됩니다.
구글 애널리틱스는 사이트에 접속했을 때 _ga 라는 쿠키가 없는 사용자를 신규 사용자로 인식하고 _ga 라는 쿠키를 심습니다. 이 값을 보통 clientId 라고 이야기 하구요.
(쿠키를 볼 때 크롬 익스텐션 EditThisCookie 를 사용했습니다. )
저희는 쿠키 값 중 앞에 버전을 뜻 하는 GA.1.3. 을 뗀 수치를 수집 할 예정 입니다.
사실이 클라이언트ID 를 보여주는 리포트가 구글 애널리틱스 안에 있기는 합니다. User Explorer 라는 메뉴 인데요
1번째 보이는 Client ID 와 위의 저의 _ga 쿠키값이 앞의 GA.1.3 을 빼면 동일한 것이 보이시나요?
User Explorer 메뉴에서는 전체 통계 수치가 아닌 특정 사용자만의 지표를 보여주는 메뉴 입니다.
하지만 함께 조회하는 디멘션과 메트릭 추가가 불가하여 부분적인 내용 밖에 볼 수 없기 때문에 구글 애널리틱스 상에서 지원하는 기본 메트릭과 디멘션을 조합해서 사용하기 위해서는 커스텀 디멘션 설정이 필요 합니다.
커스텀 디멘션 설정 후 볼 수 있는 데이터로 아래를 예시로 들 수 있을 것 같습니다.
ClientID ( 디멘션 이름을 cookieID 라고 지었는데 clientID 데이터를 저장 하고 있습니다. ) 와 Timestamp , 그리고 타임스탬프의 경우 보기 힘드니 time 이라는 디멘션을 하나 더 만들어주었고 페이지와 페이지뷰 , 체류시간(time on Page) 를 함께 조회 하였습니다.
이렇게 세팅하니 어떤 사용자가 어떤 시간에 어떤 페이지를 보았는 지에 대한 데이터를 볼 수 있습니다.
죄다 Time on Page 가 0 인 것을 보니 Bounce Rate 가 100% 겠네요 ,,,ㅎ
이런식으로 커스텀 디멘션을 만들게 되면 Raw 한 형태의 데이터를 만들 수 있고 만약 Client ID 를 내부 DB 에 저장하고 내부 CRM 데이터와 함께 사용한다면 사용자별 컨텐츠 추천이나 사용자 유형 클러스터링 등 재밌는 것을 해볼 수 있을 것 같습니다.
자 그럼 본격적으로 커스텀 디멘션을 세팅 해보도록 하겠습니다.
구글 애널리틱스 어드민 페이지로 가서 Property - Custom Dimensions 를 클릭합니다.
+ NEW CUSTOM DIMENSION 버튼 클릭 후 커스텀 디멘션을 생성 합니다. 먼저 timestamp 를 만들어주겠습니다.
Scope 를 설정하는 부분이 있는데 설정할 수 있는 Scope는 다음과 같습니다.
- hit
- session
- user
- product
이는 데이터를 수집 및 표현하는 단위 입니다. 각 scope 에 대해 간략하게 설명 드리겠습니다.
- hit : 구글 애널리틱스가 수집하는 가장 작은 단위 , 웹페이지에서 구글 애널리틱스로 데이터를 전송하는 것을 Hit로 표현 , 조회 및 수집을 hit 단위로 설정
- session : 구글애널리틱스에서 사용되는 세션과 같은 의미이며 조회 및 수집을 세션 단위로 설정
- user : clientId 가 생성되는 기준 (_ga 쿠키의 값이 동일할 때 같은 user ) 이며 조회 및 수집을 유저 단위로 설정
- product : 전자상거래용 커스텀 디멘션 추가 시 설정
저희는 모든 데이터를 조회 할 때마다 구글 애널리틱스에 전송 해줄 예정이기 때문에 두 개의 디멘션 모두 hit 단위로 설정 하겠습니다.
사실 clientId 는 user 별로 할당되기 때문에 scope 를 user 별로 설정해주어도 큰 문제가 없고 구글 애널리틱스에 커스텀 디멘션 데이터를 전송해주는 것도 한번만 해주면 문제 없이 데이터를 조회 할 수 있습니다.
하지만 hit 단위로 계속 데이터를 주어도 조회하는데 user 로 설정한 것과 차이가 없고 사실 구글 애널리틱스에 커스텀 디멘션 데이터를 전송해주는 것도 한번만 해주도록 코딩하는 것이 hit 단위로 계속 데이터를 전송해주는 것보다 어렵기 때문에 hit 단위로 진행 하도록 하겠습니다.
커스텀 디멘션을 생성하게 되면 다음과 같이 우측에 코드를 보여주는데요 해당 코드를 사용하여 커스텀 디멘션을 설정 할 수 있습니다.
저희는 웹을 추적하기 때문에 JavaScript 부분을 참고하면 되고 Custom Dimension에 생성 순서에 따라 dimension 에 번호가 붙는 형식입니다. 예를 들면 1번째 생성된 dimension 은 dimension1 , 2번째 생성된 dimension은 dimension2 로 정의 됩니다.
설정되는 Name 은 커스텀 리포트나 기본 리포트에서 추가 디멘션으로 조회할 때 사용되는 이름이며 실제 사이트에 스크립트를 작성 할 때에는 생성된 순서에 따라 결정되는 dimension[숫자] 에 따라 데이터를 보내주어야 합니다. 정확히 이해가 어려울 수 있는데 코딩을 보도록 하겠습니다.
https://codepen.io/dev0505/pen/abdpbOE
구글 애널리틱스 커스텀 디멘션 테스트
...
codepen.io
<html>
<head>
<title> 구글 애널리틱스 커스텀 디멘션 테스트</title>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-160176510-1"></script>
<script>
// 구글 애널리틱스 시작
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
// 커스텀 디멘션 세팅
gtag('set', 'dimension1', new Date().getTime() );
// 구글 애널리틱스 실행 및 clientID 커스텀 디멘션 설정
gtag('config', 'UA-159954919-1' , {
//'send_page_view' : false ,
'custom_map': {'dimension2': 'clientId' }
})
</script>
</head>
<body>
구글 애널리틱스 커스텀 디멘션 테스트
</body>
</html>
페이지뷰 이벤트와 다른 부분은 gtag('config' , 'GA_ID) 부분을 실행하기 전에 커스텀 디멘션을 세팅하는 코드를 실행 시키는 부분과
아이디를 선언하고 나서 'custom_map' : {'dimension2': 'clientId'} 라는 코드를 실행 시켜주는 부분 입니다.
아까 첫번째 생성한 디멘션을 timestamp , 두번째 생성한 디멘션을 clientId 로 설정하기로 이름 지었기 때문에
디멘션을 세팅할 때 dimension1 에는 현재 시간을 뜻하는 new Date().getTime() 값을 넣어주었고
dimension2 에는 GA 안에서 생성된 clientId 를 값으로 넣어주게끔 설정 하였습니다.
'custom_map' : {'dimension2': 'clientId'} 이 어떻게 작동되는 지 의아해하실 것 같은데 GA가 실행될 때 생성되는 객체에서 clientId 라는 값을 포함하고 있고 이 clientId 의 값을 dimension2 에 넣어주겠다 라는 뜻으로 이해하시면 좋을 것 같습니다.
실제로 GA 가 실행되고 있는 콘솔 창에서 ga.getAll()[0]['b']['data']['values'] 를 실행하면 GA 가 가지고 있는 데이터들을 볼 수 있고 이 중 clientId 라는 변수가 있는 것을 볼 수 있습니다 이 값을 사용한다고 생각해주시면 됩니다.
자 코드펜 상에서도 저희가 설정한 디멘션이 cd1 , cd2 라는 이름으로 구글 애널리틱스에 잘 전송되고 있음을 확인 하였습니다.
이건 경험상의 느낌인데 커스텀 디멘션의 경우 처음 생성하고 나서 약 1~3 시간 정도는 데이터를 받아오지 못하는 것 같습니다.
하지만 커스텀 디멘션 생성이 잘 되어 있고 네트워크 상에서도 cd1 등의 데이터를 보내주고 있다면 시간이 지나면 정상적으로 커스텀 리포트나 기본 리포트에서 디멘션을 추가하여 확인 할 수 있을 것이니 크게 걱정하지 않으셔도 좋을 것 같습니다.
이만 구글 애널리틱스 커스텀 디멘션 세팅 포스팅을 마치겠습니다!
진행한 내용에 대해 궁금한 부분이나 구글 애널리틱스에 대한 전체적인 궁금한 부분 댓글 주시면 콘텐츠 선정에 큰 도움이 될 것 같습니다!
감사합니다 :)
'Google Analytics' 카테고리의 다른 글
구글 애널리틱스 티스토리 관리자 계정으로 로그인 된 내부 사용자 분류하기 (0) | 2020.06.24 |
---|---|
구글 애널리틱스 이벤트 일으키기 (5) | 2020.06.22 |
구글 애널리틱스 테스트 하기 1. gtag.js 페이지뷰 일으키기 (0) | 2020.03.10 |
구글 태그매니저를 통한 구글 애널리틱스 실행 속도 비교 (0) | 2020.03.08 |
Google Analytics 코드 삽입 위치에 따른 차이점 (1) | 2020.03.07 |