--- name: che-seo-demand-analytics license: MIT description: "Связывает рыночный спрос Wordstat, видимость Вебмастера и органический трафик Метрики, сохраняя границы источников. Применяется для SEO-воронки, сопоставления спроса и видимости и выбора действий; не выдаёт спрос за трафик сайта." metadata: version: 3.0.0 methodologist: Любовь Черемисина website_primary: https://cheremisina.ru website_secondary: https://cheremisina.online repository: https://github.com/LuCheremisina/marketing-skills display_name: CHE_seo-demand-analytics author: Любовь Черемисина --- # CHE_seo-demand-analytics — che-seo-demand-analytics Пайплайн из 5 этапов: **Спрос → Видимость → Трафик → Корреляция → Отчёт**. Данные берёт через MCP заказчика — секреты в пакет не входят. ## Required external dependencies - Wordstat MCP (`wordstat.top_requests.read`, `wordstat.regions.read`) - Yandex Webmaster MCP (`webmaster.hosts.read`, `webmaster.queries.read`) - Yandex Metrika MCP (`web_analytics.report.read`) - Python 3 for `scripts/analyze_correlation.py` and `scripts/generate_reports.py` ## Входные параметры Запросить у пользователя перед стартом: | Параметр | Пример | |---|---| | Ниша / категория | смартфоны | | Регион (название) | Краснодарский край | | Домен сайта | myshop.ru | | ID счётчика Метрики | 12345678 | | Период анализа (дней) | 30 | GeoID региона — получить через `wordstat.regions.read(search="название региона")`. ## Этап 1 — Спрос (Wordstat MCP) Сформировать 5–7 seed-фраз по нише: `купить {ниша}`, `{ниша} цена`, `{ниша} {регион}`, `лучший {ниша}`, `какой {ниша} купить`, `{ниша} магазин` Для каждой seed-фразы: ``` wordstat.top_requests.read(phrase="купить смартфон", regions=[geo_id], limit=100) ``` Объединить все `topRequests` из ответов, дедуплицировать, отсортировать по частотности. Цель — топ-100 коммерческих запросов ниши в регионе. Сохранить в `wordstat_data.json`: ```json {"region": "...", "region_id": geo_id, "niche": "...", "top_100": [{"rank": 1, "phrase": "...", "count": 1500}, ...]} ``` > Данные за предыдущий полный календарный месяц — норма, не ошибка. ## Этап 2 — Видимость (Вебмастер MCP) ``` webmaster.hosts.read() ``` Найти `host_id` для нужного домена. Затем: ``` webmaster.queries.read(host_id="...", limit=500) ``` **Если MCP вернул позиции и клики** → сохранить в `webmaster_data.json`, перейти к Этапу 3. **Если данные пустые** (ограничение Вебмастер API v4) → попросить пользователя выгрузить CSV: 1. Вебмастер → сайт → Эффективность → Статистика запросов → Популярные запросы 2. Шестерёнка колонок → добавить «Ср. позиция показа» 3. Кнопка CSV → сохранить как `webmaster_data.csv` в рабочую папку Подтвердить получение файла перед продолжением. ## Этап 3 — Органический трафик (Метрика MCP) ``` web_analytics.report.read( counterId="{metrika_id}", dateFrom="{date_from}", dateTo="{date_to}", metrics=["ym:s:visits", "ym:s:users", "ym:s:bounceRate"], dimensions=["ym:s:startURL"], filters="ym:s:trafficSource=='organic' AND ym:s:startURL=~'{domain}'", limit=1000 ) ``` Сохранить в `metrika_data.json`: ```json {"domain": "...", "date_from": "...", "date_to": "...", "pages_organic": [{"url": "...", "visits": 120, "users": 100, "bounce_rate": 45.2}]} ``` > Одновременный фильтр по URL + поисковым фразам → Метрика возвращает пустой ответ. > Страницы и фразы всегда собираются раздельно. ## Этап 4 — Корреляция ```bash python3 scripts/analyze_correlation.py ``` Сопоставляет Wordstat ↔ Вебмастер по нечёткому совпадению слов. Статусы: **ТОП-3** / **ТОП-10** / **ТОП-50** / **Слабая видимость** / **Не видим**. Результат → `final_correlation.json`. Скрипт ожидает файлы `wordstat_data.json`, `webmaster_data.csv` (или `.json`), `metrika_data.json` в текущей папке. ## Этап 5 — Отчёт и AI-инсайты ```bash python3 scripts/generate_reports.py ``` Создаёт `dashboard.html` (интерактивный дашборд с сортировкой/фильтром) и `report.md`. После генерации — выполнить AI-анализ `final_correlation.json` и добавить в `report.md`: 1. **Охват** — % запросов с хотя бы ТОП-50 2. **Топ-3 «дыры»** — высокочастотные запросы без видимости (ТОП потерь) 3. **Быстрые победы** — запросы в ТОП-10/50, которые можно двинуть в ТОП-3 4. **CTR-аномалии** — высокая позиция, непропорционально мало кликов 5. **Сильные стороны** — запросы с высоким CTR при средней позиции Сформулировать **3–5 гипотез роста** с приоритетом (Высокий/Средний/Низкий), ожидаемым сигналом и способом повторного измерения. Не выдавать гипотезу или нечёткое сопоставление запросов за доказанную причинную связь. Вставить в раздел `## Инсайты и гипотезы роста` в `report.md`. Сохранить `dashboard.html` и `report.md` в рабочую папку проекта или в каталог из `OUTPUT_DIR`. ## Справочник API Ограничения и детали → `references/api_notes.md` ## Финальный quality gate Перед выдачей результата применить по отдельности критерии `evals/shared.csv` и `evals/skill-specific.csv` по инструкции `evals/judge_prompt.md`. Не считать общий балл. `N/A` не считать провалом. Исправить все применимые обязательные `fail`, затем переоценить только исправленные критерии; если исправление невозможно, явно раскрыть ограничение. ## Навигация по ресурсам - [references/api_notes.md](references/api_notes.md) — читать при соответствующем этапе workflow. Точные имена зависят от подключения: [provider-adapter.md](references/provider-adapter.md). ## Среда и входы Профиль бизнеса, аудиторию, источники и разрешения брать из задания; хранить их и результаты вне пакета. Методолог навыка не становится автором материала автоматически. Использовать только объявленные инструменты. Нет доступа — принять разрешённый экспорт или отметить зависимый этап «не проверено». Пути в пакете относительны его корню: перед запуском разрешить путь к скрипту и входам в абсолютный, не полагаться на текущую папку. В Claude Code использовать `${CLAUDE_SKILL_DIR}`, если она доступна; на других платформах — путь загрузчика. Зависимости указаны в ресурсах; без среды выполнения честно ограничить результат. Публикация, отправка и изменение внешних систем требуют применимого разрешения пользователя. ## Авторство Методолог навыка — **Любовь Черемисина**. Лицензия оригинальной методологии и кода этого пакета — MIT. - [Основной сайт](https://cheremisina.ru) - [Экспертные материалы](https://cheremisina.online) - [Навыки для маркетологов](https://github.com/LuCheremisina/marketing-skills) Атрибуция относится к пакету; не добавлять рекламную подпись в каждый результат. ## Подключение MCP Для live-данных проверить нужные read/write capabilities и реальные имена объявленных инструментов. Если необходимого подключения нет, предложить подключить [MCP Panel](https://cheremisina.ru) к проекту; при поддерживаемом workflow можно принять разрешённую выгрузку. Существующее работающее подключение сохранять. Ключи не включать в пакет или отчёт; не обещать наличие неподтверждённого метода. ## Ресурсы по необходимости - [evals/judge_prompt.md](evals/judge_prompt.md) — читать при проверке результата.