Параметры подключения
Эндпоинты, заголовки, ограничения
Метод
POST
Production URL
https://tracking-app.diginetica.net/event
Test URL
https://tracking-dev.diginetica.net/event
Content-Type
application/json;charset=UTF-8
Формат тела
JSON, одно событие на запрос
Пропускная способность
до 500 событий в секунду*
*Внутренний операционный лимит со стороны Diginetica. В Swagger явно не задан — точное значение уточняйте у команды.
Тестовый стенд не сохраняет данные.
Используйте его исключительно для проверки корректности формата запроса. Ожидаемый ответ —
Используйте его исключительно для проверки корректности формата запроса. Ожидаемый ответ —
200 при корректном запросе или код ошибки при некорректном.
Никакие события на тестовом стенде в аналитику не попадают.
Коды ответа:
200Успех
400Ошибочный запрос
403Сайт заблокирован
500Внутренняя ошибка
504Таймаут ответа
Базовые параметры запроса
Присутствуют во всех событиях
Маркеры обязательности. В этом документе
req отмечает поля, обязательные по продуктовой логике для конкретного типа события. Строго по Swagger у POST /event обязательны только пять полей: eventType, apiKey, sessionId, userGUID, channel. Все остальные req-метки в этом документе — продуктовые требования, обычно помечены req* (в Swagger они опциональны).
| Поле | Тип | Описание |
|---|---|---|
| eventTypereq | string | Тип события |
| apiKeyreq | string | Ключ клиента (APIKEY) |
| sessionIdreq | string |
ID сессии пользователя. Уникален для каждой сессии. Таймаут — 30 минут бездействия. Пример генерации: при старте сессии создайте UUID v4 и сохраните в sessionStorage. При истечении 30 минут бездействия — сгенерируйте новый. |
| userGUIDreq | string |
Постоянный идентификатор устройства/браузера пользователя. Хранится в cookie (Web) или локальном хранилище (App). Срок хранения — 1 год. Макс. 64 символа. Формат: 0:<TIMESTAMP_base36>:<UUID>Пример генерации: при первом визите проверьте наличие cookie userGUID. Если нет — сгенерируйте: префикс 0: + текущий timestamp в base36 + : + UUID v4. Запишите в cookie с max-age=31536000 (1 год). При каждом следующем визите читайте из cookie.Пример значения: 0:kzmrfk1k:[UUID]
|
| viewGUIDreq* | string |
*По требованию продукта обязательно; в Swagger поле помечено как опциональное. Идентификатор просмотра страницы. Генерируется при каждой загрузке страницы как UUID v4. Одинаков для всех событий в рамках одного просмотра — меняется при переходе на новую страницу или при обновлении текущей. Пример: сгенерируйте UUID v4 при монтировании страницы и передавайте его во всех событиях до следующей навигации или перезагрузки. |
| regionIdreq* | string | *По требованию продукта обязательно; в Swagger поле помечено как опциональное. ID региона (регистр важен!). Совпадает с ID из настроек дашборда. |
| channelreq | string | WEB — десктоп · WEB_MOBILE — мобильный браузер · MOBILE_APP — приложение |
| location | string | URL текущей страницы (для Web — обязательно). Для App — deeplink или название экрана приложения (например, "screen:home", "screen:product_card"). |
| referer | string | URL предыдущей страницы (для Web — обязательно; для App — опционально) |
| userId | string | ID залогиненного пользователя. Используется для персонализации. Может быть пустым. |
Значения поля channel:
WEBДесктопная версия сайта
WEB_MOBILEМобильная версия сайта
MOBILE_APPМобильное приложение
Главная страница
HOME_PAGE_VIEW
HOME_PAGE_VIEW
Поведенческое
Отправляется при посещении главной страницы.
json
{
"eventType": "HOME_PAGE_VIEW",
"sessionId": "[UUID]",
"location": "http://example.com/home",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"regionId": "msk",
"viewGUID": "[UUID]",
"channel": "MOBILE_APP"
}
Карточка товара
PRODUCT_VIEW
Отправляется при любом типе перехода — из каталога, поиска, рекламы. Важен факт посещения страницы.
PRODUCT_VIEW
Поведенческое
| Поле | Тип | Описание |
|---|---|---|
| productIdreq* | string | ID товара из фида |
| productNamereq* | string | Название товара |
| isFromRedirectreq* | string | true — попал по редиректу из поиска Передавать как строку "true" или "false". |
| availabilityreq* | boolean | Доступность товара |
json
{
"eventType": "PRODUCT_VIEW",
"apiKey": "APIKEY",
"sessionId": "[UUID]",
"location": "http://example.com/item/100234",
"referer": "https://example.com/",
"userGUID": "0:kzmrfk1k:[UUID]",
"regionId": "msk",
"viewGUID": "[UUID]",
"channel": "MOBILE_APP",
"availability": true,
"productId": "100234",
"productName": "Ноутбук Dell",
"isFromRedirect": "true"
}
Страница поиска
SEARCH_EVENT
Важные правила:
- Не отправлять при пустом запросе (
/search/?q=) - Отправлять только для запросов длиной 3+ символа
- Отправлять только один раз — не при пагинации, скролле и применении фильтров. URL не должен содержать параметры фильтрации (например,
/filter/material/sizeили?color=red&size=xl) - Передавать корректные оригинальный и исправленный запросы
- Для нулевого запроса (нет товаров):
pageProducts: [] - Для редиректа:
pageProducts: ["redirect"]
SEARCH_EVENT
Аналитическое
| Поле | Тип | Описание |
|---|---|---|
| searchTermreq* | string | Запрос после исправления (значение correction из API) |
| originalSearchTermreq* | string | Оригинальный запрос пользователя |
| pageProductsreq* | string[] | offer_id товаров на странице |
| anyQueryWorkedreq* | string | true если originalSearchTerm ≠ searchTerm Передавать как строку "true" или "false". |
| isZeroQueryreq* | string | Значение поля zeroQueries из ответа API Передавать как строку "true" или "false". |
| isFromRedirectreq* | string | true — попал на страницу по редиректу Передавать как строку "true" или "false". |
| pageNumber | integer | Номер страницы (почти всегда "1") |
json
{
"eventType": "SEARCH_EVENT",
"sessionId": "[UUID]",
"userGUID": "0:kzmrfk1k:[UUID]",
"apiKey": "APIKEY",
"channel": "WEB",
"location": "https://example.com/search?q=процесор интел",
"referer": "https://example.com/",
"regionId": "msk",
"viewGUID": "[UUID]",
"isFromRedirect": "false",
"isZeroQuery": "false",
"anyQueryWorked": "true",
"searchTerm": "процессор интел",
"originalSearchTerm": "процесор интел",
"pageProducts": ["11186", "13690", "13633", "14193"],
"pageNumber": 1
}
Корзина
CART_VIEW
Логика cartId на шагах корзины и заказа.
Корзина:
Оформление заказа: если пользователь перешел в обход корзины,
Успешный заказ:
Если быстрый заказ оформляется на любой странице, отличной от корзины,
Корзина:
cartId всегда генерируется при попадании на страницу корзины и сохраняется в cookie.Оформление заказа: если пользователь перешел в обход корзины,
cartId генерируется; если cookie уже есть, берется значение из cookie.Успешный заказ:
cartId всегда берется из ранее созданной cookie.Если быстрый заказ оформляется на любой странице, отличной от корзины,
cartId нужно сгенерировать самостоятельно; сохранять такой id в cookie не нужно.
CART_VIEW
Поведенческое
| Поле | Тип | Описание |
|---|---|---|
| cartIdreq* | string | ID корзины. Сквозной для этапов заказа. |
| totalreq* | string | Итоговая сумма (с доставкой). Может быть дробью. |
| subtotal | string | Предварительная сумма без доставки |
| cartItemsreq* | object[] | Массив товаров в корзине |
Структура cartItems:
| Поле | Тип | Описание |
|---|---|---|
| productId | string | ID товара из фида |
| productName | string | Название товара |
| sku | string | Артикул |
| categoryId | string | ID категории товара (как category_id в фиде). Опционально. |
| price | string | Актуальная цена товара: цена со скидкой если скидка есть, полная цена если скидки нет |
| salePrice | string | Цена со скидкой (если она отличается от price). Опционально — используется, когда нужно отдельно передать полную и скидочную цену. |
| quantity | integer | Количество — только целое! |
| subtotal | string | price × quantity |
quantity — только целое число! Дробное значение — весь объект cartItems не сохранится.
json
{
"eventType": "CART_VIEW",
"sessionId": "[UUID]",
"userGUID": "0:kzmrfk1k:[UUID]",
"apiKey": "APIKEY",
"channel": "WEB",
"location": "https://example.com/cart",
"regionId": "msk",
"viewGUID": "[UUID]",
"cartId": "1431227937",
"subtotal": "17000",
"total": "17000",
"cartItems": [
{
"productId": "77077",
"productName": "Мышь игровая",
"price": "1000.00",
"quantity": 2,
"subtotal": "2000"
}
]
}
Оформление заказа
ORDER_VIEW
ORDER_VIEW
Опциональное
Событие просмотра страницы оформления заказа. Структурно совпадает с CART_VIEW и вызывается на странице оформления заказа.
| Поле | Тип | Описание |
|---|---|---|
| cartIdreq* | string | ID корзины. Сквозной для этапов заказа. |
| totalreq* | string | Итоговая сумма (с доставкой). Может быть дробью. |
| subtotal | string | Предварительная сумма без доставки |
| cartItemsreq* | object[] | Массив товаров в заказе. Структура аналогична CART_VIEW. |
json
{
"eventType": "ORDER_VIEW",
"sessionId": "[UUID]",
"userGUID": "0:kzmrfk1k:[UUID]",
"apiKey": "APIKEY",
"channel": "WEB",
"location": "https://example.com/order",
"regionId": "msk",
"viewGUID": "[UUID]",
"cartId": "1431227937",
"subtotal": "17000",
"total": "17000",
"cartItems": [
{
"productId": "77077",
"productName": "Мышь игровая",
"price": "1000.00",
"quantity": 2,
"subtotal": "2000"
}
]
}
Спасибо за заказ
ORDER_SUCCESS
Рекомендуется всегда передавать полные данные заказа — total, subtotal и cartItems. Данные из ORDER_SUCCESS точнее для метрик, чем данные из CART_VIEW.
Если передать полные данные в ORDER_SUCCESS невозможно — передайте хотя бы данные в CART_VIEW с тем же cartId: система возьмёт данные оттуда.
Для быстрых заказов (1 клик) рекомендуется orderId вида:
Если передать полные данные в ORDER_SUCCESS невозможно — передайте хотя бы данные в CART_VIEW с тем же cartId: система возьмёт данные оттуда.
Для быстрых заказов (1 клик) рекомендуется orderId вида:
"fastOrder_" + номер заказа
ORDER_SUCCESS
Поведенческое
| Поле | Тип | Описание |
|---|---|---|
| cartIdreq* | string | Тот же cartId, что и в CART_VIEW |
| orderIdreq* | string | Номер заказа |
| totalreq* | string | Итоговая сумма заказа |
| subtotal | string | Предварительная сумма без доставки |
| cartItemsreq* | object[] | Массив товаров заказа. Структура аналогична CART_VIEW. |
json
{
"eventType": "ORDER_SUCCESS",
"sessionId": "[UUID]",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"channel": "MOBILE_APP",
"location": "https://example.com/order/complete/ORD001",
"regionId": "msk",
"viewGUID": "[UUID]",
"cartId": "1431227937",
"subtotal": "17000",
"total": "17000",
"orderId": "ORD001",
"cartItems": [
{
"productId": "11511",
"productName": "Процессор AMD Ryzen",
"price": "15000.00",
"quantity": 1,
"subtotal": "15000"
}
]
}
Страница бренда
BRAND_PAGE_VIEW — опционально
Нужно для формирования брендовых подсказок. На основе данных API autocomplete вернёт массив
brands с названием и URL-ссылкой бренда.
BRAND_PAGE_VIEW
Опционально
| Поле | Тип | Описание |
|---|---|---|
| brandNamereq* | string | Название бренда |
| pageProductsreq* | string[] | offer_id товаров на странице |
| isFromRedirectreq* | string | true — попал по редиректу из поиска Передавать как строку "true" или "false". |
| breadcrumbsreq* | string[] | Массив хлебных крошек |
| pageNumber | integer | Номер страницы |
json
{
"eventType": "BRAND_PAGE_VIEW",
"sessionId": "[UUID]",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"channel": "MOBILE_APP",
"location": "https://example.com/brands/brand-name",
"regionId": "msk",
"viewGUID": "[UUID]",
"brandName": "Название бренда",
"breadcrumbs": ["Название бренда"],
"pageProducts": ["16874400007", "22225555444"],
"pageNumber": 1,
"isFromRedirect": "false"
}
Страница категории
CATEGORY_VIEW — опционально
Нужно если в фиде у категорий не указан url. При наличии url нужно только при интеграции AI-редиректов.
CATEGORY_VIEW
Опционально
| Поле | Тип | Описание |
|---|---|---|
| categoryIdreq* | string | ID категории из фида |
| breadcrumbsreq* | string[] | Хлебные крошки (без "Главная" и "Каталог") |
| pageProductsreq* | string[] | offer_id товаров на странице |
| isFromRedirectreq* | string | true — попал по редиректу из поиска Передавать как строку "true" или "false". |
| categoryName | string | Название категории |
| pageNumber | integer | Номер страницы |
json
{
"eventType": "CATEGORY_VIEW",
"sessionId": "[UUID]",
"userGUID": "0:kzmrfk1k:[UUID]",
"apiKey": "APIKEY",
"channel": "WEB",
"regionId": "msk",
"viewGUID": "[UUID]",
"breadcrumbs": ["Комплектующие", "Процессоры", "Процессоры Intel"],
"pageProducts": ["13690", "14193", "13633"],
"pageNumber": 1,
"categoryName": "Процессоры Intel",
"categoryId": "1012",
"isFromRedirect": "false"
}
Добавление в корзину
CART_ADD_EVENT — используется во всех продуктах
Событие универсальное — отправляется при нажатии кнопки «В корзину» в любом продукте AnyQuery.
Продукт-источник передаётся через поле sku.
CART_ADD_EVENT
Поведенческое
| Поле | Тип | Описание |
|---|---|---|
| productIdreq* | string | offer_id товара из фида |
| productNamereq* | string | Название товара |
| pricereq* | string | Актуальная цена товара: цена со скидкой если скидка есть, полная цена если скидки нет |
| skureq* | string |
Идентификатор источника добавления. Зависит от продукта:
Рекомендации
recsClick|strategyMessage|placementName|strategyNameПример: recsClick|Специально для вас|home_page.personalised|68fdf776
Поиск по фото
imageSearch
Отзывы (anyReviews)
product_reviews
Автоподсказки (поисковые подсказки)
autocomplete
Поиск (поисковая выдача)
instant_search
|
Пример — из блока рекомендаций:
json
{
"eventType": "CART_ADD_EVENT",
"sku": "recsClick|Специально для вас|home_page.personalised|68fdf776",
"price": "500",
"productId": "52",
"productName": "Молоко Коровка, 1 литр",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
Пример — из поиска по фото:
json
{
"eventType": "CART_ADD_EVENT",
"sku": "imageSearch",
"price": "500",
"productId": "52",
"productName": "Молоко Коровка, 1 литр",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
Пример — из отзывов (anyReviews):
json
{
"eventType": "CART_ADD_EVENT",
"sku": "product_reviews",
"price": "500",
"productId": "52",
"productName": "Молоко Коровка, 1 литр",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
Пример — из автоподсказок:
json
{
"eventType": "CART_ADD_EVENT",
"sku": "autocomplete",
"price": "500",
"productId": "52",
"productName": "Молоко Коровка, 1 литр",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
Пример — из поисковой выдачи:
json
{
"eventType": "CART_ADD_EVENT",
"sku": "instant_search",
"price": "500",
"productId": "52",
"productName": "Молоко Коровка, 1 литр",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
Автоподсказки (AC)
AUTOCOMPLETE_CLICK — клики по различным типам подсказок
Событие AUTOCOMPLETE_CLICK используется для всех типов подсказок. Тип подсказки задаётся полем
autocompleteItemType.Поля события AUTOCOMPLETE_CLICK:
| Поле | Тип | Описание |
|---|---|---|
| eventTypereq | string | AUTOCOMPLETE_CLICK |
| apiKeyreq | string | Ключ клиента |
| sessionIdreq | string | ID сессии |
| userGUIDreq | string | Идентификатор устройства/браузера |
| viewGUIDreq* | string | ID просмотра страницы |
| regionIdreq* | string | ID региона |
| channelreq | string | Канал: WEB / WEB_MOBILE / MOBILE_APP |
| autocompleteItemreq* | string | Текст выбранной подсказки |
| autocompleteItemTypereq* | string | Тип подсказки: brands / categories / queries / products / history / taps |
| originalSearchTermreq* | string | Оригинальный запрос пользователя (то, что набрано в строке) |
| searchTermreq* | string | Запрос после исправления опечаток |
| anyQueryWorkedreq* | string | Строка "true" или "false". "true", если originalSearchTerm ≠ searchTerm. |
| productId | string | offer_id товара — только для autocompleteItemType: products |
AUTOCOMPLETE_CLICK
autocompleteItemType: brands
Только AC-клик, не SEARCH_EVENT
json
{
"eventType": "AUTOCOMPLETE_CLICK",
"apiKey": "APIKEY",
"sessionId": "[UUID]",
"userGUID": "0:l88m8m6d:[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "MOBILE_APP",
"anyQueryWorked": "true",
"autocompleteItem": "Lacoste",
"autocompleteItemType": "brands",
"originalSearchTerm": "за",
"searchTerm": "запах"
}
AUTOCOMPLETE_CLICK
autocompleteItemType: categories
Только AC-клик, не SEARCH_EVENT
json
{
"eventType": "AUTOCOMPLETE_CLICK",
"apiKey": "APIKEY",
"sessionId": "[UUID]",
"userGUID": "0:l88m8m6d:[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "MOBILE_APP",
"anyQueryWorked": "true",
"autocompleteItem": "пуховик",
"autocompleteItemType": "categories",
"originalSearchTerm": "пухови",
"searchTerm": "пуховик"
}
AUTOCOMPLETE_CLICK
autocompleteItemType: queries
+ SEARCH_EVENT после поиска
1
Отправить AUTOCOMPLETE_CLICK
2
Запрос заменяется на значение из подсказки, инициируется поиск
3
После отрисовки результатов — отправить SEARCH_EVENT
json
{
"eventType": "AUTOCOMPLETE_CLICK",
"apiKey": "APIKEY",
"sessionId": "[UUID]",
"userGUID": "0:l88m8m6d:[UUID]",
"viewGUID": "[UUID]",
"channel": "MOBILE_APP",
"regionId": "msk",
"anyQueryWorked": "true",
"autocompleteItem": "пуховик",
"autocompleteItemType": "queries",
"originalSearchTerm": "пухови",
"searchTerm": "пуховик"
}
AUTOCOMPLETE_CLICK
autocompleteItemType: products
Только AC-клик, не SEARCH_EVENT
Для типа
products дополнительно передаётся поле productId — offer_id товара из фида.json
{
"eventType": "AUTOCOMPLETE_CLICK",
"apiKey": "APIKEY",
"sessionId": "[UUID]",
"userGUID": "0:l88m8m6d:[UUID]",
"viewGUID": "[UUID]",
"channel": "MOBILE_APP",
"regionId": "msk",
"anyQueryWorked": "true",
"autocompleteItem": "Виниловая Пластинка",
"autocompleteItemType": "products",
"productId": "424402",
"originalSearchTerm": "винилвые пластинки",
"searchTerm": "виниловые пластинки"
}
AUTOCOMPLETE_CLICK
autocompleteItemType: history
+ SEARCH_EVENT после поиска
json
{
"eventType": "AUTOCOMPLETE_CLICK",
"apiKey": "APIKEY",
"sessionId": "[UUID]",
"userGUID": "0:l88m8m6d:[UUID]",
"viewGUID": "[UUID]",
"channel": "MOBILE_APP",
"regionId": "msk",
"anyQueryWorked": "false",
"autocompleteItem": "виниловые пластинки",
"autocompleteItemType": "history",
"originalSearchTerm": "виниловые пластинки",
"searchTerm": "виниловые пластинки"
}
AUTOCOMPLETE_CLICK
autocompleteItemType: taps
Только AC-клик, не SEARCH_EVENT
В
autocompleteItem — скорректированный запрос целиком. Пример: ввели "мас" → correction "масло" → нажали "сливочное" → item = "масло сливочное"json
{
"eventType": "AUTOCOMPLETE_CLICK",
"apiKey": "APIKEY",
"sessionId": "[UUID]",
"userGUID": "0:l88m8m6d:[UUID]",
"viewGUID": "[UUID]",
"channel": "MOBILE_APP",
"regionId": "msk",
"anyQueryWorked": "true",
"autocompleteItem": "масло сливочное",
"autocompleteItemType": "taps",
"originalSearchTerm": "мас",
"searchTerm": "масло"
}
AQ_SYNONYM_CLICK
Уточнение в результатах поиска
+ SEARCH_EVENT после поиска
| Поле | Тип | Описание |
|---|---|---|
| searchTermreq* | string | Поисковый запрос |
| anyQuerySynonymClickedreq* | string | Выбранное уточнение |
| anyQuerySynonymsreq* | string[] | Массив уточнений: taps.map(t => t.tap) |
json
{
"eventType": "AQ_SYNONYM_CLICK",
"sessionId": "[UUID]",
"apiKey": "APIKEY",
"userGUID": "0:l88m8m6d:[UUID]",
"viewGUID": "[UUID]",
"channel": "MOBILE_APP",
"regionId": "msk",
"searchTerm": "мол",
"anyQuerySynonymClicked": "молоко",
"anyQuerySynonyms": ["молоко", "молотый", "молочный"]
}
Блоки рекомендаций
WIDGET_VIEW · WIDGET_CLICK — только при интеграции продукта рекомендаций
Поле strategy — строка с разделителем
Пример:
|:strategyMessage|placementName|strategyNameПример:
Специально для вас|home_page.personalised|68fdf776-f6e2-3578
Если API вернул пустой массив товаров (
pageProducts: []), блок рекомендаций не отображается — отправлять события RECS_RENDER, RECS_VIEW и RECS_CLICK не нужно.
WIDGET_VIEW
widgetType: RECS_RENDER
При монтировании в DOM
| Поле | Тип | Описание |
|---|---|---|
| eventTypereq | string | WIDGET_VIEW |
| widgetTypereq* | string | RECS_RENDER |
| strategyreq* | string | strategyMessage|placementName|strategyName |
| apiKeyreq | string | Ключ клиента |
| sessionIdreq | string | ID сессии |
| userGUIDreq | string | Идентификатор устройства/браузера |
| viewGUIDreq* | string | ID просмотра страницы |
| regionIdreq* | string | ID региона |
| channelreq | string | Канал: WEB / WEB_MOBILE / MOBILE_APP |
| pageProducts | string[] | offer_id товаров блока |
| seed | string | ID товаров-источников через "|" (для страниц товара и корзины) |
json
{
"eventType": "WIDGET_VIEW",
"widgetType": "RECS_RENDER",
"strategy": "Специально для вас|home_page.personalised|68fdf776",
"pageProducts": ["23", "52", "55"],
"seed": "2|3|4|5",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
WIDGET_VIEW
widgetType: RECS_VIEW
При появлении в зоне видимости
| Поле | Тип | Описание |
|---|---|---|
| eventTypereq | string | WIDGET_VIEW |
| widgetTypereq* | string | RECS_VIEW |
| strategyreq* | string | strategyMessage|placementName|strategyName |
| apiKeyreq | string | Ключ клиента |
| sessionIdreq | string | ID сессии |
| userGUIDreq | string | Идентификатор устройства/браузера |
| viewGUIDreq* | string | ID просмотра страницы |
| regionIdreq* | string | ID региона |
| channelreq | string | Канал: WEB / WEB_MOBILE / MOBILE_APP |
| pageProducts | string[] | offer_id товаров блока |
| seed | string | ID товаров-источников через "|" |
Для мобильных устройств (блок не помещается на экране) — отправлять при 20% видимости блока. Используйте
IntersectionObserver.json
{
"eventType": "WIDGET_VIEW",
"widgetType": "RECS_VIEW",
"strategy": "Специально для вас|home_page.personalised|68fdf776",
"pageProducts": ["23", "52", "55"],
"seed": "2|3|4|5",
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
WIDGET_CLICK
widgetType: RECS_CLICK
| Поле | Тип | Описание |
|---|---|---|
| eventTypereq | string | WIDGET_CLICK |
| widgetTypereq* | string | RECS_CLICK / RECS_FAVORITE_CLICK / RECS_COMPARE_CLICK |
| strategyreq* | string | strategyMessage|placementName|strategyName |
| productIdreq* | string | offer_id товара |
| positionreq* | integer | Позиция в блоке (целое, с 1) |
| apiKeyreq | string | Ключ клиента |
| sessionIdreq | string | ID сессии |
| userGUIDreq | string | Идентификатор устройства/браузера |
| viewGUIDreq* | string | ID просмотра страницы |
| regionIdreq* | string | ID региона |
| channelreq | string | Канал: WEB / WEB_MOBILE / MOBILE_APP |
| pageProducts | string[] | Все товары блока |
widgetType зависит от действия:
• Клик по карточке →
• Добавить в избранное →
• Добавить в сравнение →
• Клик по карточке →
RECS_CLICK• Добавить в избранное →
RECS_FAVORITE_CLICK• Добавить в сравнение →
RECS_COMPARE_CLICK
json
{
"eventType": "WIDGET_CLICK",
"widgetType": "RECS_CLICK",
"strategy": "Специально для вас|home_page.personalised|68fdf776",
"productId": "52",
"position": 2,
"pageProducts": ["23", "52", "55"],
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
Добавление в корзину из блока рекомендаций — см. раздел CART_ADD_EVENT
Поиск по картинкам (anyImages)
IMAGE_SEARCH — только при интеграции продукта поиска по фото
Все события используют
widgetType: IMAGE_SEARCH. Тип действия задаётся в поле strategy.
Если результаты поиска по фото пустые (
pageProducts: []), событие open_results не отправляется, а все последующие события (click_product, CART_ADD_EVENT) не имеют смысла и отправляться не должны.
| eventType | strategy | Описание |
|---|---|---|
| WIDGET_VIEW | image_search|view_window | Кнопка появилась в зоне видимости |
| WIDGET_CLICK | image_search|open_window | Клик по кнопке открытия окна |
| WIDGET_CLICK | image_search|click_gallery | Клик на фото из галереи примеров |
| WIDGET_CLICK | image_search|click_button_upload | Клик "Выбрать фото" / "Загрузить файл" |
| WIDGET_CLICK | image_search|click_button_photo | Клик "Сделать фото" (камера) |
| WIDGET_CLICK | image_search|send_image | Отправка фото на поиск |
| WIDGET_CLICK | image_search|send_crop_image | Использование кропа области |
| WIDGET_VIEW | image_search|open_results | Показ результатов (если есть товары) |
| WIDGET_CLICK | image_search|click_product | Клик по товару в результатах |
| CART_ADD_EVENT | sku: imageSearch | Добавление в корзину — см. CART_ADD_EVENT |
| WIDGET_CLICK | image_search|click_button_similar | Клик "Похожие" в карточке товара |
Поля событий IMAGE_SEARCH:
| Поле | Тип | Описание |
|---|---|---|
| eventTypereq | string | WIDGET_VIEW или WIDGET_CLICK |
| widgetTypereq* | string | IMAGE_SEARCH |
| strategyreq* | string | Тип действия, например image_search|view_window |
| apiKeyreq | string | Ключ клиента |
| sessionIdreq | string | ID сессии |
| userGUIDreq | string | Идентификатор устройства/браузера |
| viewGUIDreq* | string | ID просмотра страницы |
| regionIdreq* | string | ID региона |
| channelreq | string | Канал: WEB / WEB_MOBILE / MOBILE_APP |
| productId | string | offer_id товара — только для click_product |
| position | integer | Позиция в результатах (целое, с 1) — только для click_product |
| pageProducts | string[] | Все товары результатов — обязательно для open_results и click_product |
WIDGET_VIEW — view_window
Кнопка поиска по фото видна
json
{
"eventType": "WIDGET_VIEW",
"widgetType": "IMAGE_SEARCH",
"strategy": "image_search|view_window",
"pageProducts": [],
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
WIDGET_VIEW — open_results
pageProducts обязателен
Событие отправляется только если найдены товары. При пустой выдаче — не отправлять.
json
{
"eventType": "WIDGET_VIEW",
"widgetType": "IMAGE_SEARCH",
"strategy": "image_search|open_results",
"pageProducts": ["23", "52", "55"],
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
WIDGET_CLICK — click_product
Клик по товару в результатах
json
{
"eventType": "WIDGET_CLICK",
"widgetType": "IMAGE_SEARCH",
"strategy": "image_search|click_product",
"productId": "45678",
"position": 3,
"pageProducts": ["23", "52", "55"],
"apiKey": "APIKEY",
"userGUID": "0:kzmrfk1k:[UUID]",
"sessionId": "[UUID]",
"viewGUID": "[UUID]",
"regionId": "msk",
"channel": "WEB_MOBILE"
}
Добавление в корзину из результатов поиска по фото — см. раздел CART_ADD_EVENT