Павел Корякин , 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


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

После окончания загрузки данных в левой панели навигации вы увидите несколько 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 и визуализировать данные. Как это сделать расскажем в следующей статье.

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

Разделяешь наш подход? Вступай в команду!
Другие материалы по теме
Визуализация данных Яндекс Директ в PBI HOWTO
Визуализация данных Яндекс Директ в PBI
В предыдущей статье мы рассказали как выгрузить данные из Яндекс Директ с помощью Python в CSV таблицу. Теперь построим на этих данных красивый и полезный отчет.
Интеграция клиента и агентства HOWTO
Интеграция клиента и агентства
В статье расскажем, как происходит интеграция клиента и агентства, и как выстраиваются коммуникации.
Выгрузка данных из API Яндекс Директ через Python HOWTO
Выгрузка данных из API Яндекс Директ через Python
Рассказываем как выгрузили 30 млн. строк данных для последующего анализа в Power BI.
Прогноз стоимости и количества лидов HOWTO
Прогноз стоимости и количества лидов
Рассказываем об одном из способов медиапланирования - получения прогнозной стоимости и количества лидов.
Модели атрибуции на примере интернет-магазина HOWTO
Модели атрибуции на примере интернет-магазина
В этой статье продолжим рассматривать атрибуции на примере реального интернет-магазина. и расскажем какие выводы можно сделать, сравнивая модели.
Модели атрибуции в Google Analytics HOWTO
Модели атрибуции в Google Analytics
Что такое модель атрибуции? Какими они бывают? Как правильно выбрать модель атрибуции?
читать наш блог

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

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

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

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



Пишите на — info@1jam.ru , звоните в скайпе — jam.agency , или по телефону — 8 (800) 551-85-03