Подключение к сайту
Чтобы MoodRec корректно работал с сайтом, необходимо обеспечить два условия:
- На сайте установлен SDK MoodRec — через него сервис взаимодействует с сайтом.
- События сайта передаются в формате ecommerce-событий — это нужно для корректной обработки и учёта действий пользователей в MoodRec.
Встраивание SDK на сайт
Чтобы встроить SDK MoodRec на сайт, добавьте код подключения. Код отображается при первом входе в сервис, также его можно найти в настройках проекта на вкладке Подключение:
<script src="https://demo.example.com/static/moodrec-tracker.js" data-token="ТОКЕН_ПРОЕКТА"></script>
| Параметр | Описание |
|---|---|
| Адрес скрипта | Адрес, по которому размещён SDK. Зависит от того, где развёрнут MoodRec: в примере указан условный домен demo.example.com, в рабочей интеграции будет адрес вашего сервиса |
data-token | Токен проекта, генерируется в настройках проекта на вкладке Подключение. Уникален для каждого проекта |
Код нужно добавить на каждую страницу сайта. Его можно вставить:
- между тегами
<head>и</head>, либо - между тегами
<body>и</body>.
Рекомендуется встраивать SDK через менеджер тегов, например Google Tag Manager или Яндекс Тег Менеджер.
Передача данных о пользователе
После инициализации библиотеки передайте информацию о пользователе:
document.addEventListener('moodrec-sdk-ready', () => {
MOODREC_SDK.setUserId({ id: USER_ID });
});
| Параметр | Описание |
|---|---|
USER_ID | Идентификатор пользователя — хэш телефона/email или внутренний ID в вашей платформе |
Вместо id можно передать email или phone — SDK сам вычислит хэш (setUserId({ email: EMAIL }) или setUserId({ phone: PHONE })).
Настройка событий
Для корректной работы сервиса задайте точное соответствие между событиями сайта и событиями сервиса. Только при настроенном соответствии событий рекомендательные модели могут в реальном времени менять выдачу в зависимости от действий пользователей.
MoodRec автоматически настроит соответствие событий, если на сайте они размечены как ecommerce (формат Google Analytics или Яндекс Метрики). В этом случае ничего дополнительно настраивать не нужно.
Если в вашей системе аналитики события имеют пользовательские названия, перенастройте их соответствие. Для этого перейдите в настройки, выберите ваш проект и откройте вкладку События:

После того, как SDK добавлен на сайт и события назначены, можно переходить к импорту продуктов.
Если у вас не настроены ecommerce-события, вы можете передавать данные о действиях пользователя напрямую. Для этого настройте собственную логику через API-вызов events/event.
Рекомендуем настроить ecommerce-разметку и использовать нативный способ, описанный выше.
Вывод рекомендаций на сайт
Сами рекомендации выводятся на сайт при помощи плейсментов. Способ интеграции плейсмента на сайт зависит от выбранного при создании метода подключения.
API-размещение
Если при создании выбран способ размещения через API, то плейсмент через запрос /catboss/getOffers возвращает на сайт список ID продуктов. Дальше вы сами решаете, где и как показывать эти продукты: в блоке «Похожие товары», в ленте «Часто покупают» или в любом другом месте, которое соответствует вашей бизнес-логике и выбранной модели рекомендаций.
Далее вы строите выдачу на сайте в два шага: получаете список ID из MoodRec и по этим ID запрашиваете актуальные данные о товарах в своём каталоге (название, цена, изображение), чтобы отрисовать карточки.
Предположим, вы настроили плейсмент и хотите разместить ленту с рекомендованными товарами на сайте. Вы можете реализовать это следующим образом:
function initPlacement(el, placement_id, context, limit){
// через SDK получаем список продуктов для рекомендаций
MOODREC_SDK.getRecommendation(placement_id, context, limit).then((recomData)=>{
if (recomData.recoms){
// собираем id в массив
const recomIds = recomData.recoms.map((item)=>{ return item.offer_id})
// запрашиваем актуальные данные по товарам с сайта и формируем карточки
getProductsFromSite(recomIds).then((items)=>{
items.forEach((item)=>{
// выводим карточки в нужный нам блок
el.innerHTML += buildProductItem(item);
})
})
}
})
}
В этом коде:
- получен список продуктов (
offer_id) через SDK сервиса; - по ID продукта запрошены актуальные данные по товарам (название, цена, изображение);
- карточки продуктов выведены в отдельном блоке.
В результате пользователь на сайте увидит ленту продуктов:
