#
🔌 Как создать рекомендательную API-кампанию
В этом гайде разберём, как создать API-кампанию в Gravity Field, которая будет рекомендовать товары к конкретному товару на странице. Такой сценарий часто используется на карточке товара (PDP) — чтобы показать похожие или сопутствующие товары.
Рекомендательные API-кампании позволяют возвращать персонализированные подборки товаров по запросу со стороны фронта. Это гибкий и мощный способ интеграции Gravity Field с мобильными приложениями, SPA и любыми кастомными интерфейсами.
Далее пошагово рассмотрим весь процесс — от интерфейса до запроса на /choose
.
#
1️⃣ Создание кампании
- Перейдите в раздел API кампании
- Нажмите Создать кампанию
- Укажите:
- Название кампании
- Тип кампании:
Recommendations
- Selector — идентификатор вызова из API (например,
pdp_recs
)
📌 Кампания с типом Recommendations будет активироваться вызовом метода /choose
с этим селектором.
#
2️⃣ Настройка сценария
- Перейдите к созданию сценария (Experience)
- Установите таргетинг:
- Тип страницы:
PRODUCT
- Тип страницы:
- Укажите шаблон (опционально)
- Добавьте рекомендательную стратегию:
- Можно использовать одну или несколько стратегий
- Поддерживаются алгоритмы:
Similar Items
,Affinity
,Popularity
и др. - Настройте динамические фильтры (например, исключение текущего SKU)
📚 Подробнее см.
#
3️⃣ Получение рекомендаций через API /choose
Для получения рекомендаций отправьте POST-запрос на:
POST https://evs.gravityfield.ai/ssapi/choose
Пример тела запроса:
{
"user": { "id": "638073ccfb53d530340043f2" },
"session": { "custom": "E4EE9F9C-72AC-4036-A3A6-F3874E779FC1" },
"context": {
"page": {
"type": "PRODUCT",
"data": ["123456"],
"location": "shop.ru/p/red_socks_123456/",
"lng": "MOW"
},
"device": {
"userAgent": "AliExpress/13.2",
"ip": "54.100.200.255"
},
"pageAttributes": {
"source": "mobileApp",
"geo": "Moscow",
"crm_segment": "loyal_buyers"
},
"user_time": "2024-08-14T17:28:31+02:00"
},
"selector": {
"names": ["pdp_recs"]
},
"options": {
"isImplicitPageview": true,
"returnAnalyticsMetadata": true,
"recsProductData": {
"skusOnly": true
}
}
}
📚 См. также API Choose
#
4️⃣ Отправка события взаимодействия /engagement
После отображения рекомендаций фиксируйте действия пользователя (например, клик по товару).
#
🔁 Зачем это нужно?
Вызов метода /engagement
необходим, чтобы:
- Отслеживать взаимодействия пользователей (клики, показы)
- Обеспечивать работу аналитики и отчётов
- Корректно считать метрики A/B тестов и стратегий
- Обучать рекомендательные модели
Если не отправлять engagement
, система не будет знать, какие рекомендации были интересны пользователю — и не сможет улучшать выдачу.
#
📥 Пример запроса
POST https://evs.gravityfield.ai/ssapi/engagement
{
"user": { "id": "638073ccfb53d530340043f2" },
"session": { "custom": "E4EE9F9C-72AC-4036-A3A6-F3874E779FC1" },
"context": {
"page": {
"type": "PRODUCT",
"data": ["123456"],
"location": "shop.ru/p/red_socks_123456/"
},
"device": {
"userAgent": "Mozilla/5.0",
"ip": "8.8.8.8"
}
},
"engagements": [
{
"type": "SLOT_CLICK",
"decisionId": "abc123:ver1:exp1:cam1",
"slotId": "abc123:ver1:exp1:cam1:slot001"
}
]
}
📚 См. также API Engagement 📚 Подробнее о SLOT_CLICK и других взаимодействиях
#
❓ FAQ
Q: Можно ли использовать разные стратегии для одного селектора?
A: Да. Укажите их в сценарии — Gravity сам выберет подходящую по контексту или fallback-алгоритму.
Q: Обязательно ли передавать IP и User-Agent?
A: Да, это влияет на гео-таргетинг и идентификацию устройства.
Q: Где посмотреть метрики кампании?
A: В разделе Отчёты → Кампании и Отчёты → Стратегии.
#
📎 Примеры и отладка
- Используйте
returnAnalyticsMetadata: true
, чтобы получитьdecisionId
иslotId
- Обязательно вызывайте
/engagement
после отображения рекомендаций — это критично для корректной аналитики