Изменения

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

R:Google Analytics

4185 байтов добавлено, 08:27, 6 августа 2014
м
Общее описание
== Общее описание ==
На данный момент, несмотря на все многообразие, в официальном репозитории CRAN нет пакетов для работы с API Google Analytics. Однако на сторонних ресурсах, тем не менее, можно обнаружить три рабочих решения: [https://code.google.com/p/r-google-analytics/ <code>RGoogleAnalytics</code>], [http://skardhamar.github.io/rga/ <code>rga</code>] и , [https://github.com/jdeboer/ganalytics <code>ganalytics</code>] и [https://bitbucket.org/unikum/rga RGA]. <ref>Пакеты <code>rga</code> и , <code>ganalytics</code> и <code>RGA</code> в ближайшее время могут появиться и в CRAN, работы в этом направлении уже ведутся.</ref>
Сравнительная таблица пактов для работы с GA APIGoogle Analytics:
{| class="wikitable sortable" width="800px"
! width="20%" | [https://github.com/skardhamar/rga rga]
! width="20%" | [https://github.com/jdeboer/ganalytics ganalytics]
! width="20%" | [https://bitbucket.org/unikum/rga RGA]
|-
! colspan=4 5 | Общая информация
|-
| Размещение
| style="text-align:center" | [https://github.com/skardhamar/rga GitHub]
| style="text-align:center" | [https://github.com/jdeboer/ganalytics GitHub]
| style="text-align:center" | [https://bitbucket.org/unikum/rga Bitbucket]
|-
| Дата публикации
| style="text-align:center" | 27.11.2012
| style="text-align:center" | 25.05.2013
| style="text-align:center" | 3.06.2014
|-
| Дата последней стабильной версии
| style="text-align:center" | 9.09.2013<ref>В апреле 2014 были внесены значительные изменения в код проекта, но после их внесения стабильного выпуска пока нет.</ref>
| style="text-align:center" | 251.0506.2014<ref>Дата последней правки на данный момент, т.к. релизы данного пакета отсутствуют.</ref>| style="text-align:center" | 244.0508.2014<ref>Дата последней правки на данный момент, т.к. релизы данного пакета отсутствуют.</ref>| style="text-align:center" | 5.08.2014<ref>Дата последней правки на данный момент, т.к. релизы данного пакета отсутствуют.</ref>
|-
| Лицензия
| style="text-align:center" | GPL2
| style="text-align:center" | MIT
| style="text-align:center" | GPL2
|-
| Зависимости
| style="text-align:center" | <code>RCurl</code>, <code>rjson</code>, <code>lubridate</code>
| style="text-align:center" | <code>RCurl</code>, <code>jsonlitehttr</code>, <code>lubridatejsonlite</code>, <code>httrlubridate</code>| style="text-align:center" | <code>httr</code>, <code>plyr</code>, <code>stringr</code>, <code>jsonlite</code>, <code>httpuv</code>| style="text-align:center" | <code>RCurl</code>, <code>httr</code>, <code>jsonlite</code>
|-
! colspan=4 5 | Авторизация
|-
| Авторизация по логину и паролю
| style="text-align:center" | +
| style="text-align:center" | -
| style="text-align:center" | -
| style="text-align:center" | -
|-
| Авторизация [https://developers.google.com/accounts/docs/OAuth2 OAuth2]<ref>Авторизация по Client ID и Client secret, полученным в [https://console.developers.google.com API Console].</ref>
| style="text-align:center" | +
| style="text-align:center" | +
| style="text-align:center" | +
| style="text-align:center" | +
|-
! colspan=4 5 | Доступ к API
|-
| Доступ к [https://developers.google.com/analytics/devguides/reporting/core/v3/ API базовых отчётов]
| style="text-align:center" | +
| style="text-align:center" | +
| style="text-align:center" | +
| style="text-align:center" | +
| style="text-align:center" | -
| style="text-align:center" | +
|-
| Доступ к [https://developers.google.com/analytics/devguides/config/mgmt/v3/ API конфигурации]<ref>Информация по аккаунтам, профилям, представлениям, сегментам и целям.</ref>
| style="text-align:center" | +
| style="text-align:center" | -
| style="text-align:center" | +
|-
| Пакетная обработка запросов<ref>Pagination - получение данных, превышающих ограничения Google (1000 на один запрос) путем организации нескольких запросов.</ref>
| style="text-align:center" | +
| style="text-align:center" | +
| style="text-align:center" | +
В плане простоты использования, в свою очередь. лидирует пакет <code>rga</code>. В отличие от <code>ganalytics</code>, пакет <code>rga</code> позволяет указывать метрики, измерения, узкие сегменты и фильтры в виде аргументов сразу, в одной функции, что упрощает понимание структуры запроса и сегмента, и позволяет обрабатывать множество однотипных сегментов (например, страниц сайта) в цикле или <code>[a-z]pply</code>-функциях. Также <code>ganalytics</code> не имеет внутренних инструментов получения ID профилей, а их получение из web-интерфейса Google Analytics с последующей вставкой в запросы <code>ganalytics</code> трудоемко и, самое главное, неинтуитивно. <code>RGoogleAnalytics</code>, несмотря на достаточно подробную документацию и достаточный для полноценной работы функционал, обладает несколько непрозрачной и неочевидной структурой запросов к GA API.
== Пакет <code>rga</code> Получение ключей для доступа к API Google Analytics ==
=== Установка необходимых пакетов ===Прежде чем приступить к работе с пакетами, предназначенными для работы с Google Analytics API, необходимо создать новое приложение в [https://console.developers.google.com Google Developers Console] и получить '''Client ID''' (идентификатор клиента) и '''Client secret''' (секретный ключ клиента) для доступа к API Google Analytics. Не смотря на то, что некоторые пакеты, например <code>rga</code>, предоставляют ключи доступа, сгенерированные автором пакета, мы всё же рекомендуем получить собственные ключи, т.к. сторонние ключи могут быть в любой момент отозваны автором.
Устанавливаем и подключаем пакет {{r-package|devtools}}, для доступа к [https://github.com/ github] (требуется только в первый раз, для установки пакета {{r-package|rga}})Пошаговая инструкция приведена ниже:
{{r-code|code=<nowiki>> install.packages# Создание нового проекта ("devtools"можно пропустить, если проект уже создан):> library#* Откройте страницу https://console.developers.google.com/project;#* В левой верхней части страницы нажмите на красную кнопку с надписью '''Create Project''';#* Во всплывающем окне в поле '''PROJECT NAME''' введите название проекта;#* Подтвердите создание проекта, нажав на кнопку '''Create'''.# Активация доступа к API Google Analytics:#* Выберите проект в списке проектов на странице https://console.developers.google.com/project;#* На боковой панели слева выберите пункт '''APIs & auth''';#* на вкладке '''APIs''' активируйте '''Analytics API''', нажав на кнопку с надписью `OFF` (devtoolsубедитесь, что вместо надписи `OFF` появилось `ON`)<.# Создание нового приложения:#* В боковой панели слева выберите пункт '''APIs & auth''', подпункт '''Credentials''';#* В левой части страницы нажмите на кнопку с надписью '''Create new Client ID''';#* Во всплывающем окне выберите пункт '''Installed application''' в списке '''APPLICATION TYPE''' и пункт '''Other''' в списке '''INSTALLED APPLICATION TYPE'''.#* Подтвердите создание приложения, нажав на кнопку с надписью '''Create Client ID'''.# Получение Client ID и Client secret:#* Выберите проект в списке проектов на странице https:/nowiki>}}/console.developers.google.com/project;#* В боковой панели слева выберите пункт '''APIs & auth''', подпункт '''Credentials''';#* В таблице с названием '''Client ID for native application''' скопируйте значения полей '''Client ID''' и '''Client secret'''.
Устанавливаем пакет <code>rga</code>:Теперь вы в любой момент можете вернуться на страницу '''Credentials''' и узнать '''Client ID''' и '''Client secret'''.
{{r-code|code== Пакет <nowikicode>> install_github("rga", "skardhamar")</nowikicode>}}==
=== Организация доступа к API Установка пакета ===
Загрузка Исходный код пакета <code>rga</code> (требуется только в начале работы при запуске новой Rрасполагается на [https://github.com github], поэтому установить его можно с помощью функции <code>install_github</code> из пакета {{r-сессии)package|devtools}}:
{{r-code|code=<nowiki>> librarydevtools::install_github("rga", "skardhamar")</nowiki>}}
Для создания токена доступа потребуется переход в браузер, подтверждение доступа и копирование ключа в консоль. Опционально команда создает отдельный файл, который потом можно использовать для аутентификации без перехода в браузер<ref>Аргумент <code>where</code> с указанием пути и имени файла.</ref>.=== Авторизация ===
{{r-Перед началом работы необходимо загрузить пакет <code|code=<nowiki>> rga.open(instance = "ga", where = "ga.rga")</nowikicode>}}(требуется только в начале работы при запуске новой R-сессии):
Видим, что в директории проекта появился файл <{{r-code>ga.rga</|code>=<refnowiki>Можно указать любой удобный путь и имя файла.</ref>. Теперь при повторном использовании этой команды будет осуществляться проверка наличия файла <code>ga.library(rga)</codenowiki> в рабочей директории и, если такой файл будет найден, то данные для аутентификации будут взяты из данного файла.}}
Второй вариант аутентификации с созданием собственного клиента API и ключей Для предоставления доступак данным Google Analytics API из пакета <code>rga</code> неободимо пройти процедуру авторизации. Для этого используется функция <code>rga.open</code>, которая принимает следующие аргументы:
# Необходимо создать проект на странице https:* <code>instance<//console.developers.google.com/projectcode> - имя переменной, которая будет содержать информацию о доступе к APi Google Analytics;# На вкладке APIs & auth на вкладке APIs надо активировать Analytics API, нажав на кнопку, где написано * <code>OFFwhere</code>.# Во вкладке APIs & auth перейти во вкладку Credentials- путь и/или имя файла, где выбрать Create new Client IDкоторый будет использоваться для кэширования информации;# При создании Client * <code>client.id</code> - ID выбрать APPLICATION TYPE: Installed application, INSTALLED APPLICATION TYPE: other, и нажать createклиента;# В результате будет Client ID = и Client * <code>client.secret = ;# На вкладке Consent screen необходимо выбрать рабочий email и дать название приложению (Product name), сохранить;</code> - секретный ключ.
Получаем токен Для получения токена доступа (откроется потребуется переход в браузер, где надо будет выбрать свой почтовый аккаунт подтверждение доступа и подтвердить вход копирование код доступа в API, тогда выдадут кодконсоль. Опционально команда создает отдельный файл, который надо будет вставить потом можно использовать для аутентификации без перехода в консольбраузер<ref>Аргумент <code>where</code> с указанием пути и имени файла.</ref>. {{r-code|code=<nowiki>> rga.open(instance = "ga", where = "ga.rga"):</nowiki>}} Видим, что в директории проекта появился файл <code>ga.rga</code><ref>Можно указать любой удобный путь и имя файла.</ref>. Теперь при повторном использовании этой команды будет осуществляться проверка наличия файла <code>ga.rga</code> в рабочей директории и, если такой файл будет найден, то данные для аутентификации будут взяты из данного файла.
{{r-code|code=<nowiki>> rga.open(instance = "ga", client.id = "", client.secret = "", where = "ga.rga")</nowiki>}}Второй вариант аутентификации с использованием собственных ключей доступа:
Пояснения по значениям аргументов:{{r-code|code=<nowiki>> rga.open(instance = "ga", client.id = "XXXXXX", client.secret = "XXXXXXX", where = "ga.rga")</nowiki>}}
* <code>clientПосле выполнения данной команды будет открыт интернет браузер со страницей запроса подтверждения разрешения на доступ к данным Google Analytics.id</code> необходимо вставить сюда Client ID;* <code>clientНеобходимо авторизоваться под своей учётной записью Google и подтвердить разрешение на доступ к данным Google Analytics.secret</code> необходимо вставить сюда Client secretОтметим, что пакет `RGA` запрашивает доступ '''только для чтения''' данных.
После успешной аутентификации информацию о установленном подключении можно получить с помощью команды <code>ga$status()</code> или более подробную информацию <code>ga$show()</code>.
{{r-code|code=<nowiki>> 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 ...

Навигация