Изменения

Перейти к: навигация, поиск

R:Google Analytics/Примеры

12 250 байтов добавлено, 17:10, 17 мая 2014
м
Анализ суточной активности посетителей по дням недели
{{r-code|code=<nowiki>> timezone <- as.character(profiles[profiles$id == id, "timezone"])</nowiki>}}
Автоматическое определение первого и последнего числа текущего предыдущего месяца:
{{r-code|code=<nowiki>> start.date <- end.date <- as.POSIXlt(Sys.Date(), tz = timezone)
> start.date$mday <- end.date$mday <- 1
> endstart.date$mon <- endstart.date$mon + - 1
> end.date$mday <- end.date$mday - 1</nowiki>}}
Чтобы получить диапазон дат за последние 30, 90 или 180 дней, достаточно отнять нужное количество дней от текущей даты. Например:
{{r-code|code=<nowiki>> end.date <- Sys.Date()- 1
> start.date <- end.date - 30</nowiki>}}
Получение данных:
{{r-code|code=<nowiki>> ga.data <- ga$getData(id, start.date = Sys.Date()- 31, end.date = Sys.Date() - 301,
+ metrics = "ga:pageviews,ga:sessions,ga:users",
+ dimensions = "ga:date")</nowiki>}}
== Анализ посещаемости по дням недели ==
Проанализируем динамику посещаемости сайта в течении недели. Для этого возьмём сведения о количестве посещений с момента начала сбора статистики до текущего дняпоследнего воскресенья<ref>Сбор статистики необходимо закончить последним днём недели, чтобы избежать искажений показателей. Код для запроса этих данных выглядит </ref>. Получить дату ппредыдущего воскресенья можно следующим образом:
{{r-code|code=<nowiki>> cur.wday <- as.POSIXlt(Sys.Date())$wday> sunday.date <- if (cur.wday != 7) Sys.Date() - cur.wday</nowiki>}} Проверяем полученную дату: {{r-code|code=<nowiki>> sunday.date[1] "2014-04-20"> weekdays(sunday.date)[1] "Sunday"</nowiki>}} Код для запроса этих данных выглядит следующим образом: {{r-code|code=<nowiki>> ga.data <- ga$getData(id, start.date = ga$getFirstDate(id), end.date = Syssunday.Date()date,
+ metrics = "ga:sessions", dimensions = "ga:dayOfWeekName")</nowiki>}}
{{r-code|code=<nowiki>> ga.data[order(ga.data$dayOfWeekName), ]
dayOfWeekName sessions
2 Monday 28409230906 Tuesday 30165241577 Wednesday 29784276095 Thursday 22936279641 Friday 19199235873 Saturday 13791169244 Sunday 1692220598</nowiki>}}
Визуализировать данную таблицу можно следующим образом:
{{r-code|code=<nowiki>> qplot(data = ga.data, x = dayOfWeekName, y = sessions, geom = "bar", + stat = "summaryidentity", fun.y = "mean",+ xlab = "days of week") + + theme_bw() + theme(axis.ticks.x = element_blank())</nowiki>}}
Полученный результат:
[[Файл:Ga-wdays-sessions.svg|600px|центр]]
На графике отчётливо видно, что пик посещаемости сайта приходится на начало первую половину недели, а своего минимума достигает в субботу. Проверить предположение о неслучайном характере распределение активности посетителей в зависимости от дня недели можно с помощью статистического критерия <math>\chi^2</math> Пирсона.
== Анализ суточной активности посетителей по дням недели ==
Для анализа активности посетителей сайта в качестве показателя активности мы выбрали количество просмотров страниц (показатель <code>ga:pageviews</code>) по часам (<code>ga:hour</code>) и дням недели (<code>ga:dayOfWeekName</code>)<ref>Взяты названия дней недели, т.к. в GA началом недели считается воскресенье и, соответственно, нумерация осуществляется с воскресенья.</ref>. Получаем необходимые данные:
{{r-code|code=<nowiki>> ga.data <- ga$getData(id, start.date = ga$getFirstDate(id), end.date = Sys.Date()- 1,
+ metrics = "ga:pageviews", dimensions = "ga:dayOfWeekName,ga:hour")</nowiki>}}
Конвертируем названия дней недели в ранжированный фактор для соблюдения порядка дней недели при построении графиков.
{{r-code|code=<nowiki>>ga.data$dayOfWeekName <- factor(ga.data$dayOfWeekName, ordered = TRUE,+ levels = c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"))</nowiki>}}
Приведём первые несколько строк таблицы для наглядной демонстрации структуры полученных данных:
В качестве визуализации воспользуемся плиточным графиком, который окрашивает зоны на пересечении часов и дней недели в зависимости от значения переменной <code>pageviews</code>. Пример кода для построения графика:
{{r-code|code=<nowiki>> qplot(data = ga.data, x = dayOfWeekName, y = hour, fill = pageviews, xlab = "days of week") +
+ geom_tile(colour = "white") + scale_fill_gradient(low = "steelblue", high = "red", space = "Lab") +
+ theme_bw() + theme(axis.ticks = element_blank())</nowiki>}}
Получаем отсротированные по убыванию данные по показателю <code>ga:sessions</code>:
{{r-code|code=<nowiki>> ga.data <- ga$getData(id, start.date = ga$getFirstDate(id), end.date = Sys.Date()- 1,
+ metrics = "ga:sessions", dimensions = "ga:medium", sort = "-ga:sessions")</nowiki>}}
[[Файл:Ga-trafic-sources.svg|600px|центр]]
 
Теперь рассмотрим источники трафика более детально. Для этого сделаем выборку по измерениям <code>ga:medium</code> и <code>ga:source</code>. В качестве показателей активности посетителей возьмём следующие показатели:
 
* количество посещений (<code>ga:sessions</code>);
* процент новых посещений (<code>ga:percentNewSessions</code>);
* средняя продолжительность посещения (<code>ga:avgSessionDuration</code>);
* количество просмотров страниц (<code>ga:pageviews</code>);
* среднее количество просмотров страниц на одно посещение (<code>ga:pageviewsPerSession</code>);
* [http://ru.wikipedia.org/wiki/Показатель_отказов процент отказов] (<code>ga:bounceRate</code>).
 
Наиболее интересными для нас являются источники, имеющие наибольшее количество посещений, поэтому воспользуемся сортировкой по убыванию по показателю <code>ga:sessions</code>, а также ограничим количество источников теми, с которых было более 100 посещений. Код для получения данных приведён ниже.
 
{{r-code|code=<nowiki>> ga.data <- ga$getData(id, start.date = "2014-03-24", end.date = "2014-04-23",
+ metrics = "ga:sessions,ga:percentNewSessions,ga:avgSessionDuration,ga:pageviews,ga:pageviewsPerSession,ga:bounceRate",
+ dimensions = "ga:medium,ga:source", sort = "ga:medium,-ga:sessions", filters = "ga:sessions>100")</nowiki>}}
 
Полученная в результате запроса таблица данных:
 
{{r-code|code=<nowiki>> ga.data
medium source sessions percentNewSessions avgSessionDuration pageviews pageviewsPerSession bounceRate
1 (none) (direct) 11182 48.92 205.34 28823 2.578 63.42
2 organic yandex 72949 43.72 146.23 170021 2.331 69.30
3 organic google 61130 45.60 183.29 143721 2.351 65.15
4 organic go.mail.ru 5884 49.68 160.77 16012 2.721 66.42
5 organic rambler 683 53.29 134.36 1635 2.394 68.96
6 organic bing 379 47.23 185.23 1158 3.055 62.53
7 organic ask 115 46.09 181.53 313 2.722 60.00
8 referral vk.com 2732 26.79 212.63 7722 2.827 57.91
9 referral ru.wikipedia.org 2598 54.16 148.96 6640 2.556 62.36
10 referral psychologos.ru 578 70.24 62.54 863 1.493 84.43
11 referral e.mail.ru 338 31.07 242.53 1102 3.260 54.73
12 referral nigma.ru 265 30.94 198.44 881 3.325 71.70
13 referral ru.m.wikipedia.org 143 60.84 101.99 282 1.972 68.53
14 referral rutracker.org 143 60.14 79.49 200 1.399 85.31
15 referral brainmod.ru 105 41.90 127.41 199 1.895 71.43</nowiki>}}
 
Сравнивая данные показатели у разных истоников трафика мжно выявить наиболее ценные из них.
 
Отобразим только поисковый трафик:
 
{{r-code|code=<nowiki>> head(subset(ga.data, medium == "organic"), n = 10)
medium source sessions percentNewSessions avgSessionDuration pageviews pageviewsPerSession bounceRate
2 organic yandex 72949 43.72 146.2 170021 2.331 69.30
3 organic google 61130 45.60 183.3 143721 2.351 65.15
4 organic go.mail.ru 5884 49.68 160.8 16012 2.721 66.42
5 organic rambler 683 53.29 134.4 1635 2.394 68.96
6 organic bing 379 47.23 185.2 1158 3.055 62.53
7 organic ask 115 46.09 181.5 313 2.722 60.00</nowiki>}}
 
Отобразим только трафик переходов:
 
{{r-code|code=<nowiki>> head(subset(ga.data, medium == "referral"), n = 10)
medium source sessions percentNewSessions avgSessionDuration pageviews pageviewsPerSession bounceRate
8 referral vk.com 2732 26.79 212.63 7722 2.827 57.91
9 referral ru.wikipedia.org 2598 54.16 148.96 6640 2.556 62.36
10 referral psychologos.ru 578 70.24 62.54 863 1.493 84.43
11 referral e.mail.ru 338 31.07 242.53 1102 3.260 54.73
12 referral nigma.ru 265 30.94 198.44 881 3.325 71.70
13 referral ru.m.wikipedia.org 143 60.84 101.99 282 1.972 68.53
14 referral rutracker.org 143 60.14 79.49 200 1.399 85.31
15 referral brainmod.ru 105 41.90 127.41 199 1.895 71.43</nowiki>}}
 
Визуализируем эту таблицу с помощью столбиковой диаграммы:
 
{{r-code|code=<nowiki>> qplot(data = head(subset(ga.data, medium == "organic")), x = reorder(source, sessions), y = sessions,
+ geom = "bar", stat = "identity", xlab = "") + coord_flip() + theme_bw()</nowiki>}}
 
[[Файл:Ga-searches.svg|600px|центр]]
 
{{r-code|code=<nowiki>> qplot(data = head(subset(ga.data, medium == "referral")), x = reorder(source, sessions), y = sessions,
+ geom = "bar", stat = "identity", xlab = "") + coord_flip() + theme_bw()</nowiki>}}
 
[[Файл:Ga-referrals.svg|600px|центр]]
 
<code>reorder(source, sessions)</code> используется для сортировки столбцов в диаграмме в зависимости от значения столбца «sessions».
 
Для более детального анализа сайтов, с которых приходят посетители, а также целевые страницы, можно сделать следующую выборку данных:
 
{{r-code|code=<nowiki>> ga.data <- ga$getData(id, start.date = "2014-03-24", end.date = "2014-04-23",
+ metrics = "ga:sessions", dimensions = "ga:medium,ga:source,ga:referralPath,ga:pageTitle",
+ sort = "-ga:sessions", filters = "ga:medium==referral", batch = TRUE, walk = TRUE)</nowiki>}}
 
В каждом заголовке страницы присутствует также название сайта<ref>Это поведение зависит от настроек «движка» сайта.</ref>, для удобства представления данных убираем его:
 
{{r-code|code=ga.data$pageTitle <- gsub(" — Psylab.info", "", ga.data$pageTitle)}}
 
Выведем список наиболее посещаемых страниц нашего сайта посетителям, которые приходят с сайта Википедии:
 
{{r-code|code=<nowiki>> head(ga.data[grep("wikipedia", ga.data$source), -1:-3], n = 10)
pageTitle sessions
2 Методика чернильных пятен Роршаха 430
3 Прогрессивные матрицы Равена 286
4 Методика многофакторного исследования личности Кэттелла 270
5 Опросник «Уровень субъективного контроля» 245
6 Категория:Тесты интеллекта 184
12 Шкала депрессии Бека 78
13 Тест структуры интеллекта Амтхауэра 76
15 Методика многофакторного исследования личности Кэттелла 54
17 Тест фрустрационных реакций Розенцвейга 52
19 Миннесотский многоаспектный личностный опросник 51</nowiki>}}
 
== География посещений ==
 
Информация о географии посещений можно получить с помощью измерений из группы «Geo Network». Для начала получим данных о количестве посещений по странам.
 
{{r-code|code=<nowiki>> ga.data <- ga$getData(ids = id, start.date = Sys.Date() - 31, end.date = Sys.Date() - 1,
+ metrics = "ga:sessions", dimensions = "ga:country",
+ sort = "-ga:sessions", filters = "ga:country!=(not set)")</nowiki>}}
 
Полученные данные представляют собой следующую таблицу:
 
{{r-code|code=<nowiki>> head(ga.data, n = 10)
country sessions
1 Russia 115167
2 Ukraine 25166
3 Belarus 8361
4 Kazakhstan 4252
5 Netherlands 1565
6 Moldova 980
7 United States 681
8 Armenia 515
9 Latvia 463
10 Kyrgyzstan 392</nowiki>}}
 
Рассмотрим более подробно география посещений по городам РФ:
 
{{r-code|code=<nowiki>> ga.data <- ga$getData(ids = id, start.date = "2014-03-24", end.date = "2014-04-23",
+ metrics = "ga:sessions", dimensions = "ga:country,ga:city",
+ sort = "-ga:sessions", filters = "ga:country==Russia;ga:city!=(not set)")</nowiki>}}
 
Полученные результаты:
 
{{r-code|code=<nowiki>> head(ga.data, n = 10)
country city sessions
1 Russia Moscow 18760
2 Russia Saint Petersburg 14660
3 Russia Novosibirsk 4359
4 Russia Yekaterinburg 3972
5 Russia Samara 3916
6 Russia Kazan 2071
7 Russia Rostov-on-Don 1875
8 Russia Krasnodar 1816
9 Russia Perm 1753
10 Russia Krasnoyarsk 1715</nowiki>}}
== Примечания ==
<references />
 
[[Категория:R]]
[[Категория:Веб-аналитика]]

Навигация