구글 애널리틱스 데이터를 R로 불러와서 분석하기

(오늘 포스팅을 하고자 하는 내용은 다소 전문적일 수 있음. 사실 아주 어려운 내용은 아님)

 

 

구글 애널리틱스는 웹트래픽을 모으고 분석하는데 매우 훌륭한 도구이다. 구글 애널리틱스 태그만 심으면 구글 애널리틱스에 있는 100개가 넘는 리포트의 대부분을 활용할 수 있는 것은 대단한 일이다.

 

대부분의 사람들은 사실 이 리포트들을 살펴보는 것만으로도 충분히 원하는 데이터를 얻을 수 있다. (아니 포기한다고 표현하는 것이 맞을지도 모른다..) 어째튼 구글 애널리틱스는 그 기본기능 자체만으로도 상당히 강력한 분석 기능을 제공한다.

 

하지만 데이터 분석을 업으로 하는 사람은 항상 구글 애널리틱스에서 기본적으로 제공하는 기능 그 이상을 원한다.

 

실제로 데이터를 관리하는 팀과의 미팅을 진행하면 구글 애널리틱스를 써서 Raw data를 받을 수 있는지에 대한 질문은 꼭 나온다. 사실 데이터 분석을 많이 하는 나 역시도 누군가 만들어놓은 대쉬보드나 그래프 등을 살펴볼 때, Raw data에 대한 엑세스는 항상 요구한다. 개인적으로 Raw data를 보지 않고서는, 그리고 각 테이블이 어떠한 공식을 가지고 만들어졌는지 파악하기 전까지는 데이터의 정확성에 대한 의구심을 지울 수 없기 때문이다. 그리고 이 Raw data를 가지고 있어야 내 마음대로 데이터를 주물러 더 나은 인사이트를 더욱 쉽게 뽑아낼 수 있다.

 

구글 애널리틱스를 통하여 더 정교한 분석을 진행하기 위해서는 따라서 Raw data를 뽑아낼 수 있는 것이 제 1 원칙이며, 이 Raw data를 다양한 전문 분석 도구 (R, SPSS 등) 혹은 전문 Data Visualization 도구(Tableau 등)와 연결시켜 분석하여야 한다.

 

물론 최근 나온 GA 360 Suite를 활용하면 굳이 이런 3rd party 툴에 연동시켜 심층 분석을 하지 않고 Suite 내의 플랫폼을 활용하여 진행할 수 있지만, GA360 suite는 비싸다.. ㅎ 이에 비하여 R은 무료다.

 

서론이 길었는데 그래서 오늘 다룰 내용은 구글 애널리틱스 API를 활용하여, R에 데이터를 직접 불러올 수 있는 기능을 알아보고자 한다.

 

 

R이란?

 

R은 한 마디로 정의하기는 참 힘든 플랫폼/프로그래밍 언어이다. (워낙 오픈 소스로 이 방향 저방향으로 펼쳐지다 보니..) 그래도 가장 포괄적인 설명은 'R은 통계 분석 소프트웨어' 라는 설명이 아닐까 싶다.

 

R은 통계 분석을 하는데 있어서 전세계에서 가장 많이 활용이 되는 플랫폼이며, 최근에는 빅데이터 분석, 머신 러닝 등에도 많이 활용이 되고 있다. 또한 다양한 패키지를 통해서 강력한 데이터 시각화 기능을 제공하기도 한다.

 

구글 애널리틱스와 R

 

구글 애널리틱스도 하루하루 어마어마한 클릭스트림 데이터가 쌓인다. 구글 애널리틱스의 기본적인 리포트로도 어느정도의 분석이 가능하지만, GA를 통하여 상관 관계 분석, 회귀분석, 실험에 대한 통계적 유의미성 등 통계적인 분석을 진행할 수는 없다.

 

R에 구글 애널리틱스 데이터를 불러와서 분석을 할 수 있으면, GA의 클릭스트림 데이터에 통계적 분석을 더하여 진행할 수 있다.

 

방법이 무척 어려울 것 같지만, 구글에서 R을 위한 패키지를 따로 만들어놓은 것이 있다. 이 패키지만 쓰면 대단히 쉽게(?) GA 데이터를 불러올 수 있다.

 

진행 방법

 

1. Google Analytics API를 활성화시킴 (구글 개발자 콘솔: 여기에서 진행 가능)

 

 

 

 

2. R로 가서 devtools 패키지와 rga, curl 패키지를 다운 받는다.

 

 

> install.packages 커멘드를 써서 다운 받을 수 있으며, 다운 받은 후에는 library("패키지 이름")으로 해당 패키지를 활성화 한다.

 

 

(요렇게 패키지를 활성해주어야만 사용이 가능하다. 참고로 이 커맨드는 R을 새로 킬 때 항상 활성화시켜주어야만 한다.)

 

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

3. GA API와 R을 연결시킨다. 이를 위해서는 보기 ID가 필요하다.

 

 

위와 같이 코드를 입력하면,

 

 

열려져 있는 웹브라우저에서 위와 같이 뜬다. 가볍게 allow 혹은 허용을 눌러주자.

 

 

 

허용을 누르면 복잡한 코드들이 쭈우우욱 나오는데, 이 코드를 복사해서 R에 붙여넣으면 된다.

 

 

 

다음은 보기 ID를 구글 애널리틱스의 관리 > 보기 > 보기 설정 페이지에서 확인한 후, 

 

R 내에서 id 변수값 안에 이 보기id를 넣어놓자. (id <- 1111111) 이런식으로..

 

 

 

그 이후 위와 같이 코드를 입력하면 원하는 형태로 데이터를 R로 불러올 수 있다.

 

참고로 활용할 수 있는 항목들은 아래와 같으며,

 

 

walk: walk를 True로 세팅하면, 샘플링을 피하기 위하여 시스템이 자동으로 데이터를 하루씩 늘려가면서 불러온다. 다만 사용할 것을 별로 추천을 안하는게.. walk를 True로 세팅하면 API 쿼리를 여러번 송출하기 때문에 데이터를 불러오는데 시간도 오래 걸릴 뿐더러, API 송출 제한에도 걸릴 수 있다. 그리고 하루 데이터를 불러올 때도 샘플링이 될만큼 데이터 규모가 크다면, 뭐 크게 의미는 더더욱 없다.
start.date: 불러올 데이터의 시작 시점을 말한다. 포멧은 as.Date(“YYYY-MM-DD”) 형식을 보여야 한다. (예: as.Date(“2015-07-01”) ).
end.date: 불러올 데이터의 종료 시점을 말한다. 포멧은 위와 동일하게 as.Date(“YYYY-MM-DD”)을 보여야 한다.
metrics: 불러올 측정항목을 정한다. (측정항목의 api 및 정의는 여기에서 확인할 수 있다, 10개까지 불러올 수 있다)
dimensions: 불러올 측정 기준의 종류를 정한다. (7개까지 가능, 구체적인 목록은 위의 링크에서 확인 가능하다)

sort: (선택) 데이터를 측정 기준이나 항목 별로 정렬하고자 할 때 활용할 수 있다.
filters: (선택) 데이터에 필터를 더하고자 할 때 활용 가능하다.
segment: (선택) 세그먼트를 적용한 데이터를 불러온다. 이미 만들어진 세그먼트의 데이터를 불러올 수 있으며, 혹은 새로 api를 활용하여 만들 수도 있다.

max: (선택) 불러올 데이터의 최대 Row를 정할 수 있다.

 

 

위의 명령어를 바탕으로 위와 같이 코드를 작성하면,

 

아래와 같은 데이터 셋을 얻을 수 있다. (기간은 다른 기간을 적용했다.)

 

 

 

이렇게 GA의 클릭스트림 데이터를 원하는 형태로 GA API를 통하여 R에 불러올 수 있다. 이제 이 데이터를 활용하여 통계적 유의미성을 파악하거나, 회귀분석을 하거나, 추천 상품 알고리즘을 개발하거나, 광고의 성과를 더욱 정확하게 파악해볼 수 있다.

 

다음에는 기회가 된다면, GA 데이터를 R로 불러온 후, 광고 집행이 사이트 유입에 미치는 영향을 알아보도록 하겠다.

 

 



출처: http://clicknote.tistory.com/30 [Google Analytics Talk]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED