Яндекс. Метрика — отличный инструмент для сбора данных о посещениях сайта, но, к сожалению, бывает так, что в веб-интерфейсе не хватает того или иного функционала – например, автоматической отправки отчета. В этой статье я подробно опишу, как получить статистику по роботности c помощью языка R.
1.1. Скачайте и установите актуальную версию R, а также интегрированную среду разработки R Studio, в которой вам будет удобнее работать.
1.2. В R-Studio создаем новый файл и вставляем код:
1.3. Чтобы запустить процесс установки пакетов, выделите весь текст и нажмите «Run»

2.1. Создаем приложение oauth.yandex.ru/client/new

Получаем следующее:

2.2. Идем по ссылке: oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>, где вместо <идентификатора> подставляем свое значение ID.
2.3. Даем разрешение:

2.4. Копируем и сохраняем токен:

3.1. Вставляем код в R-Studio:
Меняем: setwd, appToken, counterID, почту получателя, свою почту и пароль
* Если R-Studio ругается на xlsx, то идем по ссылке и скачиваем соответствующую версию java www.java.com/en/download/manual.jsp
** доступные метрики и группировки — можно посмотреть здесь
3.2. Идем в свой аккаунт Gmail и даем разрешение на взаимодействие с «ненадежными приложениями» (иначе письмо не отправится)
myaccount.google.com/u/4/security?hl=ru&pageId=none#connectedapps

3.3. Настраиваем расписание отправки:


3.4 Проверяем планировщик заданий (Панель управления ->Расписание выполнения задач)
Если задание есть, но письмо не отправляется — открываем свойства задания, вкладку «Действия» -> Изменить -> ставим 1 в конце строки

Преимущества автоматической отправки отчетов:
- Можно заранее настроить необходимый формат отчетов и не тратить время на выгрузки при приближении дедлайнов;
- Нет ограничений по формату и периодичности выгрузки
1. Установите язык R и необходимые библиотеки
1.1. Скачайте и установите актуальную версию R, а также интегрированную среду разработки R Studio, в которой вам будет удобнее работать.
1.2. В R-Studio создаем новый файл и вставляем код:
install.packages("xlsx") install.packages("mailR") install.packages("taskscheduleR")
1.3. Чтобы запустить процесс установки пакетов, выделите весь текст и нажмите «Run»

2. Получите токен доступа к API Яндекс.Метрики
2.1. Создаем приложение oauth.yandex.ru/client/new
- Права -> Яндекс.Метрика, выше выбираем «Получение статистики» и «создание счетчиков»;
- Callback URL -> выбираем “подставить URL для разработки»;
- Сохраняем

Получаем следующее:

2.2. Идем по ссылке: oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>, где вместо <идентификатора> подставляем свое значение ID.
2.3. Даем разрешение:

2.4. Копируем и сохраняем токен:

3. Настраиваем автоматическую отправку отчета
3.1. Вставляем код в R-Studio:
Меняем: setwd, appToken, counterID, почту получателя, свою почту и пароль
library(xlsx) library(mailR) setwd("D:/R") appToken <-"здесь должен быть токен" date1 <-format(Sys.Date()-1, "%Y-%m-%d") date2 <-format(Sys.Date()-1, "%Y-%m-%d") counterID <-"здесь номер счетчика" metrics <-"ym:s:visits,ym:s:robotPercentage" dimensions <-"ym:s:UTMSource" api_request <-paste("https://api-metrika.yandex.ru/stat/v1/data.csv?id=",counterID,"&date1=",date1,"&date2=",date2,"&metrics=",metrics,"&dimensions=",dimensions,"&oauth_token=",appToken,sep="") chem <-read.csv(file=api_request, encoding = "UTF-8") filename <-paste("yandexbots_",date1,".xlsx",sep="") write.xlsx(chem, file=filename) textofbody <-paste ("Добрый день! Направляю отчетность по роботности за ", date1, sep="") send.mail(from = "your_email@gmail.com", to = "здесь почта получателя", subject = "Роботность", body = textofbody, encoding = "utf-8", smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "your_email@gmail.com", passwd = "здесь пароль", ssl = T), authenticate = TRUE, send = TRUE, attach.files = filename, file.names = filename, debug = TRUE)
* Если R-Studio ругается на xlsx, то идем по ссылке и скачиваем соответствующую версию java www.java.com/en/download/manual.jsp
** доступные метрики и группировки — можно посмотреть здесь
3.2. Идем в свой аккаунт Gmail и даем разрешение на взаимодействие с «ненадежными приложениями» (иначе письмо не отправится)
myaccount.google.com/u/4/security?hl=ru&pageId=none#connectedapps

3.3. Настраиваем расписание отправки:


3.4 Проверяем планировщик заданий (Панель управления ->Расписание выполнения задач)
Если задание есть, но письмо не отправляется — открываем свойства задания, вкладку «Действия» -> Изменить -> ставим 1 в конце строки

