Home R에서 GOOGLE ANALYTICS 데이터 사용하기
Post
Cancel

R에서 GOOGLE ANALYTICS 데이터 사용하기

개요

Google Analytics(이하 GA)는 요즘 손쉽고 깔끔하게 웹 및 모바일 통계를 (대부분) 무료로 볼 수 있는 매우 근사하고, 덕분에 매우 각광받는 서비스다. 각설하고, 개인적으로도 이 서비스를 매우 좋아하는 바로 책도 보고 교육도 듣고(이 사이트의 어딘가에 교육 중 하나의 후기도 있다) 했지만, 그래도 대쉬보드에서 데이터를 보는 데에는 한계가 있고, 저 데이터를 받아서 내 멋대로 사용할 수 없을까 하는 생각도 했다. 물론 excel 다운로드 등을 제공하지만 원하는 수치들을 매번 받아서 R 시스템에 업로드해서 사용하는 일은 매우 번거로운 작업이다.

이 생각을 나만 한 것은 아닌지라, 일찌기 이런 생각을 하신 능력이 출중하신 몇몇 분들께서 R과 Google Analytics를 연동하는 방법에 대해서 많은 고민을 하셨고, 심지어는 R과 Google Analytics를 연동하는 R 패키지를 만들어서 뿌리는 일을 하셨던 것이다. 그것도 다양한 사람들이 접근하시다보니 비슷한 패키지도 여러가지다. 대표적인 것으로(내가 아는 것)는 ganalytics, RGoogleAnalytics,rga가 있다. 이 패키지들은 OAuth 2.0 프로토콜을 사용해서 권한이 있는 GA에 접근해서 데이터를 받아온 다음 R에서 사용할 수 있도록 S4 class 형태로 제공한다.

설치

그럼 간단하게 구경을 해보자. 매뉴얼을 훑어봤을 때는 방법론적으로 크게 차이가 없는 것 같으니 일단 여기서는 rga(https://github.com/skardhamar/rga)를 사용하도록 하겠다. 이 패키지들 모두 github에서 최신 버전을 받을 수 있다. CRAN이 아닌 github에서 패키지를 받기 위해서 우선 devtools라는 패키지가 필요하다.

1
library(devtools)

devtools 패키지의 install_github 함수를 사용해서 github에 올라온 rga 패키지를 설치한다.

1
2
install_github("rga", "skardhamar") 
library(rga)

접속

설치가 완료되었으니, 자신의 GA계정에 접근해 보도록 하자.

1
rga.open(instance = "ga")

그러면 웹브라우저에서 R GA 접근 권한을 묻는 페이지가 열린다. ‘Accept’를 가볍게 눌러주자.

image

그러면 코드를 카피해서 화면에 넣으라는 문구가 뜨면서 코드가 뜬다. 그 코드를 복사해서 R 콘솔에 Please enter code here: 라고 나온 데에다 붙여 넣어준다. 그러면 접속이 된 것이다.

데이터 가져오기

일단 자신의 계정에서 접근할 수 있는 프로파일을 다음과 같이 확인해 보자.

여기서 사용하고자 하는 id를 가져오자. 여기서는 http://datum.io의 데이터를 사용할 것이다. 이에 해당하는 id를 지정해주자. 이 때 id가 숫자값이라고 해도 id<-“12345567”같이 문자열로 넣어준다.

그러면 해당 ID의 GA 데이터를 끌어 올 준비가 다 되었다. 데이터를 가져와 보자. 데이터의 셋팅은 GA에서 사용하는 metric, dimension, filter를 모두 여러개씩 사용할 수 있다. 이는 옵션에서 문자열로 지정해 줄 수 있으며, 이에 대한 상세한 내용은 링크를 참조하자. 이 때 GA에서 sampling된 데이터를 반환하는 경우가 있지만, rga의 walk와 batch옵션을 사용하면 GA 에서 사용하는 전체 데이터를 받을 수 있다.

1
2
start.date <- "2014-07-15"
end.date <- "2014-08-14"

gatest<-ga$getData(id,batch = TRUE, walk = TRUE, start.date, end.date, dimensions = “ga:date, ga:week”, metrics = “ga:visits,ga:pageviews”) 그러면 gatest라는 객체에 지정해 준 내용의 GA 데이터가 data.frame 형태로 들어온다.

1
2
attributes(gatest) 
head(gatest)

데이터 활용

이렇게 들어온 데이터는 여러 형태로 활용할 수 있다. 다른 외부의 데이터와 붙여서 볼 수도 있고, 여러 GA 데이터를 로딩하여 각 사이트별로 비교해 볼 수도 있으며, 이를 통해서 사이트 방문 고객 분석을 하거나 예측 모델을 만들거나 하는 등등 다양하게 사용할 수 있을 것이다. 여기서는 일단 간단하게 통계치 보는 것, GA와는 조금 다른 형태의 그래프를 보는 정도로만 사용해 보도록 하겠다.

통계치 살펴보기

1
2
summary(gatest[,c(-1, -2)]) ## 기초 통계량
apply(gatest[,c(-1, -2)], 2, hist) ## 히스토그램(분포)

주별 분포 boxplot 보기

1
2
3
library(ggplot2) 
library(grid) 
library(gridExtra)
1
2
3
p1 <- ggplot(gatest, aes(x=week, y=visits, fill=week)) + geom_boxplot() 
p2 <- ggplot(gatest, aes(x=week, y=pageviews, fill=week)) + geom_boxplot() 
grid.arrange(p1, p2, ncol = 2, main = "Datum.io Visit Statistics")

일단 R에서 GA 데이터를 손쉽게 끌어올 수 있다는 것에 의의를 두고 간단하게 만들어 보았지만, 이를 잘 활용하면 재밌는 것들이 많이 나올 수 있을 것 같다. GA가 워낙 막강하지만 어딘가 아쉬웠던 사람들에게는 꽤 유용할 것으로 보인다. 본인도 재밌는 것들이 뭐가 나올 수 있을 지 짬짬이 생각해 보려고 한다.

(http://datum.io/r%EC%97%90%EC%84%9C-google-analytics-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/ 에서 옮겨왔습니다)

    This post is licensed under CC BY 4.0 by the author.

    Doing Bayesian 스터디 (6장)

    R로 인터랙티브 공간 데이터 시각화하기