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

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Организация доступа к API)
м (Получение данных из GA)
Строка 69: Строка 69:
  
 
{{r-code|code=<nowiki>> ga.data <- ga$getData(ids = ID,
 
{{r-code|code=<nowiki>> ga.data <- ga$getData(ids = ID,
+                      start.date = "2014-01-01", end.date = Sys.Date(),
+
+                      start.date = ga$getFirstDate(ID), end.date = Sys.Date(),
 
+                      metrics = "ga:pageviews, ga:visits, ga:visitors",
 
+                      metrics = "ga:pageviews, ga:visits, ga:visitors",
 
+                      dimensions = "ga:date",
 
+                      dimensions = "ga:date",
Строка 77: Строка 77:
  
 
* <code>start.date</code> - задает стартовое время в формате "ГГГГ-ММ-ДД"<ref>Получить начальную дату сбора статистики в GA можно следующим образом: <code> ga$getFirstDate(ID)</code>.</ref>;
 
* <code>start.date</code> - задает стартовое время в формате "ГГГГ-ММ-ДД"<ref>Получить начальную дату сбора статистики в GA можно следующим образом: <code> ga$getFirstDate(ID)</code>.</ref>;
* <code>end.date</code> - задает конечное время в формате "ГГГГ-ММ-ДД" (в данном случае используется функция <code>Sys.Date()</code>, которая выводит сегодняшнее число);
+
* <code>end.date</code> - задает конечное время в формате "ГГГГ-ММ-ДД"<ref>в данном случае используется функция <code>Sys.Date()</code>, которая выводит сегодняшнее число.</ref>;
 
* <code>metrics</code> - определяет показатели (столбцы), которые будут входить в таблицу с данными;
 
* <code>metrics</code> - определяет показатели (столбцы), которые будут входить в таблицу с данными;
 
* <code>dimensions</code> - определяет параметры (строки) таблицы, которые будут входить в таблицу с данными;
 
* <code>dimensions</code> - определяет параметры (строки) таблицы, которые будут входить в таблицу с данными;
Строка 87: Строка 87:
 
Детальнее по метрикам, сегментам и фильтрам смотреть здесь: https://developers.google.com/analytics/devguides/reporting/core/dimsmets. Внимание, нельзя использовать больше 7 метрик одновременно! Гайд по сегментам здесь: https://developers.google.com/analytics/devguides/reporting/core/v3/segments.
 
Детальнее по метрикам, сегментам и фильтрам смотреть здесь: https://developers.google.com/analytics/devguides/reporting/core/dimsmets. Внимание, нельзя использовать больше 7 метрик одновременно! Гайд по сегментам здесь: https://developers.google.com/analytics/devguides/reporting/core/v3/segments.
  
После получения данных мы можем работать с переменной <code>ga.data</code> как с обычной таблицей данных (<code>data.frame</code>).
+
После получения данных мы можем работать с переменной <code>ga.data</code> как с обычной таблицей данных (<code>data.frame</code>). Таблица данных, полученных на предыдущем этапе выглядит следующим образом:
 +
 
 +
{{r-code|code=<nowiki>> head(ga.data)
 +
        date pageviews visits visitors
 +
1 2014-03-19      9032  3651    3038
 +
2 2014-03-20    11914  5028    4037
 +
3 2014-03-21    10494  4388    3505
 +
4 2014-03-22      7173  3133    2445
 +
5 2014-03-23      8561  3676    2853
 +
6 2014-03-24    11919  5043    3989</nowiki>}}
 +
 
 +
Структура таблицы имеют следующий вид:
 +
 
 +
{{r-code|code=<nowiki>> str(ga.data)
 +
'data.frame': 29 obs. of  4 variables:
 +
$ date    : Date, format: "2014-03-19" "2014-03-20" "2014-03-21" "2014-03-22" ...
 +
$ pageviews: num  9032 11914 10494 7173 8561 ...
 +
$ visits  : num  3651 5028 4388 3133 3676 ...
 +
$ visitors : num  3038 4037 3505 2445 2853 ...</nowiki>}}
  
 
== Примечания ==
 
== Примечания ==

Версия 06:55, 16 апреля 2014


Общее описание

Пакетов для работы с API Google Analytics несколько, наиболее часто упоминающиеся - rga и RGoogleAnalytics. В принципе, они различаются незначительно - в процедуре аутентификации и организации доступа к API. Пакет rga выглядит более удобным для работы, так как ключ для аутентификации создается один раз, и потом только загружается, в то время как при работе с пакетом RGoogleAnalytics приходится в начале каждой сессии проходить аутентификацию в браузере. К тому же, пакет rga обладает более прозрачной логикой запросов к API.

Установка необходимых пакетов

Устанавливаем и подключаем пакет devtools, для доступа к github, требуется только в первый раз, для установки пакетов rga. В дальнейшем он не требуется.

КодR

<syntaxhighlight lang="r">> install.packages("devtools") > library(devtools)</syntaxhighlight>

Загрузка пакета доступа к GA, требуется только в начале работы при запуске новой R-сессии:

КодR

<syntaxhighlight lang="r">> install_github("rga", "skardhamar")</syntaxhighlight>

После обновления пакета httr до версии 0.3, функции которого используются в пакете rga, появились ошибки с выводом данных запроса при использовании нескольких метрик. Поэтому на данный момент использование пакета rga возможно только с установкой предыдущей версии пакета httr (0.2) вручную. Установить пакет httr необходимый версии можно с помощью функции install_url() из пакет devtools, который мы уже загрузили ранее:

КодR

<syntaxhighlight lang="r">> install_url("http://cran.r-project.org/src/contrib/Archive/httr/httr_0.2.tar.gz")</syntaxhighlight>

Организация доступа к API

Подключение пакета доступа к GA

КодR

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

Запрет верификации SSL-соединения (требуется только для ОС Windows, чтобы избежать ошибок при аутентификации):

КодR

<syntaxhighlight lang="r">> curl <- getCurlHandle() > options(RCurlOptions = list(capath = system.file("CurlSSL", "cacert.pem", package = "RCurl"), ssl.verifypeer = FALSE))</syntaxhighlight>

Для создания ключа аутентификации потребуется переход в браузер, подтверждение доступа и копирование ключа в консоль. Команда создает отдельный файл, который потом можно использовать для аутентификации без перехода в браузер и т.д.

КодR

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

Видим, что в директории проекта появился файл ga.rga[1]. Теперь при повторном использовании этой команды будет осуществляться проверка наличия файла ga.rga в рабочей директории и, если такой файл будет найден, то данные для аутентификации будут взяты из данного файла.

Второй вариант аутентификации, с созданием собственного клиента API и ключей доступа:

  1. Необходимо создать проект на странице https://console.developers.google.com/project/;
  2. Во вкладке APIs & auth выбрать Analytics API, и там перейти во вкладку Credentials, где выбрать Create new Client ID;
  3. При создании Client ID выбрать Installed application/other, и нажать create;
  4. В результате будет Client ID = и Client secret = ;
  5. На вкладке Consent screen необходимо выбрать рабочий email и дать название приложению (Product name), сохранить;
  6. На общей вкладке APIs & auth/Analytics API/APIs надо активировать API, нажав на кнопку, где написано OFF.

Создаем постоянный ключ (откроется браузер, где надо будет выбрать свой почтовый аккаунт и подтвердить вход в API, тогда выдадут код, который надо будет вставить в консоль):

КодR

<syntaxhighlight lang="r">> rga.open(instance = "ga", + client.id = "", + client.secret = "", + where = "api.rga")</syntaxhighlight>

Пояснения по значениям аргументов:

  • client.id необходимо вставить сюда Client ID;
  • client.secret необходимо вставить сюда Client secret.

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

Получение списка аккаунтов/сайтов в GA и их ID, которые используется для сбора данных:

КодR

<syntaxhighlight lang="r">> ga$getProfiles()</syntaxhighlight>

Пример сбора данных по выбранным метрикам и измерениям приведён ниже.

КодR

<syntaxhighlight lang="r">> ga.data <- ga$getData(ids = ID, + start.date = ga$getFirstDate(ID), end.date = Sys.Date(), + metrics = "ga:pageviews, ga:visits, ga:visitors", + dimensions = "ga:date", + batch = TRUE)</syntaxhighlight>

Пояснения по значениям аргументов:

  • start.date - задает стартовое время в формате "ГГГГ-ММ-ДД"[2];
  • end.date - задает конечное время в формате "ГГГГ-ММ-ДД"[3];
  • metrics - определяет показатели (столбцы), которые будут входить в таблицу с данными;
  • dimensions - определяет параметры (строки) таблицы, которые будут входить в таблицу с данными;
  • segment - определяет сегмент, который может накладываться на данные;
  • sort - определяет, по какому из столбцов будет производиться сортировка данных в таблице;
  • filters - определяет фильтры, которые накладываются на данные;
  • batch = TRUE собирает все данные, а не только первые 10000 строк (необходимо, если предполагается, что строк может быть много).

Детальнее по метрикам, сегментам и фильтрам смотреть здесь: https://developers.google.com/analytics/devguides/reporting/core/dimsmets. Внимание, нельзя использовать больше 7 метрик одновременно! Гайд по сегментам здесь: https://developers.google.com/analytics/devguides/reporting/core/v3/segments.

После получения данных мы можем работать с переменной ga.data как с обычной таблицей данных (data.frame). Таблица данных, полученных на предыдущем этапе выглядит следующим образом:

КодR

<syntaxhighlight lang="r">> head(ga.data) date pageviews visits visitors 1 2014-03-19 9032 3651 3038 2 2014-03-20 11914 5028 4037 3 2014-03-21 10494 4388 3505 4 2014-03-22 7173 3133 2445 5 2014-03-23 8561 3676 2853 6 2014-03-24 11919 5043 3989</syntaxhighlight>

Структура таблицы имеют следующий вид:

КодR

<syntaxhighlight lang="r">> str(ga.data) 'data.frame': 29 obs. of 4 variables: $ date : Date, format: "2014-03-19" "2014-03-20" "2014-03-21" "2014-03-22" ... $ pageviews: num 9032 11914 10494 7173 8561 ... $ visits : num 3651 5028 4388 3133 3676 ... $ visitors : num 3038 4037 3505 2445 2853 ...</syntaxhighlight>

Примечания

  1. Можно указать любой удобный путь и имя файла.
  2. Получить начальную дату сбора статистики в GA можно следующим образом: ga$getFirstDate(ID).
  3. в данном случае используется функция Sys.Date(), которая выводит сегодняшнее число.

Ссылки