레이블이 GA인 게시물을 표시합니다. 모든 게시물 표시
레이블이 GA인 게시물을 표시합니다. 모든 게시물 표시

2016년 11월 3일 목요일

구글 애널리틱스 전자상거래 - 관련 상품 가져오기

GA 전자상거래 기능인 "관련 상품" 기능을 알아 본다.
아마존 성공 사례인 상품 기반 추천의 “같이 구매한 상품들”과 유사한 기능이다.

목차
  • GA에서 기능 활성화
  • API로 데이터 가져오기
    • UI 조회 도구
    • 파이썬 도구
  • 샘플 데이터

1. GA에서 기능 활성화 하기
“관리” -> “보기” -> “전자상거래  설정” 의 관련 상품을 체크한다.


2. API 로 데이터 가져오기

가. UI 조회 도구로 확인 및 가져오기
UI 조회 도구 <- 클릭
https://ga-dev-tools.appspot.com/query-explorer/?
dimensions=ga:queryProductId,ga:relatedProductId
&metrics=ga:correlationScore,ga:queryProductQuantity,ga:relatedProductQuantity
&filters=ga:queryProductId==A
**
GA 계정으로 로그인 후에 원하는 보기를 선택한다.

나. 파이썬 도구로 확인하기
import pandas.io.ga as ga
df = ga.read_ga(
    account_id=“<계정 ID>“,
    profile_id=“<보기 ID>",
    property_id=“<속성 ID>”,
    metrics=['correlationScore','queryProductQuantity','relatedProductQuantity'],
    dimensions=['queryproductid','relatedproductid'],
    #filters=['queryproductid==A'],
    start_date="2016-10-01",
    end_date="2016-11-03",
    index_col=0
)
**
측정 기준/항목 선택은 여기를 클릭 한다.
연동 방법은 판다스에서 구글 애널리틱스 API 연동 을 참고 할 수 있다.

3. 샘플 데이터 보기


**
correlationScore 는 0 에서 1 사이의 값을 가진다.
queryproductid -> relatedproductid 의 신뢰도로 추정되고 1에 가까울 수록 연관성이 높다.
가이드에서 공식을 찾을 수 없었지만, 연관 규칙과 흡사한 것으로 보인다.

2016년 7월 27일 수요일

구글 애널리틱스 스팸 막기

자체 로봇 제거에도 불구하고, 다수의 스팸 패킷이 들어온다.
이를 막기 위한 좋은 방법을 소개한다.

스팸 막는 방법 두 가지 (필터 활용)

1. 포함하는 방법
다수의 스팸 사이트들이 호스트 이름과 화면 해상도가 (not set)으로 표기된다.
필터 시점에 호스트 이름의 경우 무효값으로 인지하고, 화면 해상도는 (not set)으로 인지한다.
So, 명확한 호스트 이름을 포함하는 패킷과 화면 해상도가 (not set)인 패킷을 제외하는 조건으로 필터한다.
**
무효값은 필터를 무시한다.

2. 제외하는 방법
스팸으로 판단되는 캠페인 소스에 대해서 정규식 패턴을 찾아서 제외한다.
한줄에 들어가는 정규식 패턴의 글자수가 256자로 제한이 있다.

결론

두 가지 방법을 혼용 할때, 각각의 이점을 최대한 살릴 수 있다.
1번 방식으로 다수의 스팸을 걸러내고, 나머지는 2번 방식으로 조금 명확한 기준의 정규식을 사용한다.

2016년 7월 14일 목요일

구글 애널리틱스 유용한 기능 요약

구글 애널리틱스 사용 시, 자주 사용하는 유용한 기능들을 요약한다.

컨텐츠 그룹
컨텐츠 그룹의 규칙 그룹들을 페이지 URL에 기반한 패턴을 정의한다.
(2016년 7월 1일 기준, 무료 5개 제공)
**
컨텐츠 그룹의 규칙 그룹 단위로 행동 흐름(방문형태)를 한눈에 볼 수 있다.

측정 기준
hit, 세션, 사용자, 제품 범위의 측정 기준을 제공한다.
(2016년 7월 1일 기준, 무료 20개 제공)
**
성별, 연령, 로그인 여부 등의 확장 기준들을 손쉽게 추가 할 수 있다.

채널 그룹
기본 채널 이외에 맞춤 채널을 만들 수 있다.
사이트로 유입 될때, 식별 가능한 정보의 패턴으로 정의 한다.
**
특정 유입 경로(채널)를 그룹화 식별 할 수 있다.

세그먼트
리포트는 세그먼트 단위로 분리해서 볼 수 있다.
조건 필터의 경우 ‘세션’과 ‘사용자’ 단위임에 주의한다.
**
리포트 결과를 다양하게 분류 하여 볼 수 있고, 갤러리를 통해서 공유 할 수 있다.

고급 필터
세그먼트가 전체 데이터에 대한 분류 그룹을 제공하는데 비해서,
이 것은 보고서의 결과 데이터를 여과한다.

맞춤 자바스크립트 변수 (태그 매니저)
HTML 구성 요소를 파싱하여 변수로 사용 할 수 있다.
상품 상세 페이지들에 경로가 아닌 상품 이름을 측정 기준으로 사용할 때 유용하다.
**
예제)
본문 중에,
<h2 id=“test_id”>상품 이름</h2>
맞춤 자바스크립트,
function() {
  var elem = document.getElementById(“test_id”);
  return elem.innerText;
}

사용자 ID (User ID)
기본적으로 제공되는 Client ID는 기기나 브라우저 별 익명으로 식별한다.
웹 : 최초 접속때 생성되고 1차 쿠키에 2년간 유지 된다.
모바일 : 설치된 어플리케이션의 최초 인스턴스 구동 시에 무작위로 생성된다.
이는, 접속 인스턴스를 기반으로 행동 패턴을 추적하는 것을 말하며, 재생성 시에 사용자 정보 또한 갱신된다.
User ID는 회원 코드를 활용하여 (접속 인스턴스에 종속되지) 않는 통합 관점의 사용자 행동 패턴을 추적하는 방법을 제공한다.


목표 시각화
목표 도달을 한 눈에 볼 수 있는 두 가지의 흐름 시각화를 제공한다.

유입경로 시각화
 - 지정한 단일 유입 경로를 표현한다.
 - 세션에 유입 위치가 있으면 순서에 관계 없이 지정한 유입 경로로 이루어진 것으로 본다.
 - 목표 지정 이후 부터 데이터가 쌓인다.

목표 흐름
 - 루프를 포함한 실제 유입 경로를 표현한다.
 - 기존 데이터를 소급하여 바로 보여준다.

공통
 - 무료 버전에서 수집 데이터 집계는 하루 정도 소요된다.
 - 세션 단위 집계로 1 세션에서는 1회 목표 도달된 것으로 표현된다.


향상된 링크 기여
* 특정 페이지의 2개의 다른 링크가 같은 하나의 페이지로 갈때,
* 특정 페이지에서 같은 하나의 링크가 상황에 따라 다른 페이지로 갈때,
와 같이, 더 향상된 인페이지 분석이 필요 할때 사용한다.

애널리틱스의 속성 설정에서 변경하고 사이트에 태그를 추가한다.
태그 매니저에서는 태그의 고급 속성에서 “거짓”을 “참”으로 변경한다.


구글 웹마스터 도구 (Search Console)
구글 검색엔진에서 어떤 검색어에 의해서 웹사이트의 어떤 페이지들이 얼마나 노출 되고 클릭 되는지를 보고한다.
구글 웹마스터 도구와 계정 연결이 필요하다.
웹마스터 도구와 웹사이트를 연결하기 위해서는 사이트 소스 접근 권한이 필요하다.


2016년 7월 4일 월요일

구글 애널리틱스에서 알 수 없는 값 요약

구글 애널리틱스에서 알 수 없는 값에 대한 처리를 어떻게 하는지 정리한다.


먼저, 실시간 이벤트를 통해서 리포트에 보여지는 내용을 본다.

**
이벤트 라벨에 empty string (‘’), null, undefined 를 입력한 결과이다.
empty string과 undefined는 (not set)으로 보여진다.
null은 null이라는 값으로 보인다.

위 결과에서,
이벤트 액션과 같이 리포팅 될 때는 알 수 없는 값을 표현할 때 쓰인다.
이벤트 라벨 스스로를 측정 기준으로 할 때는 null에 대한 값만 리포팅 된다.


가끔 접하는 알 수 없는 값에 대해서 알아본다.

(none)은 없다는 것으로 정의된 값이다.
예를들면) (direct)/(none) 웹 브라우저의 URL 타이핑을 통해서 접속한 것을 말한다.

(not set)은 식별 할 수 없는 값이다.
예를들면) (direct)/(not set) 이메일, 뉴스레터, 내부 웹 사이트처럼 GA에서 식별 할 수 없는 비 온라인 매체에서 접속한 것을 말한다.

(not provided)는 의도적으로 제공되지 않는 값이다.
예를들면) organic/(not provided) 구글에 로그인 되어 있는 사용자의 개인 정보 보호를 위해 키워드를 제공하지 않을 때를 말한다.


알수 없는 값에 미묘한 차이를 알아본다.

맞춤 측정 기준의 세션이나 사용자 범주(scope)를 볼때, empty string과 undefined는 차이를 보인다.
둘다 없는 값(not set)을 뜻하지만, empty string은 값이 없다라는 것을 덮어 쓰고, undefined는 아무런 영향을 주지 않는다.
이는 세션 이상의 범주에서 결과에 영향을 미치게 된다.
따라서, 태그에 특정 키에 값을 실어 보낼때, 특정 키를 보내지 않는 drop 효과를 가지기 위해서는 undefined 처리가 필요하다.
function() {
      if ( {{측정기준_X}} === '') {
            return;
      } else {
            return {{측정기준_X}};
      }
}
**
javascript에서 비교 조건 ==은 타입 변환한 결과 비교를 허용한다.
string 10과 int 10은 true이다.
But, === 에서는 타입이 일치 하지 않아서, false 이다.

2016년 7월 1일 금요일

구글 애널리틱스 맞춤 보고서 용어 정리

맞춤 보고서를 작성하다 보면 용어에 대한 명확한 정의가 중요합니다.
본문은 매번 혼동되는 용어를 정리하는 것에 목적을 둡니다.

아래 공식 가이드를 참조해서 핵심만 요약 합니다.
맞춤 보고서 공식 가이드

세션 수
조회 유형에 관계없이 세션의 첫 번째 조회와 함께 누적됩니다.
세션은 30분(디폴트)의 시간이 경과 하거나, 하루가 지나는 시점에는 종료된 것으로 간주합니다.
어떤 캠페인을 통해 사이트에 들어 왔다가 떠난 후 다른 캠페인을 통해서 다시 방문하면 새로운 세션으로 간주합니다.

방문자 수
세션의 첫 번째 페이지뷰와 함께 누적됩니다.

사용자
기간 설정에 따라 집계가 변합니다.

활성 사용자
특정 날짜를 기준으로 과거 N 번째 일 동안, 처음 세션을 시작한 순 사용자를 말합니다.

총 방문자 수
세션 또는 방문자 수와 연결 지을 수 있습니다.

순 방문자 수
사용자 수와 연결 지을 수 있습니다.

평균 세션 시간
한 세션의 평균 길이입니다.

평균 페이지에 머문 시간
사용자가 평균 페이지에 머문 시간입니다.

페이지에 머문 시간
연속된 페이지 조회의 시작 시각을 기준으로 계산합니다.

방문수
귀하의 사이트를 방문한 횟수입니다.

사용자 측정 항목 집계 방법 요약
가. 기간에 대한 측정 항목 (페이지뷰 수, 화면 조회수…) 등은 이전 데이터표와 합산합니다.
나. 비기간 측정 기준 (브라우저, 도시, 소스) 등은 요청 할때마다 원시 세션표의 데이터를 참조합니다.
**
비기간 일부 측정 기준 (소스, 매체) 등은 동일 사용자가 여러 버킷에 포함될 수 있어서 사용자의 총계와 합계에 차이가 있을 수 있습니다.

잠재 고객 - 개요 리포트 
측정 항목에서 사용자 기준으로 보면, 그래프에 나오는 값은 특정 시점 (시/일/주/월) 단위로 통계를 낸다.
하단에 요약 값은 그래프에 전체 기간을 기준으로 통계를 낸다.
**
그래프 기간에 신규 사용자의 합은 종합과 일치하지만 재 방문자의 합은 중복이 있다면 합이 종합과 일치하지 않을 수 있다.


2016년 6월 15일 수요일

판다스에서 구글 애널리틱스 API 연동

파이썬 라이브러리인 판다스의 구글 애널리틱스 API 사용 방법이다.
참고에 링크한 “판다스 구글 애널리틱스 연동” 가이드로 부족한 부분에 집중한다.

크게 보면,
1. 구글 개발 콘솔에서 접속 앱을 만든다.
2. 접속 앱에서 다운로드한 JSON 파일을 판다스 라이브러리 IO 폴더에 위치 시킨다.
3. 잘 활용한다.


테스트된 환경은 다음과 같다.

* 코드 호환성 문제로 파이썬 2.7에서 수행 했다.
* 판다스는 최신 버전인  0.18.1을 사용했다.
* 구글 인증을 라이브러리의 특정 버전을 설치한다.
pip install --upgrade oauth2client==1.4.12

**
구글 애널리틱스의 수집할 대상을 구분하기 위해서 하기 정보가 필요하다.
구글 애널리틱스 “관리”에 각각의 설정 변경 화면에서 모두 찾을 수 있다.
* account_id: 계정 ID
* property_id: 추적 ID (속성)
* profile_id: 보기 ID


가이드에 나오는 샘플 코드이다.
import pandas.io.ga as ga



df = ga.read_ga(

    account_id="12345678",

    profile_id="123456789",

    property_id="UA-12345678-1",

    metrics=['users', 'pageviews'],

    dimensions=['day'],

    start_date="2016-06-01",
 
    end_date="2016-06-14",

    index_col=0

)
print(df)


참고 



커버 사진

2016년 5월 31일 화요일

구글 태그 매니저

구글의 태그 매니저 사용 하면서 정리한 내용 입니다.

주요 기능

실시간 디버깅이 가능한 미리보기 도구를 제공한다.
변경 사항에 대한 체계적인 버전 관리가 가능하다.
다양한 분석 제품군을 기본 지원하고, 사용자 맞춤 태그 또한 지원한다.
구글 계정 단위 협업 기능을 제공한다.

권장 사항

페이지에서 발생되는 변수들은 가능하다면 데이터 레이어(dataLayer)를 이용한다.
전역변수나 DOM의 경우 유지보수 하면서 변경 가능성이 높다.
스니펫(추적 코드)는 호환성을 높이기 위해서  <BODY> 바로 다음에 추가한다.
분석 제품 추적 ID와 같이 자주 사용하는 값들은 변수에 등록해서 사용한다.

변수 설정 예제

자바 스크립트 전역 변수 선언
globalVariable = 10;
반대로, 지역 변수는 var를 붙인다.
var localVariable = 10;

데이터 레이어 변수 생성
dataLayer.push({‘key’:’value’})

데이터 레이어 이벤트 생성
dataLayer.push({‘event’:’event_name’})

**
dataLayer는 스니펫에서 정의되어 있는 예약어이다.
스니펫 코드에서 다음 위치 이름 수정(new_dataLayer_name)으로 변경 가능하다.
… (window,document,'script’,’new_dataLayer_name,’GTM-XXXX') …

맞춤 자바스크립트 변수 선언 (함수 반환값)
function() {
var now = new Date();
return now.getTime();
}

이벤트 수집 예제

분석 제품군: 구글 어낼리틱스 사용 가정

1. [웹 사이트] 이벤트 코드 삽입
    : dataLayer.push({‘event’:’event_test’})

2. [태그 매니저] 이벤트 이름이 event_test인 조건에 트리거 생성

3. [태그 매니저] 생성한 트리거에 따라 전송될 이벤트 정보 등록
    : 이벤트 카테고리, 작업(액션), 라벨 …

4. [태그 매니저] 미리 보기 및 디버깅 도구 실행

5. [웹 사이트] 이벤트 코드 수행 후 전송 확인

6. [구글 어낼리틱스] 실시간 이벤트 확인

7. [태그 매니저] 게시 (태그 적용)

구글 애드워즈 연결

리마케팅
리마케팅 목록을 등록한다.
리마케팅 스니펫 코드가 제공된다.

전환추적
전환 여부를 확인한다.
전환 스니펫 코드가 제공된다.

**
스니펫 코드는 웹 페이지에 직접 삽입 하거나,
식별 코드 정보를 통해서 태그 매니저에서 생성 할 수 있다.

주요 용어

계정
컨테이너를 그룹으로 관리한다.

컨테이너
웹/모바일 환경에 따른 추적 태그 생성 단위이다.
컨테이너를 기반으로 트리거, 태그, 변수의 설정 값이 관리된다.

버전
변경 환경에 버전 관리 기능을 제공한다.

관리자
사용자 권한 관리 및 컨테이너 관리 기능을 제공한다.
“컨태이너 가져오기/내보내기” 기능을 통해서 설정 환경을 다른 계정으로 복제 할 수 있다.

트리거
태그 발송(Fire)을 위한 조건을 명세한 트리거들을 만든다.

태그
기본 및 생성한 트리거로부터 유발된다.
사용할 제품으로 발송할 정보를 만든다.

변수
기본 변수에 사용자 변수를 정의 추가한다.
사용할 제품의 식별자를 상수로 정의하면 편리하다.

측정 기준 조회 범위

조회
값이 설정된 단일 조회에 적용된다.

세션
단일 세션의 모든 조회가 최종 값으로 적용된다.

사용자
현재 단일 세션의 모든 조회가 최종 값으로 적용된다.
변경이 없다면 미래 세션의 조회로 적용이 지속된다.

잘 작성된 참고 자료

참고

구글 태그 매니저 개발 가이드

표지 그림


2016년 3월 31일 목요일

구글 애널리틱스 플랫폼 활용

구글 애널리틱스 플랫폼을 탐색하는 데모와 도구들을 제공하는 페이지이다.

https://ga-dev-tools.appspot.com

다음과 같이 흥미로운 기능들을 가이드 하고 있다.

  • GA 측정기준 및 측정항목을 탐색할 수 있다.
  • 질의 도구를 통해서 통계 데이터를 조회할 수 있다. 
  • 구글 문서(스프레드시트)에서 주기적으로 갱신 가능한 리포트를 생성할 수 있다.
  • 강력한 내장 API들을 활용하여 손쉽게 사용자 솔루션을 만들 수 잇다.
  • 사이트 외부에도 삽입할 수 있는 추적코드 생성 도구를 제공한다. (1)

특히 (1)번을 통해서 다양한 행위에 대한 통계 자료를 손쉽게 모을 수 있다.
예를 들면,
이메일 공지에 대한 반응을 조사한다고 할때 다음과 같은 코드를 HTML 메일에 심어서 발송한다면, 메일 수신자에 대한 반응 확인이 가능하다. 나머지는 상상의 나래를 펼쳐보자.

-- sample code --
<img src="http://www.google-analytics.com/collect?v=1&t=event&tid=UA-XXXXX-1&cid=1&ec=email&ea=click&el=notice&ev=100”>

2016년 2월 29일 월요일

웹분석 - 방문자 식별 방법

웹분석에서 방문자를 정의 한다고 할때, IP나 쿠키를 생각할 수 있다.
IP 방식은 구현이 간편하지만, IP의 유동성이나 NAT 환경에서 대표성으로 인해서 세밀하지 못하다. 일반적으로는 브라우저 단위로 세분화 가능한 쿠키 방식을 사용한다.

본문에서는 방문자 식별이 쓰이는 사례와 방법을 예시한다.

먼저 웹분석의 기본 요소를 통해서 방문자 식별 사례를 본다.

방문
최초 이벤트 발생을 시점으로 방문이 일어나고 특정 조건 하에서 방문은 유지 된다.
IDLE이 특정 시간이 지나면 방문이 끊어진 것으로 고려 할 수 있다.

방문자
쿠키에 저장된 UUID를 통해서 식별 된다.
방문 시에 식별정보가 없는 경우 UUID를 생성하고, 신규 방문자로 방문이 일어난다.
반대의 경우 재 방문자로 방문이 일어난다.

다음은 방문자 식별을 위한 UUID 생성 방법이다.

범용 고유 식별자(汎用固有識別子, 영어: universally unique identifier, UUID)는 소프트웨어 구축에 쓰이는 식별자 표준이다.
표준 형식에서 32개의 십육진수로 사용되며 8-4-4-4-12 형태와 같이 5개 그룹을 하이픈(-)으로 구분한다.

버전에 따른 생성 방식이다.
버전 1 - MAC 주소와 시간
버전 2 - DCE 보안
버전 3 - MD5 해시와 식별자이름
버전 4 - 랜덤
버전 5 - SHA-1 해시와 식별자이름

버전 4의 중복이 발생할 확률을 “생일 문제(Birthday problem)”로 계산한 예제이다.
nprobability
68,719,476,736 = 2360.0000000000000004 (4 × 10−16)
2,199,023,255,552 = 2410.0000000000005 (5 × 10−13)
70,368,744,177,664 = 2460.0000000005 (5 × 10−10)

구글 애널리틱스의 UUID는 버전 4(random)를 사용하고 있다. (가이드)
cid=35009a79-1a05-49d7-b876-2b884d0f825b

실제로 쿠키에 담긴 내용은 조금 다르다.
효율성을 위해서 randomly hash로 9자리 숫자 시간 정보 10자리 숫자를 조합한다.
예) GA1.2.699874294.1455614537
9자의 hash를 통해서 정보의 분류 용도로 활용도가 있을 것으로 보인다.

참조

생일 문제
생일 문제(生日問題)란 사람이 임의로 모였을 때 그 중에 생일이 같은 두 명이 존재할 확률을 구하는 문제이다.

n명이 있을 때의 확률
P(n) = 1 - ( 365! / ( 365**n * (365 -n)!) )
np(n)
1012%
2041%
3070%
5097%
10099.99996%
50명만 있어도 두 명의 생일이 같을 확률이 97% 이다.

위키백과
https://en.wikipedia.org/wiki/Universally_unique_identifier
https://ko.wikipedia.org/wiki/생일_문제

커버사진

2016년 2월 22일 월요일

2016년 1월 27일 수요일

구글 애널리틱스 활용하기 - vs 마케팅

구글 애널리틱스(약칭 GA)의 활용도를 크게 두 가지로 나눠 본다.

vs 사이트
사이트의 구조 및 상품 노출을 개선하고 GA 리포트를 확인하는 사이클이다.

vs 마케팅
GA 리포트를 활용해서 마케팅에 활용하는 사이클이다.

본문은 후자(vs 마케팅)에 활용하는 사이클에 대한 한 가지 방법을 다룬다.

요약하자면, 수집된 데이터에서 의미 있는 군집을 정의하고, 리마케팅에 활용하는 방법이다. 절차는 다음과 같다.

1. 분석
다양한 차원 기능를 활용해 의미 있는 행동 패턴을 가진 집단을 찾는다.

2. 정의
유용한 집단을 세그먼트 (in 리포트)단위로 정의 한다.

3. 활용
세그먼트들을 통해서 리마케팅 잠재고객 (in 관리/속성)군을 만들고 에드워즈에서 타겟팅 용도로 활용한다.


References

리마케팅 잠재고객
1개 이상의 타겟팅 광고에 대한 타겟 사용자의 집합을 나타내는 쿠키 또는 모바일 광고 ID의 목록이다.
* 현재 User ID 보기에서 지원되지 않는다.

리마케팅 잠재고객 맞춤 조합
장바구니 담기 -> 구매 절차가 있다고 할때,
잠바구니에 담기만 하고 구매를 안한 잠재 고객을 정의 할때는 맞춤 조합으로 다음과 같이 정의 할 수 있다.
맞춤 조합 #1 = 장바구니 담은 잠재고객 + 구매한 잠재고객 제외

(비동적) 리마케팅
측정기준 및 측정항목 기반으로 잠재 고객을 정의 한다.

동적 리마케팅
카테고리별로 필요한 세부적인 사용자 측정기준 및 측정항목 기반으로 잠재 고객을 정의한다.

잠재고객
같은 성향을 가지는 방문 고객들의 집합이다.


커버 사진