[Google Analytics] What is a Custom Varialbe?

2012. 3. 12. 22:29Others

Google Anaytics(이하 GA)는 사용자가 지정한 정보를 GA에 같이 저장/관리될 수 있도록 Custom Variable라는 기능을 제공하고 있습니다.

What is a custom variable?

GA는 사용자가 사이트를 처음 방문했는지 아니면 페이지를 이동하고 있는지 여부의 정보를 포함하여, 국가정보, 도시, 사용자 환경 등 다양한 정보를 추적 기록합니다.

하지만 GA에서 관리하지 않는 추가적인 정보도 GA에 같이 관리되어야 할 필요성이 있습니다. 예를 들어 쇼핑몰을 운영 중인 관리자가, 어떤 성별, 나이 대의 사용자가 사이트를 자주 방문하고 구매를 하는지 알고 싶을 수 있습니다.

Didn’t Googla Analytics already have this?

GA는 이미 Custom Variables 이전에 User Defined Segment라는 기능을 제공하고 있었습니다. 하지만 이 기능은 오로지 1개의 값만 저장할 수 있었고 이는 다양한 정보를 기록하고자 하는 사용자에게는 너무나도 불편한 요인 중 하나였습니다.

이러한 불편을 해소하고자 Custom Variables는 N개의 정보를 구분하여 저장할 수 있도록 지원하고 있습니다. (Google은 User Defiend Segment의 서비스 중단을 아직 발표하지 않고 있으니 참고바랍니다.)

Scopes and how to use them

Scope란 정보가 언제까지 Custom Variable에 저장될지 범위를 지정할 수 있는 속성으로써 각각 Visitor, Session, pageview가 있다.

Visitor로 지정하면 Custom Variable은 이전의 User Defined Segment와 비슷하게 동작한다. 정보는 방문자의 Cookie에 저장되고, 사용자가 페이지를 방문하거나 이동 하는 등 GA에 정보가 전송 될 때 항상 포함되어 전송된다. 사용자 정보나 반영구적인 정보가 이 형태로 저장되기에 적합하다.

  • 성별, 나이, 수입, 직업, 가족 등
  • 사용자 식별정보, 멤버십 정보 등
  • 사용자가 어떻게 우리 사이트를 방문하게 되었는가

Session은 말 그대로 하나의 Session동안 정보가 적용된다.  (Session = 방문 후 페이지를 떠날 때 까지) 이 정보는 사용자가 방문 후에 이어지는 특정 행동 정보를 기록할 때 사용될 수 있다.

  • 사용자가 장바구니에 상품정보를 담을 때
  • 사이트의 특정 상품이나 글을 읽었을 때 해당 정보의 기록

Pageview는 지정한 Page에서만 저장되는 정보이다. 다음과 같은 경우에 적합할 수 있다.

  • 해당 페이지의 특정 탭을 클릭하였는가
  • 사용자가 해동 페이지를 추천했을 때

PageView는 Event Tracking과 매우 비슷하게 동작한다.

Set a Custom Variable

Custom Variable 정보를 저장하는 것은 매우 쉬운데, 단지 다음과 같은 메서드를 호출하기만 하면 된다.

pageTracker._setCustomVar(index, name, value, scope);

User Defined Segment 기능 역시 _setVar라는 Function을 통해 저장했었는데 몇 가지 추가적인 매개변수를 제외하고 거의 동일하게 동작한다.

  • index 매개변수는 Slot과 같다. 지정한 정보가 어떤 슬롯에 정보가 저장될 지 지정할 수 있으며, 이 값을 달리 함으로써 한번에 여러 값을 저장할 수 있게 된다. 이 값은 1, 5 사이의 숫자이다.
  • namevalue는 Custom Variable에 저장할 정보의 이름과 값을 표현한다. name은 저장되는 정보가 무엇인지 식별하는 정보를, value는 name에 해당하는 실제 값을 저장하면 GA에서 해당 정보들을 확인할 수 있다. name, value 값을 합쳐서 64자를 넘을 수 없다.
  • scope는 정보가 언제까지 Custom Variable에 저장될지 범위를 지정할 수 있는 매개변수로써 visitor는 1, session은 2, pageview는 3을 지정하면 된다. Default Value는 3이다.
pageTracker._setCustomVar(1, "성별", "남자", 1);

위 예제는 Custom Varialbe에 ‘성별’이라는 이름과 ‘남자’이라는 값을 1번 Slot에 Visitor Level로 정보를 저장하라는 의미이다.

Where does the code go?

_setVar 또는 _setCustomVar로 저장할 정보를 어디서 어떻게 구해야 하는 것일까? 예를 들어 성별이라는 정보를 어디서 가져와야 하는 것일까?

이 정보들은 미리 사용자를 통해 구하거나, DataBase에 있는 정보를 출력하는 등으로 지정될 수 있다. ASP.NET에서는 아래와 같이 코드가 구성될 수 있다.

pageTracker._setCustomVar(1, "성별", <%= User.Gender %>, 1);

Where does the code go?

코드의 위치는 어디가 가장 적합할까? 다음과 같이 두 가지 고려사항이 있다.

첫 번째는 해당 정보가 발생하는 곳에 위치시키는 것이다. 예를 들어 로그인 후 성별정보를 포함한 _setCustomVarl Function을 위치시킬 수 있다. 또는 특정 Article이 특정 Section으로 구분된다면 해당 Section아래의 Section 마다 해당 코드를 위치시킬 수 도 있을 것이다.

두 번째는 _trackPageview Fucntion(또는 _trackEvent) 전에 코드를 위치시켜야 한다. 그렇지 않으면 해당 Custom Variable는 GA에 전송되지 않을 것이다.

Slots and Scope

위에서 _setCustomVar Function의 Index라는 매개변수는 정보가 저장되는 Slot라고 언급하였다. 1-5까지의 숫자가 Index로 지정될 수 있는데, 그렇다면 우리는 총 5개의 정보를 저장할 수 있는 것일까? 약간 복잡한데 왜냐하면 scope라는 속성 때문이다.

만약 Scope를 pageview로 지정하였다면 각 페이지마다 Custom Variable를 각각 설정할 수 있다.

하지만 Session으로 지정하면 GA는 사용자의 방문부터 종료까지 해당 Custom Varialbe를 유지할 것이다. 만약 새로운 값을 쓴다면 처음 쓴 값은 덮어 쓰여 질 것이다.

visitor로 지정한다면 해당 값은 사용자가 Cookie를 삭제하기 전에 지속적으로 유지될 것이다.