구글 애널리틱스의 데이터 구조
사이트에서 구글 애널리틱스로 전송하는 각각의 로그를 Hit라고 합니다. 사용자가 사이트에 접속하여 여러 페이지를 탐색한다면 이 과정에서 여러개의 Hit가 발생하게 됩니다.
Hit 유형은 아래 2가지로 구분됩니다.
- Pageview : 사용자가 페이지를 조회할 경우 발생합니다.
- Event : 버튼을 클릭하거나, 스크롤을 내리는 등 사용자가 페이지와 상호작용할 때 발생합니다.
아래 이미지는 추가적인 이해를 돕기위한 사용자 상호작용에 대한 예시입니다.
- 사용자가 페이지에 방문하면 추적 코드가 실행되면서 Pageview가 발생
- 페이지의 스크롤을 일정량 내리게 되면서 Event가 발생
- 페이지의 컨텐츠를 클릭하여 Event가 발생
이때, 발생하는 Hit(Pageview – 1 + Event – 2)는 총 3개가 됩니다.
이벤트 데이터 구조
이벤트는 4개의 필드로 구성이 됩니다. 이 중에서 이벤트 카테고리와 액션은 필수적으로 입력되어야 하며 나머지는 선택사항입니다.
- 이벤트 카테고리 : 이벤트의 유형을 정하기 위해 활용합니다.
- 이벤트 액션 : 이벤트와 관련된 영역, 동작을 구분하는데 활용합니다.
- 이벤트 라벨(Option) : 이벤트와 관련된 요소를 구분하는데 활용합니다.
- 이벤트 값(Option) : 이벤트에 값어치를 매길 경우 사용합니다. 사용자가 발생한 이벤트가 금액적인 가치가 있다면 이 데이터를 활용할 수 있습니다.
한 가지 더 유의해야 할 점은 이벤트 값을 제외한 나머지는 계층 구조를 갖는다는 점입니다. 구글 애널리틱스의 이벤트 보고서에서는 Category -> Action -> Label 순으로 데이터를 조회할 수 있기 때문에, 전송하는 입력 값에 계층 구조를 고려해야 합니다.
추적할 이벤트 정의하기
이벤트 데이터 구조를 이해하셨다면, 이제 사이트 내에서 어떤 이벤트를 수집할지 정의해야합니다. 정의할 이벤트는 최대한 많은 양을 하는 것보다는 가급적 사용자가 자주 활용하고 유의미한 분석을 진행할 수 있는 것을 대상으로 정의합니다.
제 블로그(이전 버전)를 예시를 들자면 아래와 같이 수집할 이벤트를 정의할 수 있습니다.
- 상단 GNB 영역의 카테고리 선호도를 파악하기 위한 클릭 이벤트 수집
- 메인페이지의 컨텐츠 선호도를 파악하기 위한 클릭 이벤트 수집
- 메인페이지의 최신 글 영역의 필요성을 파악하기 위한 클릭 이벤트 수집
- 컨텐츠 별로 완독율이 얼마나 되는지 파악하기 위한 스크롤 이벤트 수집
이벤트 네이밍 작업
수집할 이벤트에 대한 정의가 끝났다면 각 이벤트별로 수집할 필드인 이벤트 카테고리, 액션, 라벨에 대한 입력 값 정의가 필요합니다. 입력 값에 대한 규약 중 대표적인 2가지는 아래와 같습니다.
* 페이지 중심형 : 페이지 유형 값을 카테고리에 추가하여 페이지를 기준으로 데이터를 유형화합니다.
– 카테고리 : 페이지 유형 구분 값 ( ex. 메인 페이지, 포스트 페이지, 카테고리 페이지 )
– 액션 : 페이지 내 영역 구분 값( ex. 최신글 클릭, GNB 클릭, 스크롤 )
– 라벨 : 상세 값( ex. 클릭한 글의 제목 등 이벤트 영역의 텍스트 )
* 기능 중심형 : 사이트의 영역(기능)은 여러 페이지에 공통적으로 사용되는 경우가 많습니다. 이점을 활용하여 각 영역에 대한 구분값을 기준으로 이벤트를 유형화합니다.
– 카테고리 : 페이지 내 영역(기능) 구분 값 ( ex. GNB 클릭, 스크롤, 최신글 클릭 )
– 액션 : 상세 값( ex. 클릭한 글의 제목 등 이벤트 영역의 텍스트 )
– 라벨 : 링크 URL, 현재 페이지 URL 등 다양한 값을 입력
규약을 정의하더라도 적용시키기 어려운 상황이 발생할 수 있습니다. 따라서, 최대한 규약에 맞춰 이벤트 입력 값을 정의하되 가장 중요한 건 각 이벤트가 어떤 입력 값으로 수집되는지를 파악하고 정리하는 것입니다.
다음 강의에서는 앞서 정의한 규약에 맞춰 클릭 이벤트를 수집하는 방법에 대해 다루겠습니다.
자주 묻는 질문
이때는 [맞춤 측정 기준]이라는 사용자 정의 필드를 활용할 수 있습니다. 다만, 맞춤 측정 기준은 무료 버전에서는 최대 20개까지만 사용이 가능하므로 개수를 넘지 않게 유의합니다. 다른 방법으로는 액션 또는 라벨명에 '_'와 구분자를 활용하여 데이터를 추가하는 방법입니다.
예를 들어, 이벤트 라벨에 '{{버튼순서}}_{{버튼명}}'처럼 구분자를 활용해서 두 개의 데이터를 한 번에 수집할 수 있습니다.
이벤트 값은 특정 상호작용에 금액적인 가치를 매기는데 활용합니다. 보통 전자상거래 사이트에서는 이벤트 값이 아닌 전자상거래 태깅을 진행하기 때문에, 일반적으로는 사용되지 않는 항목입니다.
만약, 물품을 사고파는 전자상거래가 아닌 금액적인 가치를 판단할 수 있는 이벤트가 있다면 이 기능을 활용합니다.
스프레드 시트에 페이지 별로 네이밍 규약을 정리하는 것을 권장드립니다. 영역을 구분하기 위한 참고용 이미지나 간단한 설명을 추가한다면 보다 관리하기 쉬워집니다.
안녕하세요! GA 이벤트 태깅할 때, 버튼 1개당 이벤트 명을 1개만 태깅하였는데요.
한개의 버튼에 2개 이상 이벤트명을 수집할 수 있는지 궁금합니다.
"확인"버튼 클릭 시 기준으로 다른 옵션등을 어떻게 설정했는지 이벤트명을 나눠서 보려고 합니다.
카테고리와 액션명은 동일, 라벨만 다르게 설정
예) '확인'버튼 클릭 기준으로, 아래 이벤트명을 3번 수집하고 싶음.
라벨명: {색상타입}
라벨명: {크기타입}
라벨명: {인원수}
늘, 많은 도움 받고 있습니다. 감사합니다.
안녕하세요, 쥬르댕님
문의주신 상황에서는 보통 여러번의 이벤트를 수집하기 보다는 "맞춤 측정기준"라는 것을 활용합니다.
구글 애널리틱스에서 색상타입, 크기타입, 인원수 각각에 대한 맞춤 측정기준(Hit 범위)을 3개 만드신 다음 버튼 클릭시 생성한 맞춤 측정기준에 해당하는 값을 입력하여 하나의 이벤트에 함께 수집합니다.
[예시]
라벨명: {버튼 텍스트}
맞춤측정기준1 : {색상타입}
맞춤측정기준2: {크기타입}
맞춤측정기준3: {인원수}
자세한 내용은 아래 게시글들을 참고해보세요! ("Hit 범위" 부분)
맞춤 측정기준 설명 : https://dachata.com/universial-analytics/post/create-custom-dimensions-and-metrics/
개발자 가이드(gtag.js) : https://developers.google.com/analytics/devguides/collection/gtagjs/custom-dims-mets
다른 방식으로는 아래와 같이 이벤트 라벨에 '_' 구분자를 사용하여 한 번에 수집하는 방법이 있지만,
[예시]
라벨명: {색상타입}_{크기타입}_{인원수}
이 방식은 데이터 조회가 불편하기 때문에 추천드리지 않습니다.
아 네! 답변 감사합니다. 맞춤측정은 좀 어렵게 느껴지네용 ㅠ 다시 한번 정독해 보겠습니다!
안녕하세요! 이벤트 네이밍 할 때 한국어, 영어 차이가 있을까요?? 한글로 했을 시 GA상에서 깨지거나 그런 이슈는 없을까요?
안녕하세요, 모큐님~
차이는 없구요! 한글로 네이밍하셔도 데이터가 깨지지 않습니다 🙂