Получать и проверять CSV объявлений Keys.so из отчётов РСЯ и Яндекс Директа для исследования конкурентов. Использовать при работе с выгрузками Keys.so, не для подтверждения текущих показов или запуска рекламы.
Installs into .claude/skills of the current project.
Are you the author of Keysso Competitor Research?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hashgraph-online-keysso-competitor-research)
---
name: keysso-competitor-research
description: Получать и проверять CSV объявлений Keys.so из отчётов РСЯ и Яндекс Директа для исследования конкурентов. Использовать при работе с выгрузками Keys.so, не для подтверждения текущих показов или запуска рекламы.
---
# Исследование объявлений Keys.so
## Получение
1. Открой нужный отчёт в уже авторизованном браузере пользователя. Запиши постоянный адрес страницы отчёта, дату сбора, точный запрос, поля и регион фильтра, видимое число результатов и предел экспорта. Не восстанавливай неизвестные параметры по имени файла.
2. Возьми точный временный подписанный адрес CSV из этого отчёта и сначала попробуй открыть его в том же браузере. Если автоматическая навигация не сработала, проверь её фактическую ошибку и состояние страницы. В одном проверенном сеансе Comet возникал `ERR_BLOCKED_BY_CLIENT`, хотя прямое HTTPS-скачивание того же адреса работало; вручную скачанный в Comet файл совпал с ним по SHA-256. Это частный транспортный сбой, а не доказательство пустого отчёта или универсальное разрешение обходить защиту браузера.
3. Прямое HTTPS-скачивание допустимо только для **точного адреса, полученного из авторизованного отчёта**, после проверки узла и ответа. Не обходи предупреждения о сертификате, доступе или безопасности. Если есть браузерная и прямая копии, сравни их SHA-256; расхождение разберись до анализа. Не сохраняй подписанный адрес, куки, токены и ключи в навыке, проектных файлах, клиентской таблице, журналах или сообщениях.
## Проверка и интерпретация
- Сохрани исходный CSV без правки. Для каждого файла проверь размер и SHA-256, кодировку и BOM, разделитель, заголовки и их порядок, число и полноту строк, кавычки и переносы внутри полей. Сопоставь число строк с видимым результатом и лимитом экспорта; если они неизвестны, статус усечения оставь неизвестным. Особенности схемы фиксируй по фактическому файлу: в одном проверенном наборе РСЯ было 13 полей данных и лишняя пустая ячейка в заголовке, но это не универсальная схема Keys.so.
- Сохраняй происхождение каждой записи: файл, номер исходной строки, контрольную сумму, точные текст, URL и даты. Повторные номера объявлений и пересечения выгрузок не удаляй до проверки различий и не суммируй как уникальные объявления или показы.
- Для инвентаря страниц можно объединять адреса по домену и пути, но каждый полный целевой URL и каждый снимок содержимого сохраняй отдельно с временем и контрольной суммой. При разных рекламных параметрах не приписывай различия в телефоне, форме или предложении параметрам без повторной парной проверки того же URL: страница может меняться динамически.
- Сверяй исходный рекламный адрес с конечным адресом и содержимым снимка. Путь вроде `/razdel-imushchestva` не подтверждает услугу, если переадресация приводит на жилищные споры, заглушку или другую страницу; ставь отдельный статус расхождения и не переноси оффер из исходного URL в базу подтверждённых предложений.
- Разделяй дату выгрузки, «Обнаружено» и «Обновлено». Историческая запись и число встреч объявления парсером не подтверждают текущий показ, охват, затраты или эффективность рекламодателя.
- В отчёте «Объявления в РСЯ» поле `URL` означает целевую страницу рекламодателя, **не** площадку или страницу показа РСЯ. Параметры отслеживания в ссылке также не доказывают площадку. Адрес площадки утверждай только при отдельном источнике, явно содержащем это поле и происхождение наблюдения.
- Фильтр по слову или поисковой маске даёт сырой срез, а не список релевантных конкурентов и не доказательство показа по этой фразе. Проверяй текст объявления, затем целевую страницу для выводов о предложении и исполнителе; помечай непроверенные, спорные и подтверждённые записи разными статусами. Текстовые правила и выборочная ручная проверка не превращают весь файл в проверенный корпус.
- Если для тысяч страниц применён JEV или другой модельный скоринг, используй его для очередности, а не для автоматического удаления конкурентов. Сохраняй точный вход и его длину, версию модели, исходный снимок и оценку; отдельно проверяй низкие оценки на случайной и сложной выборке. Усечённый вход не позволяет исключить страницу даже при очень низком балле: семейный оффер может находиться после переданного фрагмента. Модельные цены, отзывы и УТП требуют сверки с полным текстом и точной цитатой.
- Не исключай запись только из-за общего текста объявления, если исходный поисковый запрос или точный путь целевого URL указывает на нужную услугу. Например, реклама с общим текстом о юридической компании может вести на отдельную страницу развода или алиментов. Верни такую запись на ручную проверку целевой страницы и исполнителя; проверенный URL не доказывает релевантность или качество содержимого сам по себе. При обнаружении такого пропуска пересмотри затронутый класс исключений один раз по связке `запрос → объявление → полный целевой URL`, сохрани прежние решения и поправь все зависимые счётчики/реестры.
- При разделении прямого семейного предложения и общего юридического маршрута оценивай объявление вместе с фактическим телом посадочной, а не название домена или рубрики сайта. Если объявление о разделе имущества ведёт на страницу про развод, имущество супругов, этапы сопровождения и цену этой услуги, это прямое семейное предложение, даже когда фирма в целом специализируется на недвижимости. Общий маршрут ставь лишь когда семейная услуга обозначена ссылкой, перечнем или побочным разделом без согласованного прямого предложения объявления и страницы. При найденной неверной границе один раз пересмотри затронутый класс решений и сохрани дельту, не запускай бесконечные новые выборки.
- На общей главной один пункт «семейные споры» в перечне направлений и общая форма обращения сами по себе не подтверждают прямой семейный оффер, даже если объявление семейное. Несколько пунктов вроде «развод, алименты, раздел имущества» в общем каталоге тоже остаются **названиями тем**, если с ними не связаны конкретные действия/состав, условия или собственный заказ семейной карточки; общую консультацию рядом не считай её собственным заказом. Для прямого статуса нужны такие семейные действия/условия на этой посадочной либо семейная карточка со своим заказом; профильную страницу по ссылке проверяй как отдельный снимок. Не записывай цитату отзыва, судебный результат или правовое объяснение в состав предлагаемой услуги: отделяй обещанные действия от доказательств и справочной статьи.
- Даже отдельный URL и заголовок «Семейные споры» вместе с общим приглашением на консультацию не образуют прямой оффер, если основной текст только объясняет нормы права и не обещает предметных действий по делу клиента. Проверяй содержание страницы, а не структуру адреса: справочную статью отмечай общим семейным маршрутом, если обращение к юристу возможно, и не выдумывай состав услуги из перечня регулируемых законом отношений.
- Перед решением «услуги нет» проверь по **всему** сохранённому тексту названия услуги и синонимы, включая меню, каталоги услуг и конец страницы. Совпадение только в навигации может означать общий маршрут к профильной странице, но не отсутствие услуги: не смешивай его с нерелевантным кейсом или случайным словом в статье. Если меняешь класс страницы, одновременно обнови связанные поля услуг, состава, цены, отзывов, контактов и цитат; прежние значения, противоречащие новому классу, делают запись непригодной к публикации. Проверяй точные фрагменты полного снимка и сохраняй дельту полей.
- Тип сайта сам по себе не исключает конкурента: агрегатор юристов, каталог специалистов или общий портал с купленным объявлением и профильной страницей алиментов, развода либо другой нужной услуги входит в платный корпус. Разделяй «кто рекламируется» и «есть ли на оплаченной посадочной прямое предложение»; перед статусом `other` перечитай заголовок, основной профильный раздел и все тематические вхождения полного снимка.
- После предварительного исключения объявлений проверь не только случайную стратифицированную часть исключённых, но и отдельную сложную выборку по смежным названиям услуги, типу консультации, профилю рекламодателя и целевому домену. В одном исследовании семейного права прямое предложение «семейного эксперта» с юридическим доменом и коллегией адвокатов было ошибочно исключено, потому что в тексте не было слов «юрист» и «адвокат». Найденные пропуски возвращай отдельным слоем ручных решений с точным исходным файлом, строкой, текстом и прежним классом; не переписывай сырой файл и не переклассифицируй весь массив по одному новому слову. Ноль ошибок в случайной выборке не доказывает отсутствия ошибок во всём исключённом массиве.
- Отделяй смысловую классификацию страницы от полного разбора её предложения. Для принятой рекламной страницы отдельно фиксируй услуги и ситуации, точный оффер, цену и состав либо явное «не указано на снимке», заявленные доказательства и отзывы, способы обращения, ограничения, дословную цитату со строками и конкретное исходное объявление. Проверяй соответствующие разделы по всему сохранённому тексту, включая шапку и конец, а также все вхождения цен, отзывов, доказательств, контактов и призывов; для спорной или короткой страницы читай её целиком. Линейное повторное чтение всех строк длинной страницы без содержательной причины не является отдельным условием приёмки. Пустые поля цены или контакта перед публикацией сверь с полным снимком: например, телефоны могут находиться в шапке страницы, а прайс — по отдельной ссылке. Число классифицированных страниц не называй числом полностью разобранных.
- При изменении класса уже разобранной страницы обновляй все зависимые поля услуг, состава, цены, доказательств, контактов, ограничения и цитаты, а не только метку и счётчики; сохраняй прежнюю версию и полевую дельту. Перед отрицательным решением просматривай также тематические ссылки во всём Markdown: извлечение, скрывающее ссылки ради краткости вывода, не доказывает отсутствие семейного маршрута. Агрегатор с профильной семейной страницей и заказом услуги остаётся конкурирующим предложением посредника; отделяй его бизнес-модель и отзывы отдельных исполнителей от юридической фирмы, но не исключай по типу организации.
В результате передавай неизменённые исходники и краткий журнал происхождения и проверок: источник, параметры, дата, схема, число строк, SHA-256, полнота экспорта, уровни подтверждения и ограничения выводов. Объём исследования и клиентские темы определяй из текущего задания, а не из предыдущего примера.