Подключение к Яндекс Директу
Команды сами читают config/.env. Не выводите этот файл, токен или заголовок
Authorization в диалог, журнал отладки либо командную строку.
Если .env уже настроен, используйте его. Для нового подключения скопируйте
.env.example в .env и заполните его в редакторе:
YANDEX_DIRECT_TOKEN— OAuth-токен пользователя с доступом к API Директа.YANDEX_DIRECT_ACCOUNT— логин рекламного кабинета по умолчанию; ниже показано, где его взять и как выбрать другой кабинет.YANDEX_DIRECT_LOCALE— язык сообщений API:ru,enилиtr.YANDEX_DIRECT_USE_OPERATOR_UNITS— чьи баллы расходовать:auto,never(клиента) илиalways(агентства). Обычно достаточноauto.
В ACCOUNT нужен логин клиента, которому принадлежит реклама. Его можно
посмотреть в выводе accounts.py или взять из параметра ulogin в адресе
открытого кабинета. Например, для
https://direct.yandex.ru/dna/grid/campaigns?ulogin=client-shop настройка такая:
YANDEX_DIRECT_ACCOUNT=client-shopЗдесь client-shop — пример: замените его своим логином. Название компании,
ID кампании и логин агентства вместо логина клиента не подходят. Эта настройка
выбирает кабинет среди уже доступных токену; доступ к чужому кабинету она не даёт.
Команды работы с рекламой выбирают кабинет в таком порядке:
- Явный
--accountв текущей команде. - Сохранённый выбор
accounts.py --use. - Единственный неархивный кабинет, если выбирать не из чего.
YANDEX_DIRECT_ACCOUNTиз настроек.
Переменные окружения имеют приоритет над значениями в .env. Поле ACCOUNT
можно оставить пустым: свой единственный кабинет определится автоматически,
а при нескольких кабинетах используйте --account или --use.
Например, при нескольких доступных кабинетах и без сохранённого выбора первая
команда ниже прочитает кампании client-shop из настройки, вторая — другого
клиента только для этого запуска, третья запомнит его для последующих команд:
uv run scripts/campaigns.py
uv run scripts/campaigns.py --account client-service
uv run scripts/accounts.py --use client-serviceПосле третьей команды campaigns.py без --account выберет client-service,
даже если в .env остаётся client-shop. Для параллельной работы указывайте
--account явно, чтобы команды не зависели от общего сохранённого выбора.
Проверка подключения из каталога скилла:
uv run scripts/whoami.py
uv run scripts/accounts.pywhoami.py проверяет подключение по --account или ACCOUNT из настроек и
не использует сохранённый выбор --use. Без этих значений он проверяет свой
кабинет рекламодателя либо агентский доступ без выбора отдельного клиента.
Если доступа ещё нет, откройте API_ACCESS.md: там страницы регистрации приложения и подачи заявки, примеры заполнения и получение токена.
Дополнительный профиль --env test_cabinet использует
YANDEX_DIRECT_ACCOUNT_TEST_CABINET и, если задан,
YANDEX_DIRECT_TOKEN_TEST_CABINET. Без отдельного токена используется основной.
Это обычный кабинет с реальной рекламой, а не песочница.
Основной YANDEX_DIRECT_ACCOUNT этот профиль не наследует. Выбор через
accounts.py --use сохраняется отдельно для каждого профиля.
Из config/ в Git входят только инструкции README.md, API_ACCESS.md и
пустой образец .env.example. Токены, выбранные кабинеты, кеш и журналы
остаются локально.