Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

Простой способ выгрузки статистики по API Яндекс Директа и построения отчётов с помощью Python. Никаких познаний в программирование не требуется. По итогу всё сведётся к простой копипасте. Самым сложным будет установка Python и PyCharm)

Качаем и ставим python - https://www.python.org/ (Download в главном меню). При установке ставим галку Add python.exe to PATH и жмём Install Now

Качаем и ставим PyCharm - https://www.jetbrains.com/, к сожалению с российским IP загрузка недоступна, поэтому можно скачать на softportal.com.

Осталось получить токен доступа к API Яндекс Директа. Это можно сделать через моё приложение или зарегистрировать своё (в сети куча мануалов, как это сделать) и получить токен через него.

Итак, ни для кого не секрет, что для получения качественного ответа от LLM нужен качественный запрос с контекстом и чем больше этого контекста, тем качественнее ответ. А ещё лучше, дать модели примеры. Для этого я подготовил файл README.MD в котором описал взаимодействие с сервисом Reports API Директа, это сервис который отвечает за выгрузку статистики, а также подготовил модуль yd_api_reports.py, содержащий готовые методы для взаимодействия с сервисом Reports. Для генерации скриптов я выбрал QWEN AI - https://chat.qwen.ai/, т.к. в ней реализован функционал Проектов, в них можно загружать файлы (своеобразная база знаний), которые будут доступны нейронке во всех чатах в рамках проекта. Этими файлами будут README.MD и yd_api_reports.py, которые нужно скачать здесь. Также в папке будет файл .env для хранения авторизационных данных (токена и логина).

Создаём проект в PyCharm через меню File > New Project, и в поле Location, после последнего слэша, нужно указать название нового проекта (вместо PythonProject) и нажать Create. Я назвал проект yandex_api

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

Далее в левой панели клацаем правой кнопкой по папке созданного проекта (yandex_api) New > Directory и создаём папку в которой будут размещаться файлы для работы с API Директа, я назвал папку yandex_direct. Копируем yd_api_reports.py и .env в созданную папку. Чтобы быстро добраться до папки клацаем по ней правой кнопкой, выбираем Open In > Explorer. В .env прописываем реальные логин и токен.

***

Для начала я хочу написать скрипт, который будет выгружать показатели за вчерашний день, отображать динамику относительно предыдущего дня и среднего за 7 дней.

Создаём новый проект в QWEN, я назову его “API Директа Reports”. В блоке “Расширенные настройки” загружаем в проект файлы yd_api_reports.py и README.MD, добавляем инструкцию:

## Твоя задача выгружать статистические данные по API Директа при помощи генерации python-скриптов
## При написании скриптов импортируй и используй методы приложенного модуля `yd_api_reports.py`.
## Используй информацию из `README.MD` для составления запросов к API Директа, а также при написании скриптов следуй инструкциям из `README.MD`

Жмём “Создать проект”

В созданном Проекте пишем промпт:

## Ты опытный аналитик-маркетолог
## Твоя задача: сравнить показатели за вчера и предшествующий день и вывести динамику показателей вчерашнего дня относительно предшествующего дня и среднего за последние 7 дней, например, CPC - 54,4 руб. (+13%|-10%) и т.п. Сравниваемые показатели: расход, показы, CTR, клики, CPC, отказы, глубина просмотра.

Кроме стандартных библиотек, встроенных в Python, для обработки данных и отправки запросов к API Директа потребуется установить дополнительные библиотеки. Это делается в консоли при помощи pip, стандартной системы управления пакетами. В своём ответе QWEN сгенерирует готовую команду, которую необходимо скопировать в консоль и нажать Enter.

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

Копируем команду и идём в терминал PyCharm. Кнопка открытия терминала находится в левом нижнем углу. Вставляем скопированную команду pip, жмём Enter и дожидаемся установки пакетов.

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

Создаём python-файл в котором будем тестировать скрипты сгенерированные QWEN, назовём его “example.py”. Чтобы создать новый файл скрипта в PyCharm необходимо кликнуть правой кнопкой по названию папки в которой нужно разместить скрипт, в нашем случае это “yandex_direct”. В открывшемся меню: New > Python File. В открывшемся окне вводим “example” (можно не указывать расширение “.py”, т.к. тип файла уже был выбран в контекстном меню), нажимаем Enter.

Копируем сгенерированный QWEN скрипт, вставляем в созданный файл и запускаем

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

В результате выполнения скрипта я получил ошибку:

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

В таком случае необходимо скопировать текст ошибки, он выделен красным, вернуться в чат QWEN и сообщить ему:
Произошла ошибка:
```
текст_ошибки
```
Исправь её и выведи обновлённый скрипт полностью

Копируем исправленный скрипт, заменяем на него содержимое example.py и снова запускаем. Получаем запрошенный результат

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

Итак, динамику посткликовых мы получили, но не хватает самого главного - показателей эффективности. При выгрузке конверсий по API Яндекс Директа есть особенности. Если в запросе задан список конверсий (или одна конверсия), то на выходе API отдаст данные о конверсиях с заголовками следующего формата: Conversions_<ID конверсии>_<модель атрибуции>. Это заложено в логику модуля и инструкцию README.MD. При обработке списка конверсий скрипт должен суммировать их в один столбец Conversions.

Пишем нейронке, что хотим включить в отчёт данные о конверсиях:

Добавь в отчёт данные о конверсиях, CR и CPA по целям 12345, 67890 и 101112. Модель атрибуции автоматическая.

Копируем обновлённый скрипт и запускаем, в результате получаем отчёт с посткликовыми и данными о конверсиях.

Стата из API Яндекс Директа. ИИ + python (справится даже школьник)

Поздравляю! Теперь вы можете генерировать свои отчёты с нужными показателями и по нужным срезам.

Начать дискуссию