Как стать автором
Обновить

Визуализация статистики Яндекс Директ своими руками. От API до Data Studio

Время на прочтение3 мин
Количество просмотров5K
Мне, как специалисту по рекламе, требуется постоянно присматривать за клиентами. В этом мне помогает Data Studio.
Однако специалистам по рекламе редко выделяют бюджеты на аналитику, поэтому приходится делать все своими руками.

Что нужно сделать чтобы визуализировать Яндекс Директ в Data Studio:

  1. Получить токен от своего аккаунта (за этим в справку Директа)
  2. На Python Написать запрос к серверу Яндекс Директ
  3. Сложить статистику в Pandas Data Frame
  4. Отправить данные в Google Big Query
  5. Построить визуализацию в Data Studio на основе данных в Google Big Query



Написать запрос к серверу Яндекс Директ и сложить данные в Pandas Data Frame



Раньше я ковырялся с запросами и потом редактировал данные, чтобы их можно было отправить. Можете попробовать, если вам нужны тонкие настройки (Писал про это ранее тут habr.com/ru/post/445734)

Для остальных есть способ намного проще — мой python-пакет yadirstat. (обзор на него habr.com/ru/post/512902). При его использовании вы вводите, токен, логин, даты и получаете готовый Data Frame, в котором ничего не нужно менять.

Примерно так выглядит код:

from yadirstat import yadirstat
x=yadirstat.yadirstat.campaign('FFFFFfffffFFFFggggGGGgg', 'client123123','2020-05-10','2020-07-15')
print(x)


Отправить данные в Google Big Query


Это самый очевидный способ собирать данные для последующей визуализации в DataStudio, так как они прекрасно работают в паре

Для отправки я использую пакет “pandas_gbq”
Код выглядит примерно так:
import pandas_gbq
pandas_gbq.to_gbq(x, 'YD_Days.test', project_id='red-abstraction-99999999',if_exists='replace', progress_bar=None)


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

Теперь проверим отправилась ли информация в Big Query. Если все прошло успешно, будет такой набор полей их типов



Построить визуализацию в Data Studio на основе данных в Google Big Query



Для этого можно сразу в Big Query создать запрос на получение всех данных:
нажимаете “Отправить запрос к таблице”, добавляете после SELECT “*” и убираете лимит. Примерно так выглядит запрос: “SELECT * FROM `red-abstraction-239999.YD_Days.test`”

В Data Studio Подключаемся к Google Big Query





В изменении источника увидим следующие поля


Требуется изменить следующие поля для корректной агрегации:

  • AvgCpc
  • ConversionRate
  • CostPerConversion
  • Ctr


Зачем это делается? Рассмотрим на примере CPC
Если у нас будет две строки со следующими данными:
  • 100 кликов — Стоимость клика 100 руб — Стоимость 10000
  • 2 клика — Стоимость клика — 10 руб — Стоимость 20 руб

Обычное среднее скажет, что CPC — по двум строкам 55
Поэтому, чтобы получить корректный CPC, следует поделить все расходы на все клики. В этом случае CPC получится 98,2

Просто скрываем эти поля и добавляем их аналоги:

  • CPC=SUM(Cost)/SUM(Clicks)
  • CTR = SUM(Clicks)/SUM(Impressions)*100
  • % конверсий = SUM(Conversions)/SUM(Clicks)*100
  • Стоимость конверсии=SUM(Cost)/SUM(Conversions)


Столбец “AvgPageviews” я вообще не использую

Процент отказов — очень сложный столбец из-за того, что Яндекс использует разную статистику исходя из каких-то дополнительных данных.
Если коротко, я использую формулу, именно она дает мне минимальные отклонения от того, что показывает Яндекс:
% отказов = SUM(Bounce_clicks)/(SUM(Clicks)/100).
где Bounce_clicks — количество отказных кликов в каждой из строк
Но этот вопрос выходит за рамки этой статьи :)


На данном этапе получаем следующий набор полей:



Визуализируем


Я делаю две страницы для каждого клиента: общая информация и информация по ключам.

Начнем с первой страницы — общей информации
Тут я размещаю:

  • График с расходами по дням
  • Таблицу со статистикой в разрезе дат
  • Таблицу со статистикой в разрезе кампаний
  • Дашборд со статистикой за вчера (клики, стоимость, цена клика)


Для начала в углу разместите диапазон дат, чтобы пользователи могли выбрать под себя даты:

Теперь добавим график с расходами:

Задаем следующие настройки:

Получаем такой график


Для таблицы с датами задаем такие настройки:

Для таблицы с кампаниями меняем параметр “Date” на название кампаний

Для дашбордов я использую сводку


На выходе у меня получается такая страница со статистикой:


Получаем статистику по ключевым словам:



Все то же самое, только теперь запрос будет выглядеть так:

import pandas_gbq

from yadirstat import yadirstat

x = yadirstat.yadirstat.criteria('AgAAAAАААаввадцоутпдцупдI',client-12247235,'2020-05-10','2020-07-15')
print(x)

pandas_gbq.to_gbq(x, 'YD_criteria.test', project_id='red-abstraction-21239254613',if_exists='replace', progress_bar=None)
Теги:
Хабы:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Публикации

Истории

Работа

Data Scientist
58 вакансий
Python разработчик
123 вакансии

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург