Поиск магазина под вашим контролем
Здесь описаны функции именно AlgoSearch: подключение каталога, ручное управление товарами, настройка релевантности, установка виджета и сбор событий.
Быстрый старт
- 01
Добавьте товары
Импортируйте YML-фид или создайте позиции вручную в разделе «Каталог».
- 02
Проверьте выдачу
Настройте порядок полей и категории в Relevance Lab.
- 03
Установите виджет
Скопируйте скрипт из раздела «Интеграция» на сайт магазина.
- 04
Следите за спросом
Обзор и аналитика показывают только события вашей рабочей области.
Каталог
YML-синхронизация понимает offer, category, vendor, цены, изображения и произвольные параметры. Ручные товары сохраняются отдельно и не удаляются при следующей синхронизации фида.
Кнопка «Настроить поля» открывает схему каталога текущей рабочей области. Там можно переименовать и упорядочить системные поля, выбрать состав ручной формы и таблицы, а также создать собственные строковые, числовые, логические и многострочные поля. Ключ собственного поля должен совпадать с именем param в YML или ключом attributes в API.
Релевантность
Поля можно добавлять, удалять и перетаскивать. Чем выше поле, тем важнее совпадение. Приоритетные категории выбираются из текущего индекса или создаются вручную; синонимы применяются двусторонне.
Виджет поиска
Оформление, состав карточки и поведение клика настраиваются в кабинете. В «Интеграции» укажите 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-сегмент с постоянным ключом и передавайте его в audience.segmentIds.
Условия могут учитывать запросы, выбранные категории, клики, корзины и покупки за период до 365 дней.
Для устойчивой истории между сессиями передавайте одинаковый непрозрачный audience.userId, не email и не телефон. AlgoSearch хранит его только в виде tenant-scoped SHA-256. Если ID нет, поведенческие условия вычисляются внутри текущего sessionId. Поле segment продолжает поддерживаться для обратной совместимости.
События и аналитика
События связывают поисковый запрос с действиями покупателя. Благодаря общей паре session_id и query_id в кабинете видно не только количество запросов, но и клики, корзины, покупки и выручку после поиска.
- 01
Поиск создаёт связь
SearchProducts записывает запрос автоматически и возвращает query_id. Повторно отправлять событие поиска не нужно.
- 02
Действия дополняют сессию
Показы, нулевая выдача, клики и корзина передаются с теми же session_id и query_id.
- 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.
Подтверждение покупки
Покупку нельзя считать достоверной, если она пришла напрямую из браузера. После успешной оплаты сформируйте payload на сервере магазина, подпишите его секретом рабочей области и отправьте в TrackPurchase.
- 01
Сохраните контекст
Передайте session_id и query_id из поиска в корзину и заказ.
- 02
Соберите оплаченный заказ
Укажите order_id, товары, итоговую выручку и трёхбуквенную валюту.
- 03
Подпишите данные
Вычислите HMAC-SHA256 от canonical payload и верните hex-строку.
- 04
Отправьте сразу
Время события должно попадать в окно ±5 минут от момента запроса.
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 дней. В разделе «Аналитика» можно выбрать собственный период и посмотреть воронку от поисковой сессии до покупки.
Открыть настройки интеграции →