Как настроить рассылку отчетов из Яндекс.Метрики с помощью R (с нуля)

в 16:37, , рубрики: api яндекс, R, веб-аналитика, Яндекс API, яндекс.метрика

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

Преимущества автоматической отправки отчетов:

  • Можно заранее настроить необходимый формат отчетов и не тратить время на выгрузки при приближении дедлайнов;
  • Нет ограничений по формату и периодичности выгрузки

1. Установите язык R и необходимые библиотеки

1.1. Скачайте и установите актуальную версию R, а также интегрированную среду разработки R Studio, в которой вам будет удобнее работать.

1.2. В R-Studio создаем новый файл и вставляем код:

install.packages("xlsx")
install.packages("mailR")
install.packages("taskscheduleR")

1.3. Чтобы запустить процесс установки пакетов, выделите весь текст и нажмите «Run»

image

2. Получите токен доступа к API Яндекс.Метрики

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

  • Права -> Яндекс.Метрика, выше выбираем «Получение статистики» и «создание счетчиков»;
  • Callback URL -> выбираем “подставить URL для разработки»;
  • Сохраняем

image

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

image

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

2.3. Даем разрешение:

image

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

image

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 = "example@gmail.com",
          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

image

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

image

image

3.4 Проверяем планировщик заданий (Панель управления ->Расписание выполнения задач)

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

image

Автор: OMD_Annalect

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js