Как проверить конверсионность рекламы в Яндекс.Директе с помощью Python

Изначально я использовал Python для сбора BI-аналитики по Яндекс.Директу. Это помогло мне сделать процесс изучения статистики более удобным: я стал максимально быстро замечать отклонения в рекламе, а освободившееся время уделял ее доработкам.

Со временем я решил оптимизировать повторяющиеся задачи по отслеживанию конверсионности рекламы. Как результат — процесс оптимизации рекламы ускорился, стало удобнее следить за кампаниями (пара кликов — и все готово!), но самое главное, рутины стало меньше.

В этой статье я покажу, как проверяю конверсионность в РСЯ с помощью Python в разрезе ключевых слов и площадок показа. Если вы повторите мои действия, получите такие отчеты:

Ключевые слова, у которых стоимость конверсии выше среднего уровня на 50% Ключевые слова, по которым расходы составили свыше 150% средней конверсии и которые до сих пор не принесли конверсии Площадки, на которых стоимость конверсии в 1,5 раза выше среднего уровня Площадки, на которых расходы составили больше 150% средней конверсии и которые до сих пор не принесли конверсии

Что вам для этого понадобится:

  1. Токен для работы с API. Чтобы его получить, у вас должно быть приложение, которое Яндекс проверит и допустит к работе. Если у вас нет приложения, а провернуть все то, что я покажу в этой статье, хочется, воспользуйтесь нашим приложением — так процесс получения токена займет не более минуты. Сделать это можно здесь. Токен будет в адресной строке после “access_token=”.

  2. Видеоинструкции, которые я записал для вас: в первой показываю, как построить запрос к API Яндекс.Директ, а во второй — как вывести полученные данные в BigQuery, подключиться к DataStudio и визуализировать их.

  3. Готовые файлы, с помощью которых вы сами можете настроить получение статистики по ключевым словам и площадкам.

  4. Python-пакет Yadirstat, который позволяет с помощью одной строки кода получить информацию сразу в нескольких разрезах (разбираться в запросах не нужно).

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

Вводные данные

Чтобы построить аналитику для Яндекс.Директа без помощи коннекторов максимально разнообразно и глубоко, нам потребуется 4 составляющих:

  1. Запрос к API Яндекс.Директа.

  2. DataFrame.

  3. BigQuery.

  4. Data Studio.

Алгоритм выглядит так:

  1. Строим запросы к API Яндекс.Директа. Пишем на Python конкретные запросы. Например, вывод статистики за последние 5 дней или вывод статистики по ключевым словам за 90 дней.

  2. Запрос к API Яндекс.Директа упаковываем в DataFrame.
    Для чего это делается: мы не может просто так отправить полученную из API информацию в BigQuery, к тому же у нас есть пустующие ячейки, которые нужно заполнить. Изначально там стоит прочерк “–”, а BigQuery такие прочерки не воспринимает — из-за них столбцы имеют текстовый тип данных, что не позволяет манипулировать данными. После переноса информации в DataFrame и удаления прочерков, мы можем полноценно работать с данными, писать скрипты, считать статистику и т. д.

  3. Отправляем данные из DataFrame в BigQuery. Почему именно так: BigQuery — это простой инструмент интернет-маркетинга и он достаточно легко подключается к Data Studio, что нам и надо.

  4. Подключаемся к DataStudio и визуализируем полученные данные.

Для проверки конверсионности в РСЯ достаточно первых двух шагов: построить запросы к API Яндекс.Директа и упаковать ответы на них в DataFrame. Подробнее об этом далее.

Шаг 1. Создаем структуру запроса

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

Открываем запрос. В первом блоке оставляем все так, как есть.

Ниже прописываем свой токен, логин клиента и убираем знак # в строке #“returnMoneyInMicros”: “false”, чтобы получать реальные данные денежных единиц.

Теперь фокусируемся на теле запроса.

Пример нашего запроса

Указываем даты. Если вы хотите задать произвольный период, в DataRangeType нужно поставить CUSTOM_DATE и указать даты начала и окончания периода в параметрах DateFrom и DateTo. Если же вам нужны, например, последние 90 дней, поставьте в DataRangeType LAST_90_DAYS, а DateFrom и DateTo уберите.

Указываем название столбцов, которые нужны в отчете. Здесь действуют те же ограничения, что и в Яндекс.Директе. То есть просто так запросить какую угодно статистику нельзя. Если в отчетах Яндекс.Директа система просто не дает выбрать некоторые столбцы, то в работе с API необходимо выбрать нужный вид отчета и столбцы, которые можно использовать с этим отчетом, иначе вы получите ошибку. В справке Яндекса можно узнать, какой тип отчета нужен и какие столбцы в этих отчетах вы сможете использовать.

Если нужно, включаем НДС. То есть в IncludeVAT вместо NO пишем YES.

Выставляем фильтр по кликам (будет показываться статистика, по которой больше 0 кликов) и фильтр по типу площадки (только Ad_Network);

Далее идет кусок с ответами сервера. Его оставляем без изменений.

Шаг 2. Упаковываем ответ на запрос в DataFrame

Я предпочитаю делить процесс построения запросов к серверу Яндекс.Директа на две части:

  • запрос к серверу;

  • файл с логинами, токенами, операциями с таблицами.

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

Ответ на запрос к API упаковываем в функцию, в которую будем передавать токен, логин, DateFrom и DateTo.

Первый файл

Здесь нам нужен запрос к серверу и упаковка его ответа в DataFrame.

Запрос мы уже подготовили в первом шаге. Теперь нам нужно избавиться от “–” и сделать из данных полноценный DataFrame.

Код выглядит так:

Алгоритм действий:

  1. Открываем или создаем файл в режиме записи (название можно дать любое).

  2. Записываем в файл ответ сервера с нашей статистикой (в нашем случае это переменная req).

  3. Закрываем файл.

  4. Сразу же читаем этот файл с помощью pd.read_csv.
    В скобках указываем название файла (у нас это “cashe.csv”), индекс нашего хедера (можно оставить без изменений), разделители между данными (sep), какая у нас индексируемая колонка, делаем из “–” отсутствие данных (na_values). После скобок с помощью fillna заменяем отсутствующие данные на 0.

  5. Возвращаем наш DataFrame как переменную f.

Второй файл

Импортируем наш файл и библиотеки.

Убираем ограничения на отображение информации.

Записываем свои логин и токен в переменные.

Просим наш соседний файл дать информацию по ключам (обращаемся к функции rsy_keys из соседнего файла и передаем в нее токен и логин): data = rsy_keys(my_token,my_login).

Информацию получили:

Теперь необходимо оставить только строки с ключами, у которых стоимость конверсий выше среднего уровня на 50%.

Смотрим ключевые слова, по которым было потрачено больше, чем 150% стоимости конверсии и не было конверсий.

В итоге видим следующее:

Аналогично получаем статистику по площадкам:

  1. В первом файле прописываем еще один запрос (он будет называться “rsy_placement”);

  2. В запросе изменяем столбцы (запрашиваем не ключи, а плейсмент) и тип отчета. Используем кастомный отчет “ReportType”: “CUSTOM_REPORT”;

  3. Прописываем код для получения неэффективных площадок:

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

  • ключевые слова, у которых стоимость конверсии выше среднего уровня на 50%;

  • ключевые слова, по которым расходы составили свыше 150% средней конверсии и которые до сих пор не принесли конверсии;

  • площадки, на которых стоимость конверсии в 1,5 раза выше среднего уровня;

  • площадки, на которых расходы составили больше 150% средней конверсии и которые до сих пор не принесли конверсии.

Если остались вопросы, пишите в комментариях.

 

Источник статьи

Поделиться

Последние записи

Chinese Mail Purchase Brides: Ideal Sites Meant for Marrying A Chinese Language Girl

Content Will Israel Invade Gaza? Tips On How To Time A Thai Bride? Chinese brides…

% дней назад

Russian Brides Mail Order Brides From Russian federation

Content #5 Matchcom How A Whole lot Bridesagencycom Mailbox Order Brides Cost? Odds Of Profitable…

% дней назад

Tips on how to Conduct a Boardroom Company Review

The boardroom is the place where main decisions are manufactured that affect everyone coming from…

% дней назад

Avast Free Ant-virus Review

avast free of charge antivirus runs your PC designed for malware, spyware, phishing, ransomware, adware,…

% дней назад

Web based Data Room and SSL

Online Info Room and SSL A data room is a cloud answer made especially for…

% дней назад

Play Free Slots

Free casino slot games refer to any online or offline slot games where you are…

% дней назад