Начните с доступа
Гайд про регистрацию и оплату Claude из России: текст со скриншотами, что делать, если не проходит карта.
- Старт с Claude 990 ₽
Схематично: вопрос про доступ и ответ из гайда
Плейбук · Автоматизация
Промт для нейронки + 6 Python-скриптов: 4 кампании, ретаргет, мониторинг. 9 принципов из реального проекта. Работает на stdlib без pip.
Скопируй промт в любую нейронку, подставь свои данные, забери рабочие Python-скрипты для своего бизнеса. Тут собраны ошибки API, нюансы стратегий, «Интересы и привычки» и cron-агент мониторинга — то, на чём обычно теряют первые недели запуска.
Проверено на реальном проекте (кайт-школа, Анапа) · май 2026 · Python stdlib без pip
Если хочешь сначала увидеть общую картину, прочитай гайд про настройку Директа через Claude Code. Связки и цифры до и после на трёх проектах разобраны в статье про Директ для локального бизнеса.
Вставь в Claude, ChatGPT или Gemini. Заполни блок «ТВОИ ДАННЫЕ», и нейронка создаст все скрипты под твой проект. Работает на Python stdlib, без pip.
Ты эксперт по Яндекс Директ API v5 и Яндекс Метрике.
Создай полный комплект Python-скриптов для запуска рекламы с нуля.
Скрипты должны работать на Python stdlib (только urllib, json, csv — без pip).
Токены читаются из файла .env в корне проекта.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТВОИ ДАННЫЕ (заменить на реальные)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
YANDEX_DIRECT_TOKEN= # OAuth-токен (как получить — см. раздел ниже)
YANDEX_DIRECT_LOGIN= # логин рекламного аккаунта
БИЗНЕС:
Название: [например: Школа кайтсёрфинга]
Продукт/услуга: [например: обучение кайтсёрфингу, курсы от 27 000 руб]
Посадочная страница: [например: https://mysite.ru/]
Регион бизнеса: [например: Анапа, Краснодарский край]
МЕТРИКА:
Счётчик ID: [ID счётчика Метрики]
Цель «Заявка» ID: [ID цели — создать в Метрике если нет]
Ценность заявки: [например: 500 руб]
ДИРЕКТ:
Sitelink Set ID: [ID набора быстрых ссылок — создать в UI или пропустить]
Video Creative ID: [ID видеодополнения — пропустить если нет]
CPA цель: [сколько готов платить за заявку, например 700 руб]
Недельный бюджет РСЯ: [например: 7000 руб]
Потолок ставки РСЯ: [например: 150 руб/клик]
ГЕО (ID регионов, найти на tech.yandex.ru/regions):
Поиск холодный: [например: 213,1,2,10174,35,37,38,39]
РСЯ: [те же или шире]
Конкуренты из других городов: [например: 213,1,11]
АУДИТОРИЯ КОНКУРЕНТОВ (боль и крючок):
Боль клиента: [например: катается на озере, прогресс медленный]
Наше преимущество: [например: на море ветер стабильнее, результат за 3 дня]
МИНУС-СЛОВА:
Чужие темы: [например: серфинг, вейкборд, виндсёрфинг, яхта]
Чужое гео: [если работаешь локально — чужие города]
Коммерческий мусор: [купить, цена, продам, бу, бесплатно, аренда]
Инфо-мусор: [видео, скачать, форум, отзыв, вики, что такое]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ЧТО СОЗДАТЬ (6 скриптов)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. setup_campaigns.py — 4 кампании:
• search — Поиск, холодный трафик, AVERAGE_CPA
• search_rt — Поиск, ретаргет, AVERAGE_CPA (CPA × 0.8)
• rsya_rt — РСЯ ретаргет, WB_MAXIMUM_CONVERSION_RATE
• rsya_konkurenti— РСЯ конкуренты, WB_MAXIMUM_CONVERSION_RATE
Все кампании: ADD_METRICA_TAG=YES, AttributionModel=AUTO, статус SUSPENDED
2. setup_groups.py — группы объявлений:
• Поиск: автотаргетинг ТОЛЬКО COMPETITOR=YES (остальные NO)
• РСЯ ретаргет: группа «Ретаргетинг»
• РСЯ конкуренты: группа «Интересы и привычки» (URL добавить вручную в UI!)
API-нюанс: AutotargetingCategories = массив [...], НЕ {"Items": [...]}
3. setup_ads.py — по 5 объявлений на кампанию:
Title ≤56 / Title2 ≤30 / Text ≤81 символов
Для конкурентов: сравнение «твой способ vs наш», скорость результата
Для ретаргета: FOMO («были у нас — осталось N мест»)
4. setup_retargeting.py — ретаргет-инфраструктура:
POST /json/v5/retargetinglists — правила Rules.Arguments[].ExternalId
POST /json/v5/audiencetargets — ставка ContextBid ≥ 20 000 000 (= 20 руб)
(При 300 000 = 0.30 руб алгоритм не покупает показы!)
5. report_search_queries.py — раз в 3 дня:
SEARCH_QUERY_PERFORMANCE_REPORT → разделить на мусор / нормальные
Отправить в Telegram через Bot API
6. diag_campaigns.py — диагностика:
Проверить статусы, стратегии, GoalId, audience targets, ADD_METRICA_TAG
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
КРИТИЧЕСКИЕ ПРИНЦИПЫ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Метрика загружается БЕЗ ожидания cookie-согласия
2. Цель стратегии = Заявка (НЕ «просмотр страницы», НЕ «переход в мессенджер»)
3. На старте — WB_MAXIMUM_CONVERSION_RATE (PAY_FOR_CONVERSION требует 10+ конв/неделю)
4. Автотаргетинг — только COMPETITOR (Узкие запросы)
5. Ставки audiencetargets — минимум 20 руб
6. «Интересы и привычки» — только в UI, через API недоступно
7. ADD_METRICA_TAG = YES во всех кампаниях
8. Мусорные площадки РСЯ — чистить раз в месяц через UI
9. Поисковые запросы — аудит раз в 3 дня, добавлять в минус-словаНужен OAuth-токен с правом direct:api. Для таргетинга на Аудитории добавь audience:read и audience:write.
Создай приложение → тип «Веб-сервисы». Callback URI: https://oauth.yandex.ru/verification_code
Раздел «Доступ к данным» → «Использование API Яндекс.Директа» (direct:api). Для Аудиторий добавь audience:read + audience:write.
Скопируй ClientID и открой в браузере:
https://oauth.yandex.ru/authorize?response_type=token&client_id=ТВОй_CLIENT_ID&redirect_uri=https://oauth.yandex.ru/verification_code
После разрешения доступа в URL появится access_token=y0_.... Это и есть токен. Положи в .env как YANDEX_DIRECT_TOKEN.
YANDEX_DIRECT_TOKEN=y0_AgAAAA...
YANDEX_DIRECT_LOGIN=твой_логин
TELEGRAM_BOT_TOKEN=... # для отчётов
TELEGRAM_CHAT_ID=... # твой chat_id# Все скрипты читают .env одинаково:
for line in Path('.env').read_text(encoding='utf-8').splitlines():
if not line.strip() or line.startswith('#') or '=' not in line: continue
k, v = line.split('=', 1)
os.environ.setdefault(k.strip(), v.strip().strip('"').strip("'"))Счётчик Метрики запускается сразу при загрузке страницы, до согласия на cookie. Иначе Директ показывает 50 кликов, а Метрика всего 5 визитов. Согласие нужно маркетинговым пикселям, обычному счётчику аналитики оно ни к чему.
Целью для стратегии ставь конкретное действие: отправку формы, клик на звонок. НЕ «Просмотр страницы», НЕ «Переход в мессенджер»: на таких целях алгоритм гонит мусорный трафик. Ценность цели тоже задай обязательно: хотя бы 500 руб, без неё автостратегия не обучается.
PAY_FOR_CONVERSION требует минимум 10 конверсий в неделю для обучения. На старте их нет, поэтому алгоритм останавливается. WB_MAXIMUM_CONVERSION_RATE работает сразу и учится по ходу. На PAY_FOR_CONVERSION переходи только после того, как накопил статистику.
Включи только категорию COMPETITOR (Узкие запросы). Широкие, Альтернативные и Сопутствующие тянут нецелевой трафик: гидрокостюм, сапсёрфинг, виндсёрфинг. В API: keyword ---autotargeting, AutotargetingCategories передаётся массивом напрямую, не объектом Items.
При ставке 0.30 руб (300 000 микрорублей) алгоритм физически не может купить показы в аукционе. Минимум 20–30 руб на старте, оптимизировать по данным через 2 недели.
Таргетинг на посетителей сайтов конкурентов настраивается только через интерфейс Директа. Яндекс Аудитории API поддерживает один GET, так что создать этот тип сегмента через API не выйдет.
Без этой настройки Метрика не видит источник трафика. Ставь флаг на все кампании без исключений, иначе атрибуция слепая.
DSP-биржи, мобильные игры, взрослые сайты сжигают бюджет без конверсий. Раз в месяц бери отчёт по площадкам → отбирай площадки с 0 конверсий и расходом >500 руб → отправляй в «Запрещённые площадки» через UI (API это поле не поддерживает).
Выгружать SEARCH_QUERY_PERFORMANCE_REPORT. Добавлять в минус-слова: чужие темы, чужое гео, покупной интент. Автоматизировать через cron на VPS → отчёт в Telegram.
Это тот минимум, с которого стоит стартовать. Четыре кампании крутятся параллельно, каждая на свою аудиторию, и не отбирают показы друг у друга.
| Название | Тип | Аудитория | Стратегия |
|---|---|---|---|
search |
Поиск | Холодный трафик, ищут прямо сейчас | AVERAGE_CPA |
search_rt |
Поиск RT | Были на сайте, снова ищут | AVERAGE_CPA (CPA × 0.8) |
rsya_rt |
РСЯ RT | Были на сайте, догоняем баннером | WB_MAXIMUM_CONVERSION_RATE |
rsya_konkurenti |
РСЯ | Посетители сайтов конкурентов | WB_MAXIMUM_CONVERSION_RATE |
Цель: GoalId = Заявка, ценность 500 руб, CPA 700 руб. Поиск включён, РСЯ выключена. Почему не HIGHEST_POSITION: без явного CPA алгоритм разгоняет ставки и сливает бюджет в показы без заявок. AVERAGE_CPA задаёт цель, а ставками алгоритм управляет сам.
WeeklySpendLimit и BidCeiling задаёшь сам. Поиск SERVING_OFF. PAY_FOR_CONVERSION требует минимум 10 конверсий в неделю, на старте их нет, и алгоритм встаёт. WB_MAXIMUM_CONVERSION_RATE показывает сразу и учится постепенно.
| Цель | Ценность | Назначение |
|---|---|---|
| Заявка (отправка формы) | 500 руб | Главная цель для всех стратегий |
| Оплата | 10 000 руб | Метрика конверсии воронки |
Симптом: в Директе 50 кликов, в Метрике 5 визитов.
Причина: счётчик Метрики грузился только после нажатия «Принять всё» в cookie-баннере. Все, кто закрыл баннер, в статистику не попадали.
| UI-название | API-значение | Статус |
|---|---|---|
| Целевые | EXACT | NO |
| Узкие | COMPETITOR | YES |
| Широкие | BROADER | NO |
| Сопутствующие | ACCESSORY | NO |
| Альтернативные | ALTERNATIVE | NO |
# Правильно — при UPDATE передавать как массив []:
"AutotargetingCategories": [
{"Category": "EXACT", "Value": "NO"},
{"Category": "COMPETITOR", "Value": "YES"},
{"Category": "BROADER", "Value": "NO"},
{"Category": "ACCESSORY", "Value": "NO"},
{"Category": "ALTERNATIVE", "Value": "NO"},
]
# НЕ как объект {"Items": [...]} — это формат ответа GET, не запроса UPDATEгидрокостюм · сап · сапборд · серфинг · вейк · виндсёрфинг · сноуборд · яхтинг · парус
спб · питер · москва · сочи · адлер · ялта · крым · калининград
(если работаешь локально)
купить · цена · продам · бесплатно · бу · магазин · каталог · аренда · комплект
видео · скачать · форум · отзыв · вики · что такое · фото · смотреть · работа
Человек выбирает между школами, давим на доверие: IKO, опыт, группы до 4, рассрочку.
Человек катается на озере, давим на сравнение «море vs озеро», скорость результата, стабильность ветра.
dsp-webeye.yandex.ru
dsp-minimob-ww.yandex.ru
dsp-yeahmobi.yandex.ru
dsp.yandex.rucom.vitastudio.mahjong
com.oakever.tiletrip
com.Earthkwak.Platformer
com.* (шаблон)0 конверсий
+ расход >500 руб
за любой период
= блокировать
{
"method": "add",
"params": {
"RetargetingLists": [{
"Name": "Был на сайте",
"Rules": [{
"Arguments": [{ // НЕ Goals, НЕ MetrikaGoals
"ExternalId": 330452088, // НЕ MetrikaGoalId
"Operator": "ANY" // НЕ Type, НЕ OR
}],
"MembershipLifeSpan": 540 // НЕ Time, НЕ Days
}]
}]
}
}{
"method": "add",
"params": {
"AudienceTargets": [{
"AdGroupId": GROUP_ID,
"RetargetingListId": LIST_ID,
"ContextBid": 20000000 // 20 руб (МИНИМУМ)
// При 300 000 = 0.30 руб → 0 показов
}]
}
}# Ежедневная статистика в 09:00 МСК (06:00 UTC)
0 6 * * * root python3 /usr/local/bin/yd_daily_stats.py >> /var/log/yd_stats/$(date +\%Y-\%m-\%d).log 2>&1
# Аудит поисковых запросов каждые 3 дня в 09:00 МСК
0 6 */3 * * root python3 /usr/local/bin/yd_search_queries.py >> /var/log/yd_queries/$(date +\%Y-\%m-\%d).log 2>&1H = {
"Authorization": f"Bearer {TOKEN}",
"Client-Login": LOGIN,
"Accept-Language": "ru",
"Content-Type": "application/json; charset=utf-8",
}
H_REPORT = {
**H,
"processingMode": "auto",
"skipReportHeader": "true",
"skipColumnHeader": "false",
"skipReportSummary": "true",
"returnMoneyInMicros": "false",
}| Что | URL |
|---|---|
| Кампании | https://api.direct.yandex.com/json/v5/campaigns |
| Группы объявлений | https://api.direct.yandex.com/json/v5/adgroups |
| Объявления | https://api.direct.yandex.com/json/v5/ads |
| Ключевые слова | https://api.direct.yandex.com/json/v5/keywords |
| Ретаргет-листы | https://api.direct.yandex.com/json/v5/retargetinglists |
| Audience targets | https://api.direct.yandex.com/json/v5/audiencetargets |
| Отчёты | https://api.direct.yandex.com/json/v5/reports |
| Аудитории (только GET) | https://api-audience.yandex.ru/v1/segments |
python setup_campaigns.pyСоздать 4 кампании в статусе SUSPENDED (на паузе для проверки)
python setup_groups.pyСоздать группы объявлений с автотаргетингом и гео
python setup_ads.pyСоздать по 5 объявлений на каждую кампанию
python setup_retargeting.pyСоздать ретаргет-листы и audience targets со ставками ≥20 руб
Добавить «Интересы и привычки» в группу rsya_konkurenti · проверить тексты · снять SUSPENDED с кампаний
python diag_campaigns.pyПроверить что всё активно, GoalId корректен, статусы ACCEPTED
Скопировать скрипты на VPS, добавить cron-задачи, проверить первый запуск
Выберите свою ситуацию, покажу, что подходит и сколько стоит.
Гайд про регистрацию и оплату Claude из России: текст со скриншотами, что делать, если не проходит карта.
Схематично: вопрос про доступ и ответ из гайда
Читаете и делаете сами, живой поддержки нет.
Схематично: прохождение урока
Вы собираете своё, я рядом: в Zoom с группой или лично.
Схематично: встреча в Zoom
Разработка и ведение под ваш процесс. Типовые сайты и боты лежат в услугах.
Схематично: выбор задачи
Гайды, уроки и шаблоны без живой поддержки, в своём темпе.
Регистрация в Claude из России: номер, почта, оплата и защита от бана.
Что внутри
Sub-агенты, hooks и MCP-серверы. 10 глав, доступ навсегда.
Что внутри
Лендинг, Telegram-бот и парсер данных на Claude Code. Без поддержки.
Что внутри
Заготовки для Claude Code, MCP и n8n, чтобы не собирать с нуля.
Что внутри
Практикум и менторство я веду сам. Группа идёт неделю, менторство один месяц.
Группа 8-10 человек в Zoom, 7 встреч по 2 часа. За неделю собираете бота, сайт и таблицу-CRM на своём сервере.
Что внутри
Четыре встречи по 2 часа за месяц на вашем проекте, всего 8 часов. Беру двух человек одновременно.
Что внутри
Если делать самому некогда, я собираю и веду систему за вас.
CRM, платежи и связка систем под ваш процесс. Стандартные боты и ИИ-агентов беру как услугу.
Что внутри
Помесячное ведение собранной системы: правки, новые сценарии, отчёт.
Что внутри
Напишите мне в Telegram: подскажу, с чего начать. Или оставьте заявку, я отвечу сам.