ryandexdirect и выгрузка данных из Яндекс.Директ в RStudio
В этой статье познакомимся с пакетом ryandexdirect Алексея Селезнева (Netpeak) и выгрузим первые данные из Яндекс.Директ в RStudio.
Пакет ryandexdirect предназначен для работы с API Яндекс.Директ версии 4, Live 4 и 5 на языке R. С помощью функций данного пакета вы можете работать с перечисленными ниже сервисами и службами API Яндекса с помощью готовых функций, не углубляясь при этом в документацию по работе с этими API сервисами.
Документация по работе с пакетом ryandexdirect от Алексея Селезнева
Сразу начнем. Заходим в RStudio и устанавливаем пакет ryandexdirect с помощью команды:
1 |
install.packages("ryandexdirect") |
Пакет устанавливается один раз, а вот подключать его нужно в каждой сессии, используя команду:
1 |
library(ryandexdirect) |
Или же в правой панели на вкладке Packages напротив нужного пакета поставить галочку:
Проходим авторизацию и получаем токен. Сделать это можно с помощью двух функций:
- yadirAuth - двухэтапная авторизация;
- yadirGetToken - одноэтапная авторизация.
Подробнее о различиях, плюсах и минусах читайте в документации Алексея Селезнева (ссылка выше). Я буду использовать yadirAuth.
Добавляем в RStudio следующий код:
1 2 |
yadirAuth (Login = "my_yandex_login", TokenPath = "C:/direct/tokens") |
, где:
- Login = "my_yandex_login" - логин пользователя в Яндекс.Директ;
- TokenPath = "C:/direct/tokens" - путь к папке, в которой будет храниться файл с учетными данными.
Сами токены хранятся на стороне сервера oauth.yandex.ru, и они не доступны человеку, который зарегистрировал приложение. Но если полученные с помощью пакета ryandexdirect авторизационные токены вы передадите третьему лицу, то ему будет предоставлен доступ к управлению вашими рекламными кампаниями. Доступ к аккаунту вы не потеряете, но ваши рекламные объявления сможет редактировать человек, который получил токен. Поэтому никому не передавайте их.
В результате выполнения команды нас должно перебросить на сайт Яндекса, где мы разрешаем приложению ryandexdirect доступ к нашим данным (к AppMetrica, Яндекс.Маркету, Яндекс.Директу и Яндекс.Метрике).
Далее нас перенаправит на сайт https://selesnow.github.io/ryandexdirect/getToken/get_code.html, . На нем мы копируем код для получения токена:
Вставляем его в RStudio сразу же после Enter authorize code: . Жмем Enter.
После этого вас спросят: «Хотите ли вы сохранить учетные данные API в локальном файле, чтобы использовать их в разных сеансах R?» Выбираем рекомендованный вариант y и жмем Enter. После этого токен будет сохранен по тому пути, что вы указали на предыдущем шаге.
Примечание: перед выполнением команды путь к файлу должен быть создан. В данном примере, это C:/direct/tokens. Если его не будет, выдаст ошибку.
Теперь мы можем выгрузить данные по рекламному аккаунту и построить какой-нибудь отчет. В качестве примера выгрузим статистику за предыдущий месяц с кликами, показами, расходом, конверсиями и стоимостью конверсий. Для построения отчетности воспользуемся функцией yadirGetReport. Команда выглядит следующим образом (1):
1 2 3 4 |
report1 ‹- yadirGetReport(DateRangeType = "LAST_MONTH", FieldNames = c("Date", "Clicks", "Impressions", "Cost", "Conversions", "CostPerConversion"), Login = "my_yandex_login", TokenPath = "C:/direct/tokens") |
, где:
- report1 – название переменной (может быть любым), которая содержит все извлекаемые данные из Яндекс.Директа (клики, показы, стоимость и т.д.);
- <- - знак присвоения в R;
- yadirGetReport – функция, в которой передаются различные аргументы;
- DateRangeType - LAST_MONTH (период выгрузки данных, за последний месяц);
- FieldNames — поля, которые выводятся в отчете (столбцы);
Вектор представляет собой поименованный одномерный объект, содержащий набор однотипных элементов (числовые, логические, либо текстовые значения). Для создания векторов небольшой длины в R используется функция c(). В качестве аргументов этой функции через запятую перечисляют объединяемые в вектор значения. В нашем случае, это Date (дата), Clicks (клики), Impressions (показы), Cost (стоимость), Conversions (конверсии) и CostPerConversion (стоимость конверсии).
Дополнительную информацию по различным функциям (как они строятся, какие аргументы используются и т.д.) можно получать с помощью команды ?+ название функции. Доступна на вкладке Help:
1 |
?yadirGetReport |
Возвращаемся к нашему коду. Нажимаем Enter и ждем некоторое время. Если все сделали правильно, то получите такое уведомление (2):
Proccesing|===|
Report successfully generated and transmitted in response body.
В правом верхнем углу во вкладке Environment (3) будет содержаться информация о наших объектах: переменных, данных, значениях, функциях и т.д. Мы получили 30 объектов (столько записей и столько дней в мае крутилась реклама) и 6 переменных (столбцов - дата, клики, показы, стоимость, конверсии, стоимость конверсии).
Кликнув один раз по объекту, откроется новая вкладка в виде обычной таблицы с нашими данными. Каждый столбец можно отсортировать по возрастанию и по убыванию:
Убедимся, что данные в R такие же, как и в аккаунте Яндекс.Директ. Для этого воспользуемся простой функцией sum (), которая считает сумму элементов объекта. Посчитаем суммарный расход, количество кликов и показов:
1 2 3 4 5 6 |
›sum(report1$Cost) [1] 306435.7 › sum(report1$Clicks) [1] 3778 › sum(report1$Impressions) [1] 4181933 |
С помощью $ (знак доллара) можно обратиться к определенному столбцу по его имени. В нашем примере, это:
- сумма по объекту report1 и столбцу Cost (стоимость) - 306435.7 (руб., с НДС);
- сумма по объекту report1 и столбцу Clicks (клики) – 3078;
- сумма по объекту report1 и столбцу Impressions (показы) – 4181933.
Заходим в Яндекс.Директ и строим отчет за этот же период:
Как видим, данные совпадают. Если вы завершили сеанс, то в новом нет необходимости заново устанавливать пакет ryandexdirect, а также авторизовываться с помощью функции yadirAuth. Достаточно просто подключить библиотеку и начать работу.
На этом пока все. Продолжение по R следует… Если вы так же, как и я, только начинаете осваивать R, рекомендую к прочтению книгу «Using Google Analytics with R» (Michal Brys).