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

22 июня 2021, 14:37
0

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

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

Мастер отчетов в Яндекс.Директ – замечательная штука! Если вы им уже пользовались, то наверняка добрым словом вспоминали отчеты 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. Нажмите «Пустой запрос».

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

Отчет готов

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Узнайте текущее число.
  2. Сместитесь на нужное количество дней в прошлое.
  3. Создайте новый пустой запрос.

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

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

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

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

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

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

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

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



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

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

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

Существуют и функции смещения на начало или конец недели, месяца, квартала и года. Ищите их и примеры их использования в официальной документации.

Переименуйте запрос, чтобы понимать, какие данные в нем находятся:


Переименуйте запрос, чтобы понимать, какие данные в нем находятся:

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


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

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

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

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

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

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


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

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

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

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

Заключение

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

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





Ответить?
Введите капчу