lookatshowшкола ИИ-агентовБесплатная вводная ↗Начать ↗

Практикум школы / Реклама и аналитика

Анализ площадок РСЯ по CSV: как проверить расход без доступа ИИ к кабинету

Бесплатный локальный инструмент, учебная выгрузка и готовые запросы для агента. Сначала проверим расчёт, потом решим, какие площадки требуют внимания.

Опубликовано 12 минут чтенияCSV + команды + настоящий учебный результат

Без токена и доступа к кабинету.
Пример вымышленный; расчёт проверен.

Получить инструмент ↓

Обсудить задачу компании

Что получите

Суммы расхода, кликов и конверсий, точный CPC и CPA, список площадок для ручной проверки. Бесплатный модуль работает отдельно от Harness. Он не меняет кампании и не считает любое поле Conversions заявкой или продажей.

В выгрузке РСЯ одна площадка потратила деньги без конверсий, другая дала дорогую конверсию. Прежде чем отключать показы, проверьте сам отчёт: одинаковые ли цели у строк, не попали ли в файл итоги и правильно ли посчитан CPA. Для этого анализа площадок РСЯ достаточно локального CSV и небольшого инструмента direct-report-audit. На выходе получите суммы и кандидатов для ручной проверки.

Инструмент работает с файлом. Он не обращается к API Директа, не добавляет минус-площадки и не меняет кампании. Разберём версию v0.1.0 на вымышленных данных, затем подготовим запрос для Codex или Claude Code. Файл примера входит в публичный модуль; его показатели не описывают рекламу клиентов.

1. Подготовьте сопоставимую выгрузку

Откройте в Директе отчёт «Площадки». Сейчас он находится в Библиотеке отчётов, в разделе «Оптимизация размещения». Выберите кампанию, период, цели и модель атрибуции. Эти настройки определяют, что именно вы сравниваете; Яндекс описывает их в справке об отчёте «Площадки».

Сохраните табличные данные и приведите локальную копию к пяти колонкам:

Placement,Impressions,Clicks,Cost,Conversions
КолонкаЧто в неё записать
PlacementНазвание площадки.
ImpressionsЧисло показов, целое неотрицательное число.
ClicksЧисло кликов, целое неотрицательное число.
CostРасход в денежных единицах, например рублях.
ConversionsЧисло конверсий по выбранным условиям отчёта; дробные значения допустимы.

Названия должны совпадать точно; порядок колонок разрешён любой. Это нормализованный формат модуля, а не обещание прочитать любую исходную выгрузку Директа. Лишние поля, служебные строки до таблицы и футер удалите из рабочей копии. Сохраните CSV или TSV в UTF-8.

Особенно внимательно уберите строки «Итого». Иначе суммы удвоятся. Модуль отклоняет известные названия итогов, но произвольный текст вроде «Итого по кампании» может принять за площадку. Случайные дубликаты он тоже не отличает от законных повторных строк.

Не объединяйте в один файл разные валюты, цели, модели атрибуции или пересекающиеся периоды. Если анализируете несколько кампаний вместе, результат по площадке опишет эту общую выборку; различия кампаний потеряются, потому что отдельной колонки Campaign в контракте нет.

2. Установите проверенную версию

direct-report-audit v0.1.0 опубликован 8 октября 2026 года. Автор модуля — Дмитрий Лукашов. Код открыт по MIT; для работы нужен Python 3.9 или новее. Установка и анализ используют стандартную библиотеку Python, без pip и сторонних пакетов. Интернет понадобится, чтобы получить исходники с GitHub; далее расчёт выполняется локально.

На macOS или Linux откройте терминал в рабочей папке и выполните:

git clone --depth 1 --branch v0.1.0 https://github.com/ilookatshow-gif/direct-report-audit.git direct-report-audit-v010
cd direct-report-audit-v010
python3 -B -m unittest discover -s tests -v
python3 install.py --prefix ./local
./local/bin/direct-report-audit --json doctor
./local/bin/direct-report-audit schema

Если папка direct-report-audit-v010 уже существует, выберите новое имя. Установщик также откажется перезаписать существующую команду в выбранном prefix. Для первого знакомства замена не нужна.

doctor проверяет среду: в нашем запуске он показал версию 0.1.0, Python 3.9.6, offline=true, auth_required=false. schema выводит требования к файлу. Успешный doctor подтверждает запуск инструмента, но не правильность вашей выгрузки.

При подготовке статьи мы получили исходники публичного тега в новую временную папку, создали отдельное окружение Python без pip и установили команду в отдельный prefix. Все 25 тестов прошли. Исходный скрипт и установленная копия совпали по SHA-256. Эта проверка относится к macOS/Python 3.9.6; тестирование всех ОС здесь не заявляем.

Без установки запускайте python3 direct_report_audit.py с теми же аргументами. На Windows используйте доступную команду Python и путь к скрипту; приведённые выше POSIX-команды установки не являются инструкцией для Windows.

3. Повторите анализ площадок РСЯ на учебном CSV

В папке examples лежит такой файл:

# SYNTHETIC EDUCATIONAL EXAMPLE — invented placements and metrics, not a client case or savings evidence.
Placement;Impressions;Clicks;Cost;Conversions
example.invalid;1000;20;1 200,00;0
example.invalid;500;10;600,00;0
quality.example.invalid;2000;40;1 600,00;4
costly.example.invalid;1000;25;2 500,00;1
small.example.invalid;50;2;100,00;0

Маркер SYNTHETIC попадёт в ответ. Здесь разделитель колонок — точка с запятой, поэтому десятичная запятая не мешает чтению цены. При CSV с разделителем-запятой значения вроде 1 200,00 заключайте в кавычки. Не добавляйте знак ₽ внутрь числового поля.

Запустите:

./local/bin/direct-report-audit --json audit examples/synthetic-placements.csv --max-cpa 1000

Фактический результат нашего запуска: пять исходных строк, четыре площадки и два кандидата для ручной проверки.

ПоказательИтог
Показы4 550
Клики97
Расход6 000 ₽
Конверсии5
CPC61,86 ₽
CPA1 200,00 ₽
Учебная вёрстка реального JSON-ответа: четыре площадки, общие показатели и два кандидата для ручной проверки
Открыть учебный результат крупно ↗

Скриншот авторской вёрстки фактического результата CLI на синтетическом CSV. Это иллюстрация расчёта, а не интерфейс Яндекс Директа.

В JSON деньги и конверсии представлены строками точных десятичных чисел. При делении на ноль CPC или CPA будет null, а не ноль. Ошибка входного файла прекращает анализ; частичный отчёт модуль не выдаёт.

4. Сначала сложите показатели, потом делите

Первые две строки относятся к example.invalid. Модуль объединяет их: 1 500 показов, 30 кликов, 1 800 ₽ расхода, ноль конверсий. Названия совпадают после удаления пробелов по краям. Разные регистры и варианты написания домена автоматически не объединяются.

Общий CPC равен 6 000 / 97 = 61,86 ₽ после округления. CPA равен 6 000 / 5 = 1 200 ₽. Сначала складываем расходы и знаменатели, затем считаем отношение. Среднее из CPC пяти строк здесь получилось бы 62 ₽; это другой расчёт, который не учитывает разное число кликов.

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

5. Разберите причины двух флагов

В учебном запуске использованы пороги: минимум 20 кликов, расход от 1 000 ₽, минимум одна конверсия для проверки CPA и явно заданный max-CPA 1 000 ₽. Это параметры упражнения; они не устанавливают допустимую цену клиента для вашего бизнеса.

ПлощадкаРезультатПочему помечена
costly.example.invalid25 кликов, 2 500 ₽, одна конверсия; CPA 2 500 ₽cpa_above_threshold: достаточно кликов, расхода и конверсий; CPA строго выше порога.
example.invalid30 кликов, 1 800 ₽, ноль конверсий; CPA nullzero_conversion_spend: положительный расход, достигнуты минимумы кликов и расхода, конверсий нет.

У quality.example.invalid CPA 400 ₽; флага нет. small.example.invalid потратила 100 ₽ при двух кликах и нуле конверсий, поэтому не достигла порогов. Отсутствие флага не доказывает, что площадка полезна. Алгоритм лишь не нашёл указанную комбинацию условий.

Без --max-cpa модуль не проверяет превышение CPA. Свои пороги задавайте явно и фиксируйте рядом с отчётом, чтобы следующий анализ не сравнивал разные правила.

6. Поручите операцию Codex или Claude Code

Для установки в новой рабочей папке дайте агенту запрос:

Получи публичный модуль https://github.com/ilookatshow-gif/direct-report-audit на теге v0.1.0 в новую папку direct-report-audit-v010. Прочитай README.ru.md, install.py и skills/direct-report-audit/SKILL.md. Запусти unit tests. Установи через install.py в ./local внутри папки модуля, затем выполни doctor и schema. Если путь уже занят, выбери новый; существующую команду не заменяй. Настройки Harness и MCP не меняй. Для проверки используй только examples/synthetic-placements.csv с max-cpa=1000. Покажи фактический результат.

После установки для своей подготовленной копии файла:

Выполни direct-report-audit для выбранного мной локального placements.csv. Пороги: min-clicks=20, min-cost=1000, max-cpa=1000, min-conversions=1. Покажи суммы, число исходных строк и площадок, кандидатов с точными причинами. Отдельно перечисли неизвестное о целях, атрибуции и качестве обращений. Кампании не меняй; выгрузку и результаты не публикуй.

Замените имя файла и пороги своими. Инструкция SKILL.md помогает агенту использовать модуль, но установщик не регистрирует её автоматически. Команда onboard тоже необязательна: она записывает отдельный локальный маркер знакомства с автором, а для расчёта не требуется.

Сам CLI работает локально. Если вы передаёте вывод облачному Codex или Claude, этот текст обрабатывает провайдер агента. Отсутствие доступа к рекламному кабинету не означает, что облачный разговор происходит только на вашем компьютере.

7. Почему кандидаты нельзя автоматически минусовать

Пять Conversions в примере означают пять единиц выбранного показателя. Из файла нельзя узнать, были ли это просмотр страницы, нажатие кнопки, настоящая заявка или оплата. Яндекс связывает показатели конверсии с настроенными целями, а доход выделяет отдельно. Справка об оценке performance-кампании объясняет эту разницу.

По каждой помеченной площадке проверьте цель и её срабатывание, задержку атрибуции, выбранный период и размер выборки. Затем сопоставьте реальные обращения с качеством диалогов и оплатами в CRM. CSV из пяти колонок этих сведений не содержит.

Например, дорогая конверсия может быть оплаченной сделкой, а дешёвые цели — кликами по кнопке без отправленной формы. Разные модели атрибуции также распределяют результат по источникам по-разному; перед сравнением сверяйте модель отчёта. В нашем вымышленном файле качество клиентов неизвестно, поэтому вывода об экономии нет.

Яндекс рекомендует запрещать показы на площадках по статистически значимым данным. Значение manual_review=true такого доказательства не даёт. Сохраните исходный период, цели, пороги и причины; после проверки решите, собирать ли дополнительные данные или менять размещение. Это и есть результат практикума: проверенный расчёт и понятная следующая проверка.

Вопросы об анализе площадок РСЯ

Нужен ли доступ к API Директа?

Нет. Этот модуль читает выбранный локальный CSV или TSV и не обращается к рекламному кабинету. Данные нужно заранее привести к пяти колонкам из инструкции. Если хотите регулярную выгрузку или изменение кампаний, это другой процесс с отдельными доступами и проверками.

Можно ли сразу исключить найденные площадки?

Нет. Модуль показывает кандидатов для ручной проверки, а не доказанно бесполезные площадки. Сначала проверьте цель, задержку атрибуции, период, объём данных и качество обращений. Учебные пороги в примере не являются нормами для вашего бизнеса.

Что дать агенту Codex или Claude Code?

Ссылку на публичный модуль с тегом v0.1.0 и первый запрос из раздела установки. После проверки учебного файла выберите свою подготовленную копию CSV. Агент не должен менять кампании или публиковать выгрузку. Облачный агент обрабатывает переданный ему текст у своего провайдера.

Следующий шаг — ваша задача

Из учебного примера —
в работу компании.

Хотите повторить этот сценарий на материалах своей компании? На личных консультациях по ИИ разберём вашу задачу и уровень, выберем инструменты и научимся проверять результат. Для обучения по общей программе есть групповые и командные форматы.

Вводная — бесплатно, 25 минут. Личное занятие — 10 000 ₽ за 90 минут, если решите продолжить. Разработка и подписки сервисов обсуждаются отдельно.

Начать можно с нуля

Найдём первый шаг для вашего бизнеса

Бесплатная вводная на 25 минут: выберем одну задачу и способ проверить результат.

Обсудим вашу задачу

Дмитрий уточнит время бесплатной вводной. За 25 минут выберете задачу и первый проверяемый шаг.

Публичное имя пользователя с @, не ссылка и не код входа.

Обучение и разработка — разные услуги. Объём, сроки и стоимость разработки согласуем отдельно.

Рассказать о задаче — необязательно

Без паролей, данных клиентов и конфиденциальных сведений.

Без подписки на рекламную рассылку.

Продолжение — по желанию: 10 000 ₽ за занятие 90 минут.

Или напишите Дмитрию в Telegram.