Пакетная загрузка пользовательского поведения

API предоставляет возможность пакетной загрузки пользовательского поведения. В теле вызова метода передается список пользовательских событий. Вызов гарантирует сохранение порядка переданных в него событий.

Специфика использования пакетной загрузки

Метод API visitorEvents решает проблему сохранения порядка пользовательских событий. К примеру, при потере соединения с сетью интернет, когда нельзя передать события в режиме реального времени, но действия совершаются в приложении. Как только у приложения появится доступ к сети интернет, нам важно получить эти события, но если отправить их с помощью обычных вызовов view, addToBasket - есть вероятность потерять порядок, из-за того, что каждый из вызовов view, addToBasket обработается разным сервером. Для сохранения порядка действий есть метод visitorEvents, принимающий набор событий и гарантирующий, что события будут сохранены в том порядке в котором они переданы.

Особенности использования

❗️

Для отправки двух пакетов событий, содержащих разное поведение одного пользователя, нужно отправить первый, дождаться успешного статуса ответа и после этого отправить второй;

❗️

Нельзя параллельно совершать более одного вызова, в которых есть события по одному пользователю - это может нарушить порядок;

🚧

Из-за необходимости вернуть подтверждение сохранения событий и порядка время ответа visitorEvents, как правило, на порядки больше времени ответа обычных (не пакетных) вызовов трекинга и может составлять порядка 1.5 секунд и более. В связи с этим не следует использовать данный вызов для передачи realtime-событий;

📘

В вызове можно передать события для разных пользователей (sessionExternalId);

📘

Можно параллельно вызывать visitorEvents с пакетами для разных пользователей, т.к. порядок важен только в рамках одного пользователя;

Тело запроса

В теле запроса передается список пользовательских событий любого из следующих типов:

Имя поляТип
ViewEventEnvelopeviewViewEvent
GroupEventViewEnvelopegroupViewGroupViewEvent
AddToBasketEventEnvelopeaddToBasketaddToBasketEvent
OrderEventEnvelopeorderOrderEvent
CategoryViewEventEnvelopecategoryViewCategoryViewEvent
SearchViewEventEnvelopesearchSearchViewEvent
ImpressionContentViewedEventEnvelopeimpressionContentViewedImpressionContentViewedEvent
ImpressionContentClickedEventEnvelopeimpressionContentClickedImpressionContentClickedEvent
EmailClickEventEnvelopeemailClickEmailClickEvent
WelcomeSequenceEventEnvelopewelcomeSequenceWelcomeSequenceEvent
SetContactEventEnvelopesetContactSetContactEvent
Language
Click Try It! to start a request and see the response here!