Изначально я использовал Python для сбора BI-аналитики по Яндекс.Директу. Это помогло мне сделать процесс изучения статистики более удобным: я стал максимально быстро замечать отклонения в рекламе, а освободившееся время уделял ее доработкам.
Со временем я решил оптимизировать повторяющиеся задачи по отслеживанию конверсионности рекламы. Как результат — процесс оптимизации рекламы ускорился, стало удобнее следить за кампаниями (пара кликов — и все готово!), но самое главное, рутины стало меньше.
В этой статье я покажу, как проверяю конверсионность в РСЯ с помощью Python в разрезе ключевых слов и площадок показа. Если вы повторите мои действия, получите такие отчеты:
Что вам для этого понадобится:
Токен для работы с API. Чтобы его получить, у вас должно быть приложение, которое Яндекс проверит и допустит к работе. Если у вас нет приложения, а провернуть все то, что я покажу в этой статье, хочется, воспользуйтесь нашим приложением — так процесс получения токена займет не более минуты. Сделать это можно здесь. Токен будет в адресной строке после “access_token=”.
Видеоинструкции, которые я записал для вас: в первой показываю, как построить запрос к API Яндекс.Директ, а во второй — как вывести полученные данные в BigQuery, подключиться к DataStudio и визуализировать их.
Готовые файлы, с помощью которых вы сами можете настроить получение статистики по ключевым словам и площадкам.
Python-пакет Yadirstat, который позволяет с помощью одной строки кода получить информацию сразу в нескольких разрезах (разбираться в запросах не нужно).
Инструкция Яндекса, если вы хотите получить конверсионность по конкретной цели, потому что в этой статье я показываю, как получить общую конверсионность.
Вводные данные
Чтобы построить аналитику для Яндекс.Директа без помощи коннекторов максимально разнообразно и глубоко, нам потребуется 4 составляющих:
Запрос к API Яндекс.Директа.
DataFrame.
BigQuery.
Data Studio.
Алгоритм выглядит так:
Строим запросы к API Яндекс.Директа. Пишем на Python конкретные запросы. Например, вывод статистики за последние 5 дней или вывод статистики по ключевым словам за 90 дней.
Запрос к API Яндекс.Директа упаковываем в DataFrame.
Для чего это делается: мы не может просто так отправить полученную из API информацию в BigQuery, к тому же у нас есть пустующие ячейки, которые нужно заполнить. Изначально там стоит прочерк “–”, а BigQuery такие прочерки не воспринимает — из-за них столбцы имеют текстовый тип данных, что не позволяет манипулировать данными. После переноса информации в DataFrame и удаления прочерков, мы можем полноценно работать с данными, писать скрипты, считать статистику и т. д.
Отправляем данные из DataFrame в BigQuery. Почему именно так: BigQuery — это простой инструмент интернет-маркетинга и он достаточно легко подключается к Data Studio, что нам и надо.
Подключаемся к DataStudio и визуализируем полученные данные.
Для проверки конверсионности в РСЯ достаточно первых двух шагов: построить запросы к API Яндекс.Директа и упаковать ответы на них в DataFrame. Подробнее об этом далее.
Пример запроса можно взять в Яндексе. Я взял пример, который демонстрирует выполнение запроса к сервису Reports, обработку и вывод результата.
Открываем запрос. В первом блоке оставляем все так, как есть.
Ниже прописываем свой токен, логин клиента и убираем знак # в строке #“returnMoneyInMicros”: “false”, чтобы получать реальные данные денежных единиц.
Теперь фокусируемся на теле запроса.
Указываем даты. Если вы хотите задать произвольный период, в “DataRangeType” нужно поставить “CUSTOM_DATE” и указать даты начала и окончания периода в параметрах “DateFrom” и “DateTo”. Если же вам нужны, например, последние 90 дней, поставьте в “DataRangeType” “LAST_90_DAYS”, а “DateFrom” и “DateTo” уберите.
Указываем название столбцов, которые нужны в отчете. Здесь действуют те же ограничения, что и в Яндекс.Директе. То есть просто так запросить какую угодно статистику нельзя. Если в отчетах Яндекс.Директа система просто не дает выбрать некоторые столбцы, то в работе с API необходимо выбрать нужный вид отчета и столбцы, которые можно использовать с этим отчетом, иначе вы получите ошибку. В справке Яндекса можно узнать, какой тип отчета нужен и какие столбцы в этих отчетах вы сможете использовать.
Если нужно, включаем НДС. То есть в “IncludeVAT” вместо “NO” пишем “YES”.
Выставляем фильтр по кликам (будет показываться статистика, по которой больше 0 кликов) и фильтр по типу площадки (только “Ad_Network”);
Далее идет кусок с ответами сервера. Его оставляем без изменений.
Я предпочитаю делить процесс построения запросов к серверу Яндекс.Директа на две части:
запрос к серверу;
файл с логинами, токенами, операциями с таблицами.
Это позволяет удобно работать с учетными данными клиентов и получать данные по всем клиентам сразу, не превращая код в кашу.
Ответ на запрос к API упаковываем в функцию, в которую будем передавать токен, логин, “DateFrom” и “DateTo”.
Здесь нам нужен запрос к серверу и упаковка его ответа в DataFrame.
Запрос мы уже подготовили в первом шаге. Теперь нам нужно избавиться от “–” и сделать из данных полноценный DataFrame.
Код выглядит так:
Алгоритм действий:
Открываем или создаем файл в режиме записи (название можно дать любое).
Записываем в файл ответ сервера с нашей статистикой (в нашем случае это переменная req).
Закрываем файл.
Сразу же читаем этот файл с помощью pd.read_csv.
В скобках указываем название файла (у нас это “cashe.csv”), индекс нашего хедера (можно оставить без изменений), разделители между данными (sep), какая у нас индексируемая колонка, делаем из “–” отсутствие данных (na_values). После скобок с помощью fillna заменяем отсутствующие данные на 0.
Возвращаем наш DataFrame как переменную f.
Импортируем наш файл и библиотеки.
Убираем ограничения на отображение информации.
Записываем свои логин и токен в переменные.
Просим наш соседний файл дать информацию по ключам (обращаемся к функции rsy_keys из соседнего файла и передаем в нее токен и логин): data = rsy_keys(my_token,my_login).
Информацию получили:
Теперь необходимо оставить только строки с ключами, у которых стоимость конверсий выше среднего уровня на 50%.
Смотрим ключевые слова, по которым было потрачено больше, чем 150% стоимости конверсии и не было конверсий.
В итоге видим следующее:
Аналогично получаем статистику по площадкам:
В первом файле прописываем еще один запрос (он будет называться “rsy_placement”);
В запросе изменяем столбцы (запрашиваем не ключи, а плейсмент) и тип отчета. Используем кастомный отчет “ReportType”: “CUSTOM_REPORT”;
Прописываем код для получения неэффективных площадок:
Вот и все. В результате у вас появятся все отчеты, которые мы показали во введении:
ключевые слова, у которых стоимость конверсии выше среднего уровня на 50%;
ключевые слова, по которым расходы составили свыше 150% средней конверсии и которые до сих пор не принесли конверсии;
площадки, на которых стоимость конверсии в 1,5 раза выше среднего уровня;
площадки, на которых расходы составили больше 150% средней конверсии и которые до сих пор не принесли конверсии.
Если остались вопросы, пишите в комментариях.
Content Will Israel Invade Gaza? Tips On How To Time A Thai Bride? Chinese brides…
Content #5 Matchcom How A Whole lot Bridesagencycom Mailbox Order Brides Cost? Odds Of Profitable…
The boardroom is the place where main decisions are manufactured that affect everyone coming from…
avast free of charge antivirus runs your PC designed for malware, spyware, phishing, ransomware, adware,…
Online Info Room and SSL A data room is a cloud answer made especially for…
Free casino slot games refer to any online or offline slot games where you are…