Продвижение в соцсетях / Яндекс директ api python

Выгрузка данных из 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_ > Мы с вами построим обычный отчет, аналогичный "Мастеру отчетов" в интерфейсе Яндекс Директ, но с помощью кода и сторонней программы. Нужно определиться с полями и показателями, которые будем выгружать. Важно знать, что некоторые из полей несовместимы между собой, то есть в одном отчете их не выгрузить. Подробное описание всех полей и их совместимости находится в справке Яндекс. Там же находится информация о типах отчетов, которые можно выгрузить, рекомендуем ознакомиться.

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

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

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

Замените авторизационный токен и логин для входа в Директ на ваши: Яндекс директ api python два

Укажите начальную дату выгрузки:
Яндекс директ api python три

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

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

Параметр "Limit" задает максимальное количество строк на странице. По умолчанию это значение равно 1млн. строк. Мы увеличили это значение, чтобы ускорить выгрузку. Объяснять как это работает тут не будем, чтобы не усложнять.
Яндекс директ api python шесть

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

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

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

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

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

Открываем за самый ранний период и удаляем первую строку с его названием: Яндекс директ api python десять

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

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

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

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

Подпишитесь на Facebook или Телеграмм, чтобы не пропустить новые статьи

Разделяешь наш подход? Вступай в команду!