👋 Игорь, коротко и по-человечески
Сейчас у нас есть дашборд ЭкоСпроса (Cockpit), в котором живут боли клиентов (JTBD), продукты, офферы. Но мы не видим, что люди реально ищут в Яндексе и как эти поиски ложатся на нашу структуру.
Предлагаю добавить Search Intelligence Layer — слой, который:
🔍
Собирает поисковые запросы из Метрики, Директа и Wordstat
Не просто ключевые слова, а фразы, которые люди реально вбивают
🧩
Группирует в смысловые кластеры — например, «купить станок для дома» и «ткацкий станок купить недорого» = один кластер
Вместо тысячи отдельных фраз — 10-20 понятных тем
🎯
Привязывает к существующим JTBD-болям — какие поиски к какой боли относятся
«Боюсь не разобраться» = запросы про сложность, «Какой станок выбрать» = сравнения
🛤️
Показывает стадию клиента — он только ищет информацию или уже готов покупать
Problem aware vs Ready to buy — разные офферы нужны
🎁
Рекомендует, какой оффер и куда разместить — на основе данных
Для кластера «сравнение станков» → сравнительная страница + статья + реклама
💰
Считает приоритет (Opportunity Score) — на что обратить внимание в первую очередь
Где много трафика + хорошая динамика + высокое коммерческое намерение = делать сейчас
Проще говоря: сейчас ты заходишь в дашборд и видишь «3 JTBD-боли, 6 офферов, 19 кампаний». После внедрения ты будешь видеть «Вот что люди реально ищут, вот к какой боли это относится, вот что с этим делать, и вот где это разместить, чтобы получить конверсию».
🏗 Как Search Intelligence встраивается в SprosOS
Я.Метрика
→
Я.Директ
→
Wordstat
↓
Search Intelligence Layer
↓
Нормализация
→
Кластеризация
→
Скоринг
↓
Buyer Stage
↔
JTBD (существующие)
↔
Офферы (существующие)
↓
Рекомендации Surface
→
Cockpit
Analytics
Search Intelligence Layer работает между источниками данных (Метрика/Директ) и бизнес-сущностями (JTBD/Offers).
Он именно переводит рыночный сигнал в управленческое действие.
Что уже есть (не дублировать)
✅ 3 JTBD-боли с сигналами (24/18/15)
✅ 6 офферов в Матрице
✅ Коннектор Метрики (active, надо расширить)
✅ Коннектор Директа (deferred, надо перевести в active)
Что добавится
🆕 10-20 поисковых кластеров на старте
🆕 Связи кластер → JTBD, кластер → Offer
🆕 Скоринг (Opportunity Score) для приоритизации
🆕 Страница Search Intel в дашборде
👤 Кто что делает
🐺 Сигма
Таксономия кластеров, маппинг на JTBD, валидация scoring, дизайн дашборда
Продуктовая логика
💜 Агата
Модель данных, коннекторы, batch-импорт, API-ручки, страница Search Intel
БД + API + Фронт
👤 Игорь
Валидация buyer stage, качество кластеров, приоритеты, решения по офферам
Стратегия + решения
Критерии готовности MVP
8 таблиц в PostgreSQL развёрнуты
Директ active — 19 кампаний читаются
Метрика собирает поисковые фразы ежедневно
Cron-скрипт импорта настроен (1 раз/сутки)
API /api/search/clusters возвращает данные
Страница Search Intel в SprosOS (/analytics/search-intel)
3 JTBD имеют поисковые кластеры
Scoring model работает
Raw-данные живут 30 дней, агрегаты — навсегда
📊 Модель данных (8 таблиц)
Слой A. Сырые данные (хранить 14-30 дней)
| search_raw_import_batch | источник, payload, статус |
| search_raw_phrase | исходная фраза, источник, метаданные |
Слой B. Канонический словарь (навсегда)
| search_phrase | каноническая фраза, нормализация, хеш, статус (active|noise|out_of_scope) |
| search_phrase_variant | варианты написания, источник |
Слой C. Факты и метрики (агрегаты)
| search_fact_metrika | визиты, отказы, глубина, конверсии по дням |
| search_fact_direct | показы, клики, затраты, CTR, CPC по дням+кампании |
| search_fact_wordstat | месячные показы, сезонность, прогноз |
Слой D. Семантика и действия (самое важное)
| search_cluster | кластер + связь с JTBD + buyer stage + opportunity score + тренд |
| search_phrase_cluster_link | какая фраза в каком кластере |
| search_cluster_offer_link | какой кластер к какому офферу |
| search_offer_surface_recommendation | где размещать: лендинг / РСЯ / статья / sales |
Принцип: основные связи — на уровне кластеров, а не каждой фразы. Это уменьшает базу с N×M до N×k (где k=3-5 кластеров на фразу). Прямые связи фраза→сущность — только как override.
API-ручки (6 эндпоинтов)
GET /api/search/clusters
GET /api/search/clusters/:id
GET /api/search/phrases
GET /api/search/jtbd/:id
POST /api/search/clusters/link
PUT /api/search/clusters/score