AlgoSearchВ кабинет
AlgoSearch Platform

Поиск магазина под вашим контролем

Здесь описаны функции именно AlgoSearch: подключение каталога, ручное управление товарами, настройка релевантности, установка виджета и сбор событий.

Быстрый старт

  1. 01

    Добавьте товары

    Импортируйте YML-фид или создайте позиции вручную в разделе «Каталог».

  2. 02

    Проверьте выдачу

    Настройте порядок полей и категории в Relevance Lab.

  3. 03

    Установите виджет

    Скопируйте скрипт из раздела «Интеграция» на сайт магазина.

  4. 04

    Следите за спросом

    Обзор и аналитика показывают только события вашей рабочей области.

Каталог

YML-синхронизация понимает offer, category, vendor, цены, изображения и произвольные параметры. Ручные товары сохраняются отдельно и не удаляются при следующей синхронизации фида.

Кнопка «Настроить поля» открывает схему каталога текущей рабочей области. Там можно переименовать и упорядочить системные поля, выбрать состав ручной формы и таблицы, а также создать собственные строковые, числовые, логические и многострочные поля. Ключ собственного поля должен совпадать с именем param в YML или ключом attributes в API.

Каждая рабочая область имеет отдельный индекс. Товар с одинаковым ID в другой рабочей области не влияет на ваш каталог.

Релевантность

Поля можно добавлять, удалять и перетаскивать. Чем выше поле, тем важнее совпадение. Приоритетные категории выбираются из текущего индекса или создаются вручную; синонимы применяются двусторонне.

Виджет поиска

Оформление, состав карточки и поведение клика настраиваются в кабинете. В «Интеграции» укажите CSS-селектор кнопки поиска и разрешённые домены. Скрипт получает идентификатор только вашей рабочей области.

Персонализация выдачи

Аудитория

Каждый вызов SearchProducts может передать профиль пользователя: внешний ID, пол, возраст, произвольные атрибуты и готовые сегменты вашей CRM/CDP. AlgoSearch сопоставляет этот контекст с активными аудиториями и применяет связанные правила мерчендайзинга.

await searchClient.searchProducts({
  workspaceId: 'workspace-uuid',
  sessionId: 'session-uuid',
  query: 'беговые кроссовки',
  audience: {
    userId: 'customer-42',
    gender: 'female',
    age: 31,
    attributes: {
      loyalty_tier: 'gold',
      city: 'Москва'
    },
    segmentIds: ['vip-from-cdp']
  }
})
Сегменты из API

Создайте API-сегмент с постоянным ключом и передавайте его в audience.segmentIds.

Сегменты по поведению

Условия могут учитывать запросы, выбранные категории, клики, корзины и покупки за период до 365 дней.

Для устойчивой истории между сессиями передавайте одинаковый непрозрачный audience.userId, не email и не телефон. AlgoSearch хранит его только в виде tenant-scoped SHA-256. Если ID нет, поведенческие условия вычисляются внутри текущего sessionId. Поле segment продолжает поддерживаться для обратной совместимости.

От запроса до покупки

События и аналитика

Виджет отправляет события автоматически

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

  1. 01

    Поиск создаёт связь

    SearchProducts записывает запрос автоматически и возвращает query_id. Повторно отправлять событие поиска не нужно.

  2. 02

    Действия дополняют сессию

    Показы, нулевая выдача, клики и корзина передаются с теми же session_id и query_id.

  3. 03

    Покупка подтверждает результат

    После оплаты backend магазина подписывает заказ и отправляет его отдельным защищённым запросом.

Что собирается автоматически

widget_open

Открытие виджета

Показывает, сколько посетителей начали взаимодействовать с поиском.

results_shown · no_results

Показ результатов

Фиксирует успешную выдачу или запрос, по которому ничего не найдено.

result_click

Клик по товару

Передаёт товар и его позицию в выдаче для расчёта CTR.

add_to_cart

Добавление в корзину

Связывает товар и количество с исходным поисковым запросом.

Важно: само событие поиска создаётся вызовом SearchProducts. Endpoint TrackEvent принимает только действия после поиска и открытие виджета.

Если у вас собственный frontend

Для клика или добавления в корзину вызовите TrackEvent. У каждого события должен быть новый eventId, а queryId обязан относиться к этой же поисковой сессии.

await fetch(`${API_URL}/algosearch.v1.SearchService/TrackEvent`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    workspaceId: 'workspace-uuid',
    type: 'EVENT_TYPE_RESULT_CLICK',
    eventId: crypto.randomUUID(),
    sessionId,
    queryId,
    productId: 'chair-104',
    position: 3
  })
})

Запрос выполняется с домена, добавленного в список разрешённых origins. Для события корзины замените тип на EVENT_TYPE_ADD_TO_CART и передайте quantity.

Только с backend магазина

Подтверждение покупки

Покупку нельзя считать достоверной, если она пришла напрямую из браузера. После успешной оплаты сформируйте payload на сервере магазина, подпишите его секретом рабочей области и отправьте в TrackPurchase.

  1. 01

    Сохраните контекст

    Передайте session_id и query_id из поиска в корзину и заказ.

  2. 02

    Соберите оплаченный заказ

    Укажите order_id, товары, итоговую выручку и трёхбуквенную валюту.

  3. 03

    Подпишите данные

    Вычислите HMAC-SHA256 от canonical payload и верните hex-строку.

  4. 04

    Отправьте сразу

    Время события должно попадать в окно ±5 минут от момента запроса.

Пример payload
POST /algosearch.v1.SearchService/TrackPurchase
{
  "workspaceId": "workspace-uuid",
  "eventId": "purchase-event-uuid",
  "orderId": "ORDER-2048",
  "sessionId": "search-session-uuid",
  "queryId": "query-uuid",
  "productIds": ["chair-104"],
  "revenue": 68900.00,
  "currency": "RUB",
  "occurredAtUnix": 1760000000,
  "signature": "hex-encoded-hmac-sha256"
}
Строка для подписи
v1
{workspace_id}
{occurred_at_unix}
{event_id}
{order_id}
{session_id}
{query_id}
{revenue с двумя знаками после запятой}
{CURRENCY}
{product_id через запятую}
  • Секрет остаётся на сервереНикогда не добавляйте signing secret в JavaScript, HTML или настройки виджета.
  • Повторы безопасныТот же event_id и order_id вернёт duplicate. Изменённый повтор будет отклонён.
  • Сессия проверяетсяquery_id должен существовать и принадлежать переданному session_id.

Что появится в кабинете

Спрос

Поиски и запросы без результатов

Вовлечение

Клики, CTR и сессии с корзиной

Продажи

Покупки, конверсия и выручка

Запросы

Популярные и проблемные формулировки

На странице «Обзор» показана активность за последние 24 часа и запросы без результатов за 7 дней. В разделе «Аналитика» можно выбрать собственный период и посмотреть воронку от поисковой сессии до покупки.

Открыть настройки интеграции →