Last active
December 17, 2015 00:29
-
-
Save IronistM/5521492 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Only for the first and test runs! | |
final_dataset<-NA | |
j<-1 | |
# In the future we should only get data for increment dates. Don't we? | |
# get.start.date<-min(final_dataset$date) | |
# Set up a filters vector to loop over the distinct categories of the blog | |
filters<-c("ga:pagePath=~^/blog/category/measure/*;ga:pageLoadSample>0","ga:pagePath=~^/blog/category/statistics/*;ga:pageLoadSample>0","ga:pagePath=~^/blog/category/music/*;ga:pageLoadSample>0") | |
page.group<-c("measure","statistics","music") | |
# setwd('C:/Users/m.parzakonis/Google Drive/MyCodeRants/GA/data') | |
for (i in filters) { | |
speed.df.1 <- ga$getData(id[1], | |
start.date = "2012-08-01", | |
end.date = today()-1, | |
metrics = "ga:pageLoadTime,ga:pageLoadSample,ga:domainLookupTime,ga:pageDownloadTime,ga:redirectionTime,ga:serverConnectionTime,ga:serverResponseTime,ga:speedMetricsSample", | |
filters = filters[i], | |
dimensions = "ga:date,ga:isMobile", | |
max = 1500, | |
sort = "-ga:pageLoadSample") | |
speed.df.2 <- ga$getData(id[1], | |
start.date = "2012-08-01", | |
end.date = today()-1, | |
metrics = "ga:domInteractiveTime,ga:domContentLoadedTime,ga:domLatencyMetricsSample,ga:visits,ga:transactions,ga:bounces", | |
filters = filters[i], | |
dimensions = "ga:date,ga:isMobile", | |
max = 1500, | |
sort = "ga:date") | |
# Merge files, create metrics | |
merged.df <- merge(speed.df.1, speed.df.2, all=TRUE) | |
# head(merged.df) # Yessssss! Only to check that it's OK | |
merged.df$avgPageLoadTime <- (merged.df$pageLoadTime/merged.df$pageLoadSample)/1000 | |
merged.df$avgDomInteractiveTime <- (merged.df$domInteractiveTime/merged.df$domLatencyMetricsSample)/1000 | |
merged.df$conversionRate <- (merged.df$transactions/merged.df$visits)*100 | |
merged.df$bounceRate <- (merged.df$bounces/merged.df$visits)*100 | |
merged.df$yearmo <- year(merged.df$date)*100 + month(merged.df$date) | |
# Add another group variable to the data for further analysis | |
merged.df$avgPLGroup<-cut_interval(merged.df$avgPageLoadTime, length = 4) | |
merged.df$avgPLGroupNum<-as.numeric(cut_interval(merged.df$avgPageLoadTime, length = 4)) | |
# Should you have more page groups to studt use this varible as an index | |
merged.df$pageGroup<-rep(page.group[j],nrow(merged.df)) | |
final_dataset = merge(final_dataset,merged.df,all=TRUE) | |
j<-j+1 | |
} | |
head(final_dataset)[,1:5] | |
# date isMobile pageLoadTime pageLoadSample domainLookupTime | |
# 1 2012-08-01 No 1051584 230 7059 | |
# 2 2012-08-01 No 2375879 431 1890 | |
# 3 2012-08-01 No 3150374 723 1426 | |
# 4 2012-08-01 No 8793485 1663 11901 | |
# 5 2012-08-01 No 10952910 2485 8852 | |
# 6 2012-08-01 No 34297816 7452 67489 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When I run this code, it says to specify "today" which I do as "05-31-2015" for example. Also, head(final_dataset)[,1:5] has an incorrect # of dimensions, Could you please update to fix?