R을 이용한 구글 애널리틱스 분석
좀 더 편하게 로그 분석을 할 수 있는 방법을 찾다가 어느 블로그에서 발견한 것입니다. 소스만 복사해 놓은 거라... 원문을 쓰신 분 죄송합니다.
우선, 구글 API를 이용할 수 있도록 합니다. 자세한 사항은 구글링 참조
1) Google Developers Console 가입
2) Analytics API 사용 등록
3) API 및 인증 메뉴 → 사용자 인증 정보 메뉴에서 "새 클라이언트 ID 만들기"
R코드는 아래 처럼 인증 → 가져올 데이터 정의 → 데이터 가져오기 → 분석 순으로 작성됩니다. 이를 응용하면 반복되는 분석을 자동화하는데 큰 도움이 될 것 같습니다. 그런데 R을 잘 모른다는 것이 함정 ㅜㅜ
library(RGoogleAnalytics)
library(ggplot2)
library(magrittr)
library(dplyr)
library(lubridate)
library(xts)
; 새로 만들거나 기존의 클라이언트 ID와 클라이언트 비밀 보안 입력
token <- Auth(client.id = "XXXXXXX.apps.googleusercontent.com", client.secret = "XXXXXXX")
save(token,file="./token_file")
load("./token_file")
ValidateToken(token)
; 데이터를 가져올 보기의 번호 입력(table.id는 구글 애널리틱스 → 보기 → 설정에서 볼 수 있습니다.
query.list <- Init(start.date = "2014-12-01",
end.date = "2014-12-31",
dimensions = "ga:date",
metrics = "ga:users,ga:pageviews",
max.results = 10000,
sort = "-ga:users",
table.id = "ga:XXXXXXXX")
ga.query <- QueryBuilder(query.list)
ga.data <- GetReportData(ga.query, token)
; 분석에 맞게 데이터를 작성합니다. 아래는 요일변수를 만드는 예입니다.
ga.data <- ga.data %>% mutate(weekdays=factor(weekdays(as.Date(date, "%Y%m%d")), levels = c("일요일", "월요일", "화요일", "수요일", "목요일","금요일", "토요일")))
; 분석 결과를 시각화 합니다.
ga.data %>% data.frame %>% group_by(weekdays) %>% summarise(wdsums=sum(users)) %>% ggplot(aes(weekdays, wdsums)) + geom_bar(aes(fill=weekdays),stat="identity")