[Python, Яндекс API, Визуализация данных, Контекстная реклама] Визуализация статистики Яндекс Директ своими руками. От API до Data Studio

Автор Сообщение
news_bot ®

Стаж: 6 лет 4 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
15-Авг-2020 00:36

Мне, как специалисту по рекламе, требуется постоянно присматривать за клиентами. В этом мне помогает Data Studio.
Однако специалистам по рекламе редко выделяют бюджеты на аналитику, поэтому приходится делать все своими руками.
Что нужно сделать чтобы визуализировать Яндекс Директ в Data Studio:
  • Получить токен от своего аккаунта (за этим в справку Директа)
  • На Python Написать запрос к серверу Яндекс Директ
  • Сложить статистику в Pandas Data Frame
  • Отправить данные в Google Big Query
  • Построить визуализацию в 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)

===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_python, #_jandeks_api (Яндекс API), #_vizualizatsija_dannyh (Визуализация данных), #_kontekstnaja_reklama (Контекстная реклама), #_jandeks_direkt (яндекс директ), #_vizualizatsija_dannyh (визуализация данных), #_data_studio, #_bigquery, #_python, #_python, #_jandeks_api (
Яндекс API
)
, #_vizualizatsija_dannyh (
Визуализация данных
)
, #_kontekstnaja_reklama (
Контекстная реклама
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 03-Июл 21:55
Часовой пояс: UTC + 5