R:Google Analytics/Примеры — различия между версиями

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Анализ посещаемости сайта)
м (Анализ посещаемости сайта)
Строка 65: Строка 65:
 
users    2270    3460  4160  4040    4740  5020</nowiki>}}
 
users    2270    3460  4160  4040    4740  5020</nowiki>}}
  
Суммарные показатели за 30 дней:
+
Суммарные показатели за 30 дней :
  
 
{{r-code|code=<nowiki>> t(sapply(ga.data[, -1], sum))
 
{{r-code|code=<nowiki>> t(sapply(ga.data[, -1], sum))
 
     pageviews sessions  users
 
     pageviews sessions  users
 
[1,]    385863  161206 125926</nowiki>}}
 
[1,]    385863  161206 125926</nowiki>}}
 +
 +
Подсчёт количества (уникальных) посетителей в GA ведётся разными способами, вследствие чего данные показатели могут отличаться при разных запросах. Более корректные цифры можно получиться, сделав непосредственный запрос к GA<ref>[https://support.google.com/analytics/answer/2992042?hl=ru Как рассчитывается количество уникальных посетителей/активных пользователей].</ref>:
 +
 +
{{r-code|code=<nowiki>> ga$getData(id, start.date = Sys.Date() - 30, end.date = Sys.Date(),
 +
+            metrics = "ga:pageviews,ga:sessions,ga:users", dimensions = "")
 +
  pageviews sessions users
 +
1    385863  161206 89626</nowiki>}}
  
 
Визуализировать таблицу данных можно следующим образом:
 
Визуализировать таблицу данных можно следующим образом:
 +
  
 
{{r-code|code=<nowiki>> ga.long <- melt(ga.data, id.vars = "date", value.name = "value", variable.name = "metric")
 
{{r-code|code=<nowiki>> ga.long <- melt(ga.data, id.vars = "date", value.name = "value", variable.name = "metric")

Версия 10:58, 24 апреля 2014


В этой статье приведены конкретные примеры запросов к API Google Analytics, а также способы анализа и визуализации полученных данных. Все данные взяты из профиля сайта http://psylab.info.

Предварительная настройка

Прежде чем приступить к анализу и визуализации данных, нам необходимо, загрузить все необходимые пакеты R, определить ряд переменных, подключиться к API Google Analytics и т.д.

Установка английской локали для даты и времени:

КодR

<syntaxhighlight lang="r">> Sys.setlocale("LC_TIME", "en_US")</syntaxhighlight>

Загрузка необходимых пакетов для работы:

КодR

<syntaxhighlight lang="r">> library(reshape2) > library(scales) > library(ggplot2) > library(rga)</syntaxhighlight>

Подключение к API GA:

КодR

<syntaxhighlight lang="r">> rga.open(instance = "ga", where = "ga.rga")</syntaxhighlight>

Определяем id сайта в профиле GA для получения данных:

КодR

<syntaxhighlight lang="r">> siteURL <- "http://psylab.info" > profiles <- ga$getProfiles() > id <- profiles[profiles$websiteUrl == siteURL, "id"]</syntaxhighlight>

Определяем часовой пояс согласно настройкам ресурса в GA для корректного преобразования времени в R:

КодR

<syntaxhighlight lang="r">timezone <- as.character(profiles[profiles$id == id, "timezone"])</syntaxhighlight>

Анализ посещаемости сайта

Для анализа посещаемости сайта возьмём следующие показатели: количество пользователей, количество посещений (сеансов) и количество просмотров страниц. Диапазон дат, как можно видеть из приведённого ниже кода, составляет 30 дней.

Получение данных:

КодR

<syntaxhighlight lang="r">> ga.data <- ga$getData(id, start.date = Sys.Date(), end.date = Sys.Date() - 30, + metrics = "ga:pageviews,ga:sessions,ga:users", + dimensions = "ga:date")</syntaxhighlight>

Переменные id, start.date, end.date мы уже определили ранее.

Приведём часть полученной таблицы данных для лучшего понимания дальнейших действий:

КодR

<syntaxhighlight lang="r">> head(ga.data) date pageviews sessions users 1 2014-03-24 11919 5043 3989 2 2014-03-25 12744 5364 4254 3 2014-03-26 12986 5366 4211 4 2014-03-27 12833 5288 4164 5 2014-03-28 10201 4483 3586 6 2014-03-29 7602 3381 2647</syntaxhighlight>

Выведем описательных статистик по всем показателям:

КодR

<syntaxhighlight lang="r">> t(sapply(ga.data[, -1], summary)) Min. 1st Qu. Median Mean 3rd Qu. Max. pageviews 6590 10700 12700 12400 14500 16000 sessions 3090 4490 5320 5170 6040 6520 users 2270 3460 4160 4040 4740 5020</syntaxhighlight>

Суммарные показатели за 30 дней :

КодR

<syntaxhighlight lang="r">> t(sapply(ga.data[, -1], sum)) pageviews sessions users [1,] 385863 161206 125926</syntaxhighlight>

Подсчёт количества (уникальных) посетителей в GA ведётся разными способами, вследствие чего данные показатели могут отличаться при разных запросах. Более корректные цифры можно получиться, сделав непосредственный запрос к GA[1]:

КодR

<syntaxhighlight lang="r">> ga$getData(id, start.date = Sys.Date() - 30, end.date = Sys.Date(), + metrics = "ga:pageviews,ga:sessions,ga:users", dimensions = "") pageviews sessions users 1 385863 161206 89626</syntaxhighlight>

Визуализировать таблицу данных можно следующим образом:


КодR

<syntaxhighlight lang="r">> ga.long <- melt(ga.data, id.vars = "date", value.name = "value", variable.name = "metric") > qplot(data = ga.long, x = date, y = value, color = metric, shape = metric, geom = c("line", "point")) + + theme_bw() + scale_x_date(labels = date_format("%d %b"), breaks = date_breaks("week"))</syntaxhighlight>

Преобразование исходной таблицы в «длинный» формат с помощью функции melt() необходимо для более удобной работы с несколькими переменными при построении графика.

Полученный график приведён ниже:

Ga-date-users.svg

Анализ посещаемости по дням недели

КодR

<syntaxhighlight lang="r">> ga.data <- ga$getData(id, start.date = ga$getFirstDate(id), end.date = Sys.Date(), + metrics = "ga:sessions", dimensions = "ga:date")</syntaxhighlight>

КодR

<syntaxhighlight lang="r">> ga.data$weekdays <- factor(weekdays(ga.data$date, abbreviate = TRUE), + levels = c("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"), ordered = TRUE)</syntaxhighlight>

КодR

<syntaxhighlight lang="r">> tapply(ga.data$sessions, ga.data$weekdays, mean) Mon Tue Wed Thu Fri Sat Sun 5682 6033 5572 5593 4717 3385 4120 </syntaxhighlight>

КодR

<syntaxhighlight lang="r">> qplot(data = ga.data, x = weekdays, y = sessions, geom = "bar", stat = "summary", fun.y = "mean") + theme_bw()</syntaxhighlight>

  1. Как рассчитывается количество уникальных посетителей/активных пользователей.