Автоматизация Яндекс.Директ. Язык R для программирования
Совместно с коллегами из ADF Media — Артемом Дурневым и Султаном Назаралиевым, мы решили выпустить цикл из 6 статей, посвященных автоматизации процессов в Яндекс.Директе. Мы уже ознакомились с теорией автоматизации процессов в первой статье. Во второй обсудили, как отправлять запросы без знаний программирования. Сегодня же мы поговорим про то, как использовать язык R для автоматизации, даже если вы совсем его не знаете.
Язык R
R — язык программирования изначально “заточенный” для работы со статистикой и таблицами. Для PPC специалистов R привлекателен своей философией работы со статистикой и таблицами, в нём даже есть отдельный тип данных — таблица, который понятен всем, кто работает с массивами данных в Excel или Google Таблицах.
Языком R пользуются и интернет-маркетологи, потому что под этот язык создано много дополнений для работы с рекламными системами и системами веб аналитики.
Установка R и среды RStudio
Чтобы извлечь данные из Директа, нам нужно нужно установить R и RStudio и создать скрипт. Шаги установки различны для операционных систем. Оставим инструкции для Windows , MacOS и Linux.
Так как у нас MacOS, разберем установку на его примере:
Как собрать данные из Директа в R
После установки, открываем RStudio и обучаем R тому, что мы от него хотим. Как обучают детей? Им читают и объясняют, как поступать правильно. В этом случае все то же самое. Мы должны установить библиотеки. Нам нужно, чтобы R умел следующее:
- Отправлять GET/POST запросы,
- Работать с JSON форматом,
- Создавать Excel файлы.
Чтобы установить библиотеки, необходимо, в первую очередь, проверить, подключены ли они по умолчанию или нет. Этот код проверит есть ли библиотека в системе: если есть — подключит библиотеку, если нет — установит и подключит.
Примечание: Для работы library(xlsx) библиотеки на компьютере должна стоять Java. Её очень легко и просто установить с официального сайта. У многих она может быть уже установлена т.к. Java требуется для многих приложений.
Наш код написан таким образом, что если Java стоит на ноутбуке, то данные из Директа выгрузятся в Excel. Если не установлена, то в .csv
Нажимаем enter.
После этого, RStudio начинает скачивать библиотеки, добавляются новые функции в те, которые идут по умолчанию. После этого приступаем к работе с Яндекс.Директом.
1. Запишем данные авторизации: логин и токенy
Про то, как получать токены, мы рассказывали в первой статье.
2. Сформируем заголовки запроса
Эта функция создает заголовки запроса, она является служебной и используется внутри другой функции.
3. Сформировать тело запроса, сделать запрос, проверить готовность отчета и перевести в табличный формат
Это код функций, которые выполняют запрос к Яндексу. Теперь необходимо вызвать функцию YDGetReport и записать полученный результат в файл.
Пример выполнения функции:
Как выглядит получение отчёта из Яндекс Директа по API:
Мы отправляем запрос к Яндексу. В этом запросе мы “говорим”, что мы хотим от Яндекса.
На этот запрос Яндекс отвечает как настоящий бюрократ — “ок, я понял что вам нужно. Я принял ваш запрос и начал его обрабатывать. Спросите у меня через N секунд готов ли ваш отчёт”.
В нашей функции мы опрашиваем Яндекс каждую секунду — готов ли наш отчёт или нет. Когда Яндекс нам отвечает, что отчет готов, мы получаем отчёт и прекращаем его спрашивать.
Более подробно об этом режиме написанно в блоге Яндекса.
Описание аргументов функции YDGetReport, которые можно менять:
ClientLogin — логин клиента в Яндекс.Директ. Если используется для агентского аккаунта, укажите логин клиента. Если ваш аккаунт представительский, логин представительского аккаунта.
Fields — поля отчета. Формат данных — массив.
StartDate — дата начала отчёта в формате ГГГГ-ММ-ДД.
EndDate — дата окончания отчёта в формате ГГГГ-ММ-ДД.
Token — токен Яндекса.
Goals — id целей Яндекс Метрики, по которым требуется получить статистику. Необязательное поле. Формат данных — массив.
4. Выгружаем данные
Если Java установлена, то данные выгрузятся в Excel. Если нет — то в csv.
А вот этот же скрипт, который можно целиком вставить и получить данные. Для удобства указали его целиком. Главное не забудьте указать аргументы функции YDGetReport, чтобы данные выгрузились корректно.
Вот так легко и просто можно выгрузить данные из Я.Директа, если знать токен. В следующей статье поговорим про то, как массово выгружать данные из множества аккаунтов Я.Директа. Например, если вы работаете маркетологом и ведете несколько десятков проектов.
Благодарим за прочтение!
Наши контакты:
такой хорошей статьи я не ожидал, конечно)
Полезная статья! Но для тех, кому сложно или лень разбираться, рекомендуем попробовать готовый биддер. Можно наш. ☺