Найти тему
Digital Lab

Получение статистики Яндекс.Директ в Excel и Power BI: инструкция для непрограммистов

Оглавление

Как получить статистику из Яндекс.Директ и сэкономить время, обновляя данные сразу в Excel и Power BI? Узнайте из новой статьи Ильи Назарова – менеджера отдела рекламы Digital Lab.

Мастер отчетов в Яндекс.Директ – замечательная штука! Если вы им уже пользовались, то наверняка добрым словом вспоминали отчеты Google, которые запоминают комбинации нужных параметров. В Яндексе же приходится тратить время и каждый раз с нуля выбирать срезы, столбцы, группировки…

Конечно, это не такая большая проблема, если потом вы изучаете данные вручную. Но, если отчеты Яндекса далее попадают в какую-то «продвинутую» аналитику, то изменение состава колонок в них может доставить массу неприятностей.

Предлагаю способ из советского мультфильма: как можно день потерять, а потом за пять минут долететь. Что вы получите:

  • запоминание нужных параметров отчета: срезов, группировок, детализаций;
  • обновление данных прямо в книге Excel (или проекте Power BI) без необходимости каждый раз заходить в Яндекс.Директ;
  • экономию времени и бесценный опыт.

Некогда точить топор, надо рубить

Швейцарский нож любого специалиста по контекстной рекламе – Microsoft Excel, поэтому буду показывать на его примере. Скриншоты из версии 2019, а функционал, который предстоит использовать, есть в версиях начиная с 2016-й. Для версий 2010–2013 скачайте и установите надстройку Power Query с официального сайта Microsoft.

В Power BI функционал доступен во всех версиях, а делается все аналогично.

ВАЖНОЕ замечание! Яндекс пока не предлагает решений, позволяющих получать данные в Excel и Power BI по API, поэтому в статье используется разработанный нами скрипт. Техподдержка Яндекса не будет консультировать вас по его работе! Скрипт полностью функционален и соответствует нашим требованиям. Мы готовы рассказать, как им пользоваться. В дальнейшем вы сможете самостоятельно изменять его функционал так, как посчитаете нужным.

  1. Запустите Excel.
  2. Переключитесь на вкладку «Данные».
  3. Нажмите «Получить данные».
  4. В контекстном меню выберите пункт «Из других источников».
  5. Нажмите «Пустой запрос».
-2

Запустится редактор Power Query:

-3
  1. Нажмите кнопку «Расширенный редактор»
  2. Удалите весь код из окна «Расширенный редактор». Целиком скопируйте весь код по ссылке на GitHub и вставьте его вместо удаленного кода.
  3. Нажмите «Готово».

После этого вы увидите интерфейс функции. Если не увидели – значит где-то ошиблись. Внимательно повторите предыдущий шаг!

Инструкция по использованию

Интерфейс функции, получающей статистику Яндекс.Директ, выглядит так:

-4

Описание параметров:

-5

Токен доступа к данным

Для функции заданы параметры по умолчанию, поэтому для запуска достаточно указать авторизационный токен (поле 6). Я подробно рассказывал про него в статье о работе с Яндекс.Аудиториями. Можно использовать тот же токен. Если у вас его нет, получите новый на сервере авторизации Яндекса по этой ссылке. Убедитесь, что вы авторизованы в нужном аккаунте Яндекса, у которого есть доступ к Яндекс.Директ.

-6

Скопируйте токен целиком, вставьте в поле 6 и заполните остальные поля подходящими значениями (или оставьте их пустыми). Нажмите «Вызвать».

Укажите способ подключения

Если вы еще не работали с API Яндекс.Директ, то увидите вот такое предупреждение о необходимости указать учетные данные:

-7

Нажмите «Изменить учетные данные», откроется окно «Доступ к веб-содержимому».

-8

Просто нажмите кнопку «Подключение». Excel или Power BI запомнит ссылку и больше не будет об этом спрашивать.

Промежуточные статусы

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

Сначала вы, скорее всего, увидите сообщение:

-9

Подождите какое-то время (несколько секунд или минут, если запросили много данных) и еще раз обновите отчет нажатием кнопки «Обновить предварительный просмотр».

-10

Статус 201 «Отчет успешно поставлен в очередь на формирование в режиме офлайн. Обновите данные через некоторое время» сменится на 202 «Отчет формируется в режиме офлайн. Обновите данные через некоторое время».

После этого статуса отчет будет готов. Подождите еще немного и снова обновите.

Отчет готов

Итак, отчет готов:

-11
  1. Убедитесь, что получили именно отчет, а не информацию о статусах подготовки.
  2. Чтобы вернуться в Excel, нажмите «Закрыть и загрузить».

В книге Excel появится новый лист, куда автоматически загрузятся данные.

-12

Теперь книгу можно сохранить.

Обновление отчета

Если вы откроете книгу на следующий день, то для получения актуального отчета, включающего этот день, достаточно будет нажать «Обновить».

-13

You’re all set! Части читателей этой информации будет достаточно. А дальнейшее чтение предлагаю тем, кому пока не хватает навыков работы в Power Query.

Кастомизация отчета

Допустим, вы хотите получить отчет не за последние 30 дней по умолчанию, а за другой период.

Фиксированные даты начала и окончания

При вызове функции вы можете указать точную дату начала периода отчета и точную дату его окончания. Строка вызова функции будет выглядеть так (можно редактировать как формулу Excel):

-14

Первый параметр в строке вызова функции – дата начала периода, второй – дата окончания. Между собой они отделяются запятой и записываются в специальном формате: #date ([Год],[Месяц],[День]). Например, #date(1980,3,6) означает 6-е марта 1980 года.

Частичная автоматизация периода

Если вы хотите получить данные, например, с 3 апреля 2021-го по сегодняшнее число, то строка вызова функции будет выглядеть так:

-15

Значение первого параметра – #date(2021,4,3), а второго – null. Значение null соответствует значению по умолчанию (сегодняшнее число) или отсутствующему значению.

Полная автоматизация периода

Если у даты начала вы укажете значение null, то туда автоматически подставится число, которое было 30 дней назад. Что делать, если эта дата должна меняться динамически, но нужен, к примеру, 15-дневный период?

  1. Узнайте текущее число.
  2. Сместитесь на нужное количество дней в прошлое.
  3. Создайте новый пустой запрос.
-16
  1. Кликните правой кнопкой мыши в любом пустом месте на панели «Запросы».
  2. В появившемся меню пройдите по пунктам: «Новый запрос» –> «Другие источники» –> «Пустой запрос».

В название каждой функции ниже я вставил ссылку на официальную документацию на сайте Microsoft – переходите и получайте дополнительную информацию.

Введите формулу DateTime.LocalNow() в поле формул и нажмите Enter на клавиатуре.
Введите формулу DateTime.LocalNow() в поле формул и нажмите Enter на клавиатуре.

Формула покажет текущие дату и время. Для вызова функции нам нужна только дата. Извлечь дату из даты и времени можно так:

  1. На вкладке «Преобразование» нажмите кнопку «Дата».
  2. Выберите пункт «Только дата».
-18

Power Query запустит функцию Date.From, которая принимает только один параметр – значение даты или даты и времени.

Чтобы узнать дату, отличающуюся от другой даты на нужное количество дней, можно воспользоваться функцией Date.AddDays. Первым ее параметром нужно указать дату, а вторым – количество дней, на которые нужно сместиться относительно нее. Если смещение меньше нуля, результат окажется в прошлом, больше нуля – в будущем.

Модифицируйте формулу следующим образом:

-19

Укажите название функции Date.AddDays, в круглых скобках перечислите параметры ее вызова:

  • Date.From(Источник) – функция, полученная на предыдущем шаге (извлекает дату из значения даты и времени);
  • -15 – количество дней, на которое нужно сместиться относительно указанной даты.

Если сместиться нужно не на дни, используйте аналогичные функции Date.AddWeeks (смещение на целое число недель), Date.AddMonths (месяцев), Date.AddQuarters (кварталов) и Date.AddYears (лет)уществуют и функции смещения на начало или конец недели, месяца, квартала и года. Ищите их и примеры их использования в официальной документацииереименуйте запрос, чтобы понимать, какие данные в нем находятся:

-20

Вернитесь к предыдущему запросу, который на скриншоте называется «Вызванная функция». Вторым параметром в вызове функции укажите ссылку на запрос «15 дней назад»: заключите название запроса в двойные кавычки и поставьте в начале #.

Должно получиться так:

-21

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

Теперь нажмите «Закрыть и загрузить», чтобы вернуться в Excel и обновлять отчет нажатием одной кнопки.

Возможные проблемы и их решения

Отчет с таким названием уже сформирован

-22

Яндекс просит задавать имя для каждого отчета. Автоматически в название добавляются даты начала и окончания отчета. Если вы решите поменять поля, но оставите тот же период, появится сообщение об ошибке (см. скриншот).

Вручную укажите произвольное название отчета и повторите попытку:

-23

Забыли указать логин рекламодателя

-24

Если вы получили токен для аккаунта агентства, внутри которого существуют рекламодатели, то при вызове функции нужно указать название аккаунта рекламодателя (не агентства), который совпадает с адресом электронной почты на Яндексе.

Название логина нужно заключить в кавычки. Целиком указывать его не нужно, достаточно взять часть до @. Например, если логин рекламодателя vasilisa-context@yandex.ru, то достаточно указать vasilisa-context.

-25

Если вы не агентство (или агентство, но получили токен непосредственно для аккаунта рекламодателя), то логин указывать не нужно.

Заключение

Хорошие новости: мастер отчетов Яндекс.Директ больше не нужен, а статистика обновляется нажатием единственной кнопки! Чего еще желать?

Если у вас есть вопросы, замечания и предложения по работе скрипта, – пишите в комментарии: выслушаем, ответим, посоветуем, доработаем!