ryandexdirect и выгрузка данных из Яндекс.Директ в RStudio

16 июня, 2019

В этой статье познакомимся с пакетом ryandexdirect Алексея Селезнева (Netpeak) и выгрузим первые данные из Яндекс.Директ в RStudio.

Пакет ryandexdirect предназначен для работы с API Яндекс.Директ версии 4, Live 4 и 5 на языке R. С помощью функций данного пакета вы можете работать с перечисленными ниже сервисами и службами API Яндекса с помощью готовых функций, не углубляясь при этом в документацию по работе с этими API сервисами.

Документация по работе с пакетом ryandexdirect от Алексея Селезнева

Сразу начнем. Заходим в RStudio и устанавливаем пакет ryandexdirect с помощью команды:

Пакет устанавливается один раз, а вот подключать его нужно в каждой сессии, используя команду:

Или же в правой панели на вкладке Packages напротив нужного пакета поставить галочку:

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Установка и подключение пакета ryandexdirect

Проходим авторизацию и получаем токен. Сделать это можно с помощью двух функций:

  • yadirAuth - двухэтапная авторизация;
  • yadirGetToken - одноэтапная авторизация.

Подробнее о различиях, плюсах и минусах читайте в документации Алексея Селезнева (ссылка выше). Я буду использовать yadirAuth.

Добавляем в RStudio следующий код:

, где:

  • Login = "my_yandex_login" - логин пользователя в Яндекс.Директ;
  • TokenPath = "C:/direct/tokens" - путь к папке, в которой будет храниться файл с учетными данными.

Сами токены хранятся на стороне сервера oauth.yandex.ru, и они не доступны человеку, который зарегистрировал приложение. Но если полученные с помощью пакета ryandexdirect авторизационные токены вы передадите третьему лицу, то ему будет предоставлен доступ к управлению вашими рекламными кампаниями. Доступ к аккаунту вы не потеряете, но ваши рекламные объявления сможет редактировать человек, который получил токен. Поэтому никому не передавайте их.

В результате выполнения команды нас должно перебросить на сайт Яндекса, где мы разрешаем приложению ryandexdirect доступ к нашим данным (к AppMetrica, Яндекс.Маркету, Яндекс.Директу и Яндекс.Метрике).

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Разрешаем приложению ryandexdirect доступ к данным Яндекса

Далее нас перенаправит на сайт https://selesnow.github.io/ryandexdirect/getToken/get_code.html, . На нем мы копируем код для получения токена:

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Копируем код для получения токена

Вставляем его в RStudio сразу же после Enter authorize code: . Жмем Enter.

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Вставляем наш код в соответствующую строку

После этого вас спросят: «Хотите ли вы сохранить учетные данные API в локальном файле, чтобы использовать их в разных сеансах R?» Выбираем рекомендованный вариант y и жмем Enter. После этого токен будет сохранен по тому пути, что вы указали на предыдущем шаге.

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Токен сохранен локально

Примечание: перед выполнением команды путь к файлу должен быть создан. В данном примере, это C:/direct/tokens. Если его не будет, выдаст ошибку.

Теперь мы можем выгрузить данные по рекламному аккаунту и построить какой-нибудь отчет. В качестве примера выгрузим статистику за предыдущий месяц с кликами, показами, расходом, конверсиями и стоимостью конверсий. Для построения отчетности воспользуемся функцией yadirGetReport. Команда выглядит следующим образом (1):

, где:

  • report1 – название переменной (может быть любым), которая содержит все извлекаемые данные из Яндекс.Директа (клики, показы, стоимость и т.д.);
  • <- - знак присвоения в R;
  • yadirGetReport – функция, в которой передаются различные аргументы;
  • DateRangeType - LAST_MONTH (период выгрузки данных, за последний месяц);
  • FieldNames — поля, которые выводятся в отчете (столбцы);

Вектор представляет собой поименованный одномерный объект, содержащий набор однотипных элементов (числовые, логические, либо текстовые значения). Для создания векторов небольшой длины в R используется функция c(). В качестве аргументов этой функции через запятую перечисляют объединяемые в вектор значения. В нашем случае, это Date (дата), Clicks (клики), Impressions (показы), Cost (стоимость), Conversions (конверсии) и CostPerConversion (стоимость конверсии).

Дополнительную информацию по различным функциям (как они строятся, какие аргументы используются и т.д.) можно получать с помощью команды ?+ название функции. Доступна на вкладке Help:

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Вызов справки ?yadirGetReport

Возвращаемся к нашему коду. Нажимаем Enter и ждем некоторое время. Если все сделали правильно, то получите такое уведомление (2):

Proccesing|===|

Report successfully generated and transmitted in response body.

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Результат запроса

В правом верхнем углу во вкладке Environment (3) будет содержаться информация о наших объектах: переменных, данных, значениях, функциях и т.д. Мы получили 30 объектов (столько записей и столько дней в мае крутилась реклама) и 6 переменных (столбцов - дата, клики, показы, стоимость, конверсии, стоимость конверсии).

Кликнув один раз по объекту, откроется новая вкладка в виде обычной таблицы с нашими данными. Каждый столбец можно отсортировать по возрастанию и по убыванию:

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Полученная таблица с сортировкой по конверсиям

Убедимся, что данные в R такие же, как и в аккаунте Яндекс.Директ. Для этого воспользуемся простой функцией sum (), которая считает сумму элементов объекта. Посчитаем суммарный расход, количество кликов и показов:

С помощью $ (знак доллара) можно обратиться к определенному столбцу по его имени. В нашем примере, это:

  • сумма по объекту report1 и столбцу Cost (стоимость) - 306435.7 (руб., с НДС);
  • сумма по объекту report1 и столбцу Clicks (клики) – 3078;
  • сумма по объекту report1 и столбцу Impressions (показы) – 4181933.

Заходим в Яндекс.Директ и строим отчет за этот же период:

ryandexdirect и выгрузка первых данных из Яндекс.Директ в RStudio

Данные в интерфейсе Яндекс.Директ и RStudio

Как видим, данные совпадают. Если вы завершили сеанс, то в новом нет необходимости заново устанавливать пакет ryandexdirect, а также авторизовываться с помощью функции yadirAuth. Достаточно просто подключить библиотеку и начать работу.

На этом пока все. Продолжение по R следует… Если вы так же, как и я, только начинаете осваивать R, рекомендую к прочтению книгу «Using Google Analytics with R» (Michal Brys).

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике