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

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Общее описание)
м (Организация доступа к API)
Строка 39: Строка 39:
  
 
# Необходимо создать проект на странице https://console.developers.google.com/project;
 
# Необходимо создать проект на странице https://console.developers.google.com/project;
# Во вкладке APIs & auth выбрать Analytics API, и там перейти во вкладку Credentials, где выбрать Create new Client ID;
+
# Во вкладке APIs & auth выбрать Analytics API (нажать на <code>ON</code>);
# При создании Client ID выбрать Installed application/other, и нажать create;
+
# Во вкладке APIs & auth перейти во вкладку Credentials, где выбрать Create new Client ID;
 +
# При создании Client ID выбрать APPLICATION TYPE: Installed application, INSTALLED APPLICATION TYPE: other, и нажать create;
 
# В результате будет Client ID = и Client secret = ;
 
# В результате будет Client ID = и Client secret = ;
 
# На вкладке Consent screen необходимо выбрать рабочий email и дать название приложению (Product name), сохранить;
 
# На вкладке Consent screen необходимо выбрать рабочий email и дать название приложению (Product name), сохранить;
# На общей вкладке APIs & auth/Analytics API/APIs надо активировать API, нажав на кнопку, где написано OFF.
+
# На общей вкладке APIs & auth/Analytics API/APIs надо активировать API, нажав на кнопку, где написано <code>OFF</code>.
  
 
Создаем постоянный ключ (откроется браузер, где надо будет выбрать свой почтовый аккаунт и подтвердить вход в API, тогда выдадут код, который надо будет вставить в консоль):
 
Создаем постоянный ключ (откроется браузер, где надо будет выбрать свой почтовый аккаунт и подтвердить вход в API, тогда выдадут код, который надо будет вставить в консоль):

Версия 16:27, 17 мая 2014


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

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

Менее известным является пакет ganalytics, который был опубликован на github в мае 2013. Он обладает довольно хорошей документацией и довольно удобным в работе с помощью S4-методов. Аутентификация осуществляется с помощью Client ID и Client secret, полученных через Google API Console.

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

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

КодR

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

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

КодR

<syntaxhighlight lang="r">> install_github("rga", "skardhamar")</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>

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

КодR

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

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

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

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

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

Получить информацию о всех доступных методах, доступных для класса rga можно с помощью команды ga$explore():

КодR

<syntaxhighlight lang="r">> ga$explore() Generator for class "rga": Class fields: Name: client.id client.secret where token Class: character character character list Class Methods: "callSuper", "copy", "explore", "export", "field", "getAccounts", "getClass", "getData", "getDataInBatches", "getDataInWalks", "getFirstDate", "getGoals", "getMCFData", "getMCFDataInBatches", "getMCFDataInWalks", "getProfiles", "getRefClass", "getSegments", "getToken", "getWebProperties", "import", "initFields", "initialize", "isToken", "isTokenExpired", "isWhere", "prepare", "processManagementData", "refreshToken", "setToken", "show", "status", "tokenExpiresIn", "trace", "untrace", "usingMethods" Reference Superclasses: "envRefClass" </syntaxhighlight>

Наиболее полезными являются:

  • explore - получение информации о о классе rga;
  • getAccounts - получение списка аккаунтов в, к которым пользователь имеет доступ;
  • getData - получение данных из GA API базового отчёта;
  • getFirstDate - получения даты начала сбора статистики для данного id;
  • getGoals - получение списка целей;
  • getMCFData - получение данных из GA API многоканальных последовательностей;
  • getProfiles - получение списка ресурсов и представлений сайтов, к которым пользователь имеет доступ[4];
  • getSegments - получение списка сегментов;
  • getToken - получение токена дотупа;
  • getWebProperties - получение списка ресурсов, к которым пользователь имеет доступ[5];
  • refreshToken - обновление токена доступа;
  • show - получение подробной информации о данных подключения к GA;
  • status - получение краткой информации о статусе подключения к GA;

Узнать какие аргументы, а также их значения по умолчанию, можно передать тому или иному методу можно узнать с помощью функции args. Например:

КодR

<syntaxhighlight lang="r">> args(ga$getData) function (ids, start.date = format(Sys.time(), "%Y-%m-%d"), end.date = format(Sys.time(), "%Y-%m-%d"), date.format = "%Y-%m-%d", metrics = "ga:users,ga:sessions,ga:pageviews", dimensions = "ga:date", sort = "", filters = "", segment = "", fields = "", start = 1, max, messages = TRUE, batch, walk = FALSE, output.raw, output.formats, return.url = FALSE, rbr = FALSE, envir = .GlobalEnv) NULL</syntaxhighlight>

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

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

КодR

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

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

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

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

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

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

Получить доступ к API GA можно также с помощью веб-сервисов Google по следующей ссылке: https://developers.google.com/apis-explorer/?hl=ru#p/analytics/v3/. Для получения данных необходимо авторизоваться и задать требуемые параметры для запроса к 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. В текущей версии 1.4.
  2. Аргумент where с указанием пути и имени файла.
  3. Можно указать любой удобный путь и имя файла.
  4. Можно указать accountId (по умолчанию будет выведена информацию по всем аккаунтам).
  5. Можно указать accountId (по умолчанию будет выведена информацию по всем аккаунтам).
  6. Отличием является содержание показателей и измерений.
  7. Получить начальную дату сбора статистики в GA можно с помощью команды ga$getFirstDate(id).
  8. В данном случае используется функция Sys.Date(), которая выводит текущую дату.
  9. Можно использовать не больше 10 метрик одновременно.
  10. Можно использовать не больше 7 измерений одновременно.
  11. Поддерживается как прямая, так и обратная сортировка

Ссылки

См. также