Канал для олдов интернет-маркетинга: новости, статьи, приколдесы про digital Присоединяйся!

8216 https://ppc.world/uploads/images/3d/7d/622b591c63214-ppcpython.png 2022-03-14 Директ ppc.world 160 31

Как настроить BI-аналитику для Директа с помощью Python за 0 рублей — инструкция и видеогайд

Как с минимальными знаниями Python и без затрат построить аналитику для Яндекс.Директа? Понадобятся токен Директа, BigQuery, Data Studio и немного свободного времени. Пошаговой инструкцией и видеогайдом делится руководитель отдела рекламы в Bquadro Александр Любивый.

Предлагаю построить таблицу с аналитикой, которая будет выглядеть так:

То есть у нас будут столбцы:

  • Разрез статистики (кампании или кампании + таргетинги/пол и возраст/ОС).

  • Клики.

  • Стоимость.

  • Конверсии.

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

Статистику мы будем получать за последние 90 дней. Она будет считаться только по кампаниям с типом «Текстово-графические объявления» (например, не будет медийной рекламы).

Рассмотрим, как получить статистику с разрезом по кампаниям. В конце разберемся, что добавить в код, чтобы получать также данные по таргетингам, ОС, полу и возрасту.

  1. Готовимся к настройке аналитики

  2. Скачиваем шаблон и настраиваем под себя

  3. Получаем статистику по кампаниям

  4. Отправляем статистику в Google BigQuery

  5. Визуализируем данные в DataStudio

  6. Строим аналитику для таргетингов, ОС, пола и возраста

Для тех, кто предпочитает не читать, а смотреть, мы с ppc.world подготовили видеогайд — он в конце статьи.

Готовимся к настройке аналитики

Для получения статистики с помощью API Директа нам потребуется:

  1. Получить токен для доступа к Яндекс.Директу.

  2. Узнать ID целей в Яндекс.Метрике.

  3. Определиться с моделью атрибуции.

Получаем токен

Вы можете сделать это сами, но нужно будет создавать свое приложение и модерировать его, я же вам предлагаю воспользоваться нашим приложением — так вы получите токен за пару секунд.

Переходим по этой ссылке и даем разрешение (это не опасно, мы не сможем ничего сделать с вашим токеном — он используется только в связке с логином).

Токен будет в адресной строке — запишите его.

Узнаем номер цели в Яндекс.Метрике

В Яндекс.Метрике перейдите в раздел «Цели» и скопируйте номер одной или нескольких целей.

Определяемся с моделью атрибуции

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

Актуальный список моделей атрибуции вы найдете на этой странице справки API Директа в строке ConversionRate_<id_цели>_<модель>.

На данный момент доступны:

  • FC — первый переход;

  • LC — последний переход;

  • LSC — последний значимый переход;

  • LYDC — последний переход из Яндекс.Директа.

Скачиваем шаблон и настраиваем под себя

Переходим в среду разработки (можно использовать любую).

Открываем файл с шаблоном, который я подготовил для вас.

Не трогаем начало файла:

Проверьте, чтобы все пакеты импортировались.

Заполните переменные своими данными — впишите токен, логин, цели:

Как записывать цели?

Если целей несколько (например, отправка формы и звонок в коллтрекинге), расписываем цели как в примере:

goals = ["999999999","888888888"]

Если цель одна, пишем так:

goals = ["9999999999"]

Получаем статистику по кампаниям

Мы запишем статистику сразу в переменную.

Эта строка выглядит так:

fail = yadirconv.yadirconv.camp(token, login, goals,’LYDC’)

Как ее расшифровывать?

Мы создаем переменную fail, в которой будет записана статистика по кампаниям. Получаем мы ее с помощью пакета yadirconv.

В эту функцию мы передаем токен, логин, цели и нашу модель атрибуции (в данном примере — LYDC).

Чтобы вывести наши данные на экран, пишем команду: print(fail).

Вот мы и получили статистику:

Следующим шагом нам нужно объединить 2 столбца с конверсиями в один.

Для этого делаем новый столбец, который будет суммировать данные этих двух столбцов.

fail[’Goals’]=fail[’Conversions_159442768_LYDC’]+fail[’Conversions_160095082_LYDC’]

После чего мы удалим эти два столбца этой строчкой:

fail=fail.drop(columns=[’Conversions_159442768_LYDC’, ’Conversions_160095082_LYDC’])

Обратите внимание, что у вас будут свои номера целей.

Выводим.

Вот мы и получили статистику по кампаниям.

Отправляем статистику в Google BigQuery

Предварительно вам нужно зарегистрироваться в Google BigQuery и подписаться на бесплатный тариф (его вам хватит с головой).

Отправляем статистику с помощью строки:

pandas_gbq.to_gbq(fail, ’checker_yd.ppc_camp’, project_id=’red-abstraction-999999’,if_exists=’replace’, progress_bar=None)

Вы с помощью пакета pandas_gbq передаете данные из своей переменной fail в свою папку (она у вас уже должна быть, а файл создастся сам). В моем случае папка называется ’checker_yd, а файл ppc_camp’, но его можно назвать как угодно. Используйте тот project_id, который у вас есть в аккаунте.

Наша статистика в BigQuery выглядит примерно так:

Нажмите на запрос к таблице (меню Query — пункт In new tab).

Вам выведут примерно такой запрос:

SELECT FROM `red-abstraction-99999.checker_yd.ppc_camp` LIMIT 1000

Вам нужно после SELECT добавить звездочку (*) и удалить LIMIT 1000.

Получится примерно так:

Копируем этот запрос и переходим к следующему шагу.

Визуализируем данные в DataStudio

Добавляем в DataStudio новый источник — BigQuery.

Делаем пользовательский запрос и подключаемся:

После этого источник данных будет нам доступен.

Добавляем новое поле.

В названии указываем CPL.

Теперь у нас есть полноценные данные, которые мы можем визуализировать.

Добавляем таблицу (меню «Вставить», пункт «Таблица»).

Заполняем параметр и показатели:

Получится примерно такая таблица:

Вот и всё.

Далее я предлагаю сделать вам такую таблицу для промежутка в 30 дней и 90 дней, чтобы видеть динамику CPL по кампаниям.

Также рекомендую сделать для этих данных отдельные плашки. У нас они выглядят так:

Они добавляются через меню «Вставить», пункт «Сводка».

Предлагаю вам попробовать разные виды вывода статистики.

Строим аналитику для таргетингов, ОС, пола и возраста

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

Вам нужно пройти те же самые этапы за исключением одной строчки кода.

Для получения статистики по кампаниям мы использовали этот код:

fail = yadirconv.yadirconv.camp(token, login, goals,’LYDC’)

А для получения статистики по таргетингам нужен такой:

f=yadirconv.yadirconv.criterion(token, login, goals,’LYDC’)

Для получения статистики по ОС:

f=yadirconv.yadirconv.os(token, login, goals,’LYDC’)

Для получения статистики по полу и возрасту:

f=yadirconv.yadirconv.gender_age(token, login, goals,’LYDC’)

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

Вот эта строка с названием файла должна меняться:

pandas_gbq.to_gbq(fail, ’checker_yd.ppc_camp’, project_id=’red-abstraction-999999’,if_exists=’replace’, progress_bar=None)

На этом всё. Теперь вы просто сможете запускать свой код, и вся статистика сама обновится.

Видеогайд

То же самое, только в видео. Заваривайте чай и включайте:

На этой странице есть элементы, которые могут не отображаться на AMP-страницах.

Перейти на сайт

Комментарии 3

Авторизуйтесь, чтобы оставить комментарий.

  • Рустам 74

    Здравствуйте! Скажите, а в PowerBi как-то можно выгрузить статистику?

    • Mikhail Romantsov

      Рустам 74, можно выгрузить данные в GBQ (как в этом гайде), и из PowerBI подключиться к GBQ (нативный коннектор). Кроме того в PowerBI можно выполнять питоновские скрипты и, получается, напрямую из API тянуть в PowerBI. В обход GBQ)

    • digital-агентство Bquadro

      Рустам 74, Да, конечно. Данные хранятся в Google BigQuery, к этому сервису вы сможете подключиться и с помощью PowerBI. Если же у вас не получится выгрузить статистику в BigQuery, можно сохранить данные в csv. Пример кода: "x = open("file.csv", "w") file.write(x)" (можете почитать как с помощью pandas сохранить данные в csv)