Яндекс.Директ собирает много данных, но, к сожалению, в веб-интерфейсе доступно очень мало информации для анализа. В этой статье я кратко опишу, как получить статистику о рекламных кампаниях, группах объявлений и ключевых словах с помощью языка R для визуализации в Power BI, и к каждому пункту дам ссылки на более подробную информацию.
1. Установите язык R и необходимые пакеты функций
1.1. Скачайте и установите актуальную версию R, а также интегрированную среду разработки R Studio, в которой вам будет удобнее работать. Процесс установки не должен вызвать у вас никаких трудностей, но при необходимости вы можете посмотреть это видео:
1.2. В R Studio откройте все доступные панели с помощью сочетания клавиш Ctrl+Alt+Shift+0. В область Source вставьте код.
install.packages('ryandexdirect')
Чтобы запустить процесс установки пакета, выделите код с помощью мыши и запустите его нажатием Ctrl+Enter.

2. Получите токен доступа к API Яндекс.Директ
2.1. Для получения токена доступа к API Директа воспользуйтесь кодом:
library(ryandexdirect)
yadirAuth(Login = 'ваш_логин',
TokenPath = 'путь/к/папке/для/учётных/данных')
Функция yadirAuth() позволяет пройти авторизацию и получить учётные данные для работы с API.
В аргумент Login передайте свой логин в Яндекс.Директ (в кавычках).
В TokenPath — указать путь к папке, в которую после авторизации будет сохранён файл с вашими учётными данными для дальнейшей работы с API.
Важно: путь прописывайте так же, как в примере, именно через прямой ( / ), а не обратный слеш ( \ ).
Для запуска вставьте код в область Source в RStudio, выделите его курсором мыши и запустите сочетанием клавиш Ctrl+Enter.
При первой авторизации вы будете перенаправлены в браузер, где вам понадобится предоставить пакету ryandexdirect разрешение на доступ к данным вашего аккаунта.
Далее вы попадете на страницу с кодом подтверждения авторизации. Скопируйте его в консоль RStudio в качестве ответа на запрос: “Enter authorize code:”.
Нажмите Enter. Появится следующее сообщение: “Do you want save API credential in local file (путь/к/папке/для/учётных/данных/ваш_логин.yadirAuth.RData), for use it between R sessions?”. На этот вопрос надо ответить yes, чтобы полученные вами учётные данные сохранились и вы могли их использовать в дальнейшем, не проходя процедуру авторизации через браузер повторно.
Чтобы детально разобраться с процессом авторизации, посмотрите это видео:
3. Запрос статистики из Яндекс.Директ в R
После авторизации мы можем запрашивать данные из рекламного кабинета.
Пример кода для запроса статистики:
library(ryandexdirect)
data <- yadirGetReport(DateFrom = "2020-01-01",
DateTo = Sys.Date() - 1,
FieldNames = c("Date",
"CampaignName",
"CampaignId",
"AdGroupName",
"AdGroupId",
"Criteria",
"CriteriaId",
"Impressions",
"Clicks",
"Conversions",
"Cost"),
IncludeVAT = "YES",
IncludeDiscount = "NO",
Login = 'ваш логин',
TokenPath = 'путь/к/папке/для/учётных/данных')
Если вы всё сделали правильно, после завершения процесса загрузки данных в консоли вы получите следующее сообщение:
Load token from .yadirAuth.RData
-----------------------------------------------------------
Loading data by irina.netpeak
The report has been successfully queued for offline generation.
Proccesing|======|
Report successfully generated and transmitted in response body.
Server time: 36 sec.
Parsing time: 0 sec.
RequestID: 9051100197085591144
Total time: 36 sec.
100% server time rate.
0% parsing time rate.
Number of rows is 38828
RequestID: 9051100197085591144
В примере кода выше мы использовали не все аргументы функции yadirGetReport(), но их достаточно для большинства задач.
В аргументе FieldNames перечислите поля, которые вы планируете получить в таблице. Полный список доступных полей можно найти по ссылке. В моем примере я запрашиваю данные по показам, кликам, конверсиям и стоимости в разрезе кампаний, групп объявлений и ключевых слов.
Аргументы IncludeVAT и IncludeDiscount принимают значения YES или NO, и позволяют вам учитывать или не учитывать в расчёте потраченные средства НДС и скидку.
Кроме этих аргументов, вы можете применять различные атрибуции и выводить количество разных конверсий в отдельных столбцах. Более подробно об этом можно узнать в официальной справке пакета.
4. Переносим код в Microsoft Power BI
Если у вас успешно прошла загрузка данных в RStudio, можно переходить к загрузке в Power BI.
Откройте Power BI, нажмите «Получить данные» и выберите коннектор R-скрипт.

В диалоговое окно «Выполнить сценарий R» вставьте код, который вы на прошлом шаге написали в RStudio:

3.1.2. Нажмите «ОК», после этого начнется процесс загрузки данных.
В результате вы получите в Power BI таблицу data:

Далее проверьте тип данных полей в загруженной таблице, возможно, конверсии у вас будут загружены как текст, потому что API Директа отдаёт нулевые конверсии как символы «--».

В таком случае просто в Power Query замените «--» на 0 и преобразуйте тип данных в целое число.



Далее вы можете использовать всю мощь Power BI для визуализации полученных данных.
В облаке также не должно возникнуть проблем с обновлением, но для настройки обновления по расписанию вам понадобится использовать только персональный шлюз.
Полезные ссылки
Пакет ryandexdirect хорошо описан на русском языке:
Запомнить
На основе данных, импортированных из Яндекс.Директ в Microsoft Power BI, вы сможете создавать понятные отчеты и обновлять их в режиме реального времени.
Подытожим основные шаги:
- Установите актуальную версию языка R и R Studio. Инсталлируйте пакет «ryandexdirect».
- Пройдите авторизацию в API Яндекс.Директ.
- Загрузите данные в RStudio, чтобы убедиться, что ваш код корректно работает.
- Перенесите рабочий код из RStudio в Power BI.
При авторизации и загрузке данных обязательно используйте аргумент TokenPath: RStudio и Power BI запускают скрипты из разных папок и после переноса рабочего кода, так что Power BI просто не сможет найти сохранённые вами учётные данные.
На этом все. Если у вас что-либо не получится — пишите комментарии, постараюсь помочь.
Также узнайте,
На этом все. Если у вас что-либо не получится — пишите комментарии, постараюсь помочь.
Комментарии (41)
Последние комментарии
Чтобы оставить комментарий, нужно войти