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

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Получение данных)
м (Получение данных)
Строка 83: Строка 83:
 
Все вышеперечисленные функции также поддерживают аргументы <code>start</code> (индекс начала выдачи) и <code>max</code> (максимальное количество результатов).
 
Все вышеперечисленные функции также поддерживают аргументы <code>start</code> (индекс начала выдачи) и <code>max</code> (максимальное количество результатов).
  
Получения данных:
+
Пакет <code>rga</code> поддерживает работу как с [https://developers.google.com/analytics/devguides/reporting/core/v3/ API отчётов], так и с [https://developers.google.com/analytics/devguides/reporting/mcf/v3/ API многоканальных последовательностей].
 +
 
 +
Получения данных базовых отчётов:
  
 
{{r-code|code=<nowiki>> ga$getData(id, start.date, end.date, metrics, dimensions)</nowiki>}}
 
{{r-code|code=<nowiki>> ga$getData(id, start.date, end.date, metrics, dimensions)</nowiki>}}
 +
 +
Получение данных по многоканальным последовательностям можно получить через функцию <code>ga$getMCFData()</code>. Аргументы методов <code>getData</code> и <code>getMCFData</code> совпадают<ref>Отличием является содержание показателей и измерений.</ref>.
  
 
Пояснения по значениям аргументов:
 
Пояснения по значениям аргументов:
Строка 105: Строка 109:
 
Детальную информацию  можно найти на соответствующих страницах справочного руководства по GA API:
 
Детальную информацию  можно найти на соответствующих страницах справочного руководства по GA API:
  
* по параметрам запроса к API: https://developers.google.com/analytics/devguides/reporting/core/v3/reference#q_summary
+
* по параметрам запроса к API отчётов: https://developers.google.com/analytics/devguides/reporting/core/v3/reference
* по метрикам и измерениям: https://developers.google.com/analytics/devguides/reporting/core/dimsmets
+
* по параметрам запроса к API многоканальных последовательностей: https://developers.google.com/analytics/devguides/reporting/mcf/v3/reference
 +
* по метрикам и измерениям базовых отчётов: https://developers.google.com/analytics/devguides/reporting/core/dimsmets
 +
* по метрикам и измерениям многоканальных последовательностей: https://developers.google.com/analytics/devguides/reporting/mcf/dimsmets/
 
* по сегментам: https://developers.google.com/analytics/devguides/reporting/core/v3/segments.
 
* по сегментам: https://developers.google.com/analytics/devguides/reporting/core/v3/segments.
  

Версия 17:53, 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>

Устанавливаем пакет rga[1]:

КодR

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

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

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

КодR

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

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

КодR

<syntaxhighlight lang="r">> 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[2]. Теперь при повторном использовании этой команды будет осуществляться проверка наличия файла 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$status() или более подробную информацию ga$.self.

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

Получение списка аккаунтов в, к которым пользователь имеет доступ:

КодR

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

Получение списка ресурсов, к которым пользователь имеет доступ:

КодR

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

Можно указать accountId (по умолчанию будет выведена информацию по всем аккаунтам).

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

КодR

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

Можно указать accountId и webPropertyId (по умолчанию будет выведена информацию по всем аккаунтам и ресурсам).

Получение списка целей:

КодR

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

Можно указать accountId, webPropertyId и profileId (по умолчанию будет выведена информацию по всем аккаунтам, ресурсам и представлениям).

Получение списка сегментов:

КодR

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

Все вышеперечисленные функции также поддерживают аргументы start (индекс начала выдачи) и max (максимальное количество результатов).

Пакет rga поддерживает работу как с API отчётов, так и с API многоканальных последовательностей.

Получения данных базовых отчётов:

КодR

<syntaxhighlight lang="r">> ga$getData(id, start.date, end.date, metrics, dimensions)</syntaxhighlight>

Получение данных по многоканальным последовательностям можно получить через функцию ga$getMCFData(). Аргументы методов getData и getMCFData совпадают[3].

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

  • ids - номер профиля, из которого нужно выгрузить данные;
  • start.date - задает стартовое время в формате, указанном с помощью аргумента date.format[4];
  • end.date - задает конечное время в формате, указанном с помощью аргумента date.format[5];
  • date.format - формат даты, который используется по умолчанию для start.date и end.date (по умолчанию format(Sys.time(), "%Y-%m-%d"))
  • metrics - определяет показатели (столбцы), которые будут входить в таблицу с данными (по умолчанию "ga:visits")[6];
  • dimensions - определяет параметры (строки) таблицы, которые будут входить в таблицу с данными (по умолчанию "ga:date")[7];
  • segment - определяет сегмент данных (как правило, страницы/разделы сайта);
  • sort - определяет, по какому из столбцов будет производиться сортировка данных в таблице[8];
  • filters - определяет фильтры, которые накладываются на данные (в определенной мере аналог сегментов);
  • batch = TRUE собирает все данные, а не только первые 10000 строк (необходимо, если предполагается, что строк может быть много).
  • walk = TRUE собирает исходные, а не агрегированные данные.

Аргументы ids, start.date, end.date и metrics являются обязательными для запроса к GA API. Прм этом функция getData() требует только id профиля, т.к. остатальные аргменты имеют значения по умолчанию. Все аргументы функции getData(), а также значения по умолчанию можно посмотреть с помощью команды args(ga$getData).

Детальную информацию можно найти на соответствующих страницах справочного руководства по GA API:

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

КодR

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

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

КодR

<syntaxhighlight lang="r">> head(ga.data) date pageviews sessions users 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': 34 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 ... $ sessions : num 3651 5028 4388 3133 3676 ... $ users : num 3038 4037 3505 2445 2853 ...</syntaxhighlight>

Примечания

  1. Поскольку автор оригинального пакета в данный момент не занимается его поддержкой, мы используем форк Willem Paling, в котором исправлены некоторые критические ошибки.
  2. Можно указать любой удобный путь и имя файла.
  3. Отличием является содержание показателей и измерений.
  4. Получить начальную дату сбора статистики в GA можно с помощью команды ga$getFirstDate(id).
  5. В данном случае используется функция Sys.Date(), которая выводит текущую дату.
  6. Можно использовать не больше 10 метрик одновременно.
  7. Можно использовать не больше 7 измерений одновременно.
  8. Поддерживается как прямая, так и обратная сортировка

Ссылки

См. также