Павел Корякин , 7 сентября 2019

Выгрузка данных из API Яндекс Директ через Python

В статье расскажем как выгрузить данные из API Яндекс Директ в CSV-таблицу с помощью Python.




Материал довольно сложный, очень рекомендуем просмотреть видео, чтобы допустить меньше ошибок.

Готовый код можно скачать тут. Вам останется только указать свои учетные данные.

Зачем?


Была необходимость проанализировать большой объем данных. Столкнулись со следующими проблемами:

  • 30 млн. строк за год
  • Веб-интерфейс показывает только 100 тыс. строк
  • Не нашли подходящего коннектора для Power BI
  • Подключение Power BI к Big Query занимает больше времени

Предложенное решение не является единственным или оптимальным. Мы не разработчики, нам просто нужно было решить задачу быстро. Делимся способом с вами.

Подготовка

В данной статье мы не будем знакомить вас с синтаксисом и возможностями Python – это полноценный язык программирования, изучить основы которого можно по видеоурокам или на ресурсах типа CodeAcedemy.

Яндекс сам дает готовый пример кода, которым можно выгрузить отчет, остается указать некоторые параметры. Мы доработали скрипт таким образом, чтобы большой объем данных можно было выгрузить помесячно и склеить в один файл для дальнейшего анализа.

Вам потребуется:

  • скачать PyCharm – среда разработки Python
  • зарегистрировать приложение для доступа к API (инструкция) – необязательный шаг
  • получить токен для доступа к API – выводится в браузере, после разрешения доступа к Директу по ссылке вида: "oauth.yandex.ru/authorize?response_type=code&client_id=ИДЕНТИФИКАТОР_ПРИЛОЖЕНИЯ"

Мы с вами построим обычный отчет, аналогичный «Мастеру отчетов» в интерфейсе Яндекс Директ, но с помощью кода и сторонней программы. Нужно определиться с полями и показателями, которые будем выгружать. Важно знать, что некоторые из полей несовместимы между собой, то есть в одном отчете их не выгрузить. Подробное описание всех полей и их совместимости находится в справке Яндекс. Там же находится информация о типах отчетов, которые можно выгрузить, рекомендуем ознакомиться.

В приложенном коде мы постарались сделать максимально широкий набор полей, подходящий для анализа почти любых срезов. Подробно описали поля в видео, тут затронем только самые важные. Открываем файл «loader.py» и приступаем к его настройке.

Выгрузка данных пошагово

Укажите путь к папке, в которой находится скачанный код, туда же загрузятся данные из API.1.png

Замените авторизационный токен и логин для входа в Директ на ваши:2.png

Укажите начальную дату выгрузки:
3.png

Далее вы увидите список полей отчета. В первой строке указан период, для которого данные будут суммироваться, в рамках данной задачи – это месяц. Большинство остальных полей понятны по названию, более подробно затрагиваем их в видео.4.png

Пропишите идентификатор цели, без него данные могут не выгрузиться. Найти его можно в Яндекс Метрике:
5.png

Параметр «Limit» задает максимальное количество строк на странице. По умолчанию это значение равно 1млн. строк. Мы увеличили это значение, чтобы ускорить выгрузку. Объяснять как это работает тут не будем, чтобы не усложнять.
6.png

Тип отчета, в нашем случае CUSTOM_REPORT=Пользовательский отчет. Если вы меняли поля, возможно, вам нужен другой тип, подробнее смотрите в справке.7.png

На этом настройка завершена, можно переходить к выгрузке. Для этого щелкните правой кнопкой мыши на файл «loader.py» и выберите команду «Run».8.png


Вебинар: как выжать максимум из контекстной рекламы
30-минутная выжимка нашего опыта на основе 100+ аудитов. Рассказываем, какие 12 ошибок чаще всего допускают предприниматели, когда начинают работать с контекстной рекламой.

Получить вебинар
Скриншот вебинара про 12 ошибок со слайдом про переинвестирование рекламных кампаний

Обработка полученных данных

После окончания загрузки данных в левой панели навигации вы увидите несколько csv-таблиц, с датами в названии. Каждый файл содержит данные за месяц. Если есть файлы с выгрузкой за неполный месяц, удаляем их. В нашем примере останутся 2 файла:9.png

Все таблицы мы будем «склеивать» в один документ, поэтому нужно их подготовить. Каждая из таблиц содержит названия отчета и заголовки столбцов вверху и итоговые значения внизу, это вызовет ошибку. Нужно оставить заголовки столбцов только в самой ранней таблице, а в остальных удалить. Итоговые значения и нужно удалить из всех таблиц. Скорее всего, Excel не потянет такой объем, поэтому быстрее будет открыть в текстовом редакторе, в нашем примере «Sublime Text».

Открываем за самый ранний период и удаляем первую строку с его названием:10.png

Аналогично удаляем и последнюю строку документа с итоговым количеством строк:11.png

В остальных файлах удаляем название отчета, заголовки столбцов и итоговую строку в конце:12.png13.png

Теперь осталось склеить файлы в один. Это делается через терминал. Команда для Windows и macOS будет отличаться. На Windows для каждого из файлов нужно выполнить команду: 

type 20190701-20190731.tsv >> outputfile.csv
type 20190701-20190731.tsv >> outputfile.csv

На этом все, мы получили файл, который можно подключить к Power BI и визуализировать данные. Как это сделать расскажем в следующей статье.

Хотите дальше узнавать новое про контекстную рекламу для интернет-магазинов?
Подписывайтесь на наш канал в телеграме.

Перейти на канал
Другие материалы по теме
Основные стратегии Яндекс.Директа 2023 для управления рекламными кампаниями
Основные стратегии Яндекс.Директа 2023 для управления рекламными кампаниями
Лучшая стратегия — та, которая решает задачи бизнеса. Если верно поставить цели и определиться с KPI, настроить рекламу будет проще.
5 типичных проблем в контексте, которые мы видим у 90% клиентов
5 типичных проблем в контексте, которые мы видим у 90% клиентов
Мы провели аудит более чем для 100 интернет-магазинов и постоянно видим одни и те же ошибки. Например, клиент хочет масштабироваться, поднимает бюджет — и реклама начинает работать в минус.
За 2 года подняли контекст с минусов до 330 тысяч ₽/месяц магазину тканей, хотя Google ушел и автостратегии не работали
За 2 года подняли контекст с минусов до 330 тысяч ₽/месяц магазину тканей, хотя Google ушел и автостратегии не работали
Какие инструменты использовали, какие гипотезы тестировали, чем компенсировали уход Google из России и почему не для всех подходят автостратегии и товарные площадки.
Пакетные стратегии в Яндекс Директ: для чего нужны и как настроить
Пакетные стратегии в Яндекс Директ: для чего нужны и как настроить
Как работают пакетные стратегии и как их настраивать — с примерами из практики
Модели атрибуции в Яндекс Директе: как использовать в аналитике и какую выбрать при настройке рекламы
Модели атрибуции в Яндекс Директе: как использовать в аналитике и какую выбрать при настройке рекламы
Объясняем на картинках, что такое модели атрибуции в Директе и как они помогают анализировать рекламу и обучать автостратегии.
Ретаргетинг в Яндекс Директ: что это такое, какой бывает и как настроить
Ретаргетинг в Яндекс Директ: что это такое, какой бывает и как настроить
Пошаговая инструкция, как собрать аудиторию и настроить ретаркетинг на поиске и в РСЯ.
читать наш блог

Оставьте заявку

После того, как вы оставите заявку: интервью ~15 минут → гостевые доступы для аудита ~15 минут → аудит в течение недели → согласование предложения → начало первой итерации. По нашему опыту реально начать что-то делать уже через неделю.

Менеджер проектов Александр
Александр

Менеджер проектов



Пишите на — или в Телеграмм