Skip to content

Инициализация ​

WARNING

Это самая важная часть SDK. Без нее все будет работать неправильно, сломается аналитика и сломаются инструменты. Очень важно все сделать так, как здесь написано, и никак иначе.

Устройства и пользователи ​

Мы разделяем устройство и человека: смартфон, ноутбук и десктоп. У человека может быть несколько устройств. У устройства может быть несколько пользователей: например инфокиоск в магазине или семейный планшет.

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

Инициализация ​

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

В случае веб-сайта, инициализация происходит на каждой странице сайта.

В случае SPA-сайта, инициализация также происходит при первом открытии сайта.

Процесс инициализации ​

  1. Попытаться прочитать из локального хранилища идентификатор устройства did, выданный ранее API.
  2. Попытаться прочитать из локального хранилища временный идентификатор сессии seance, выданный ранее API.
  3. Сформировать запрос к методу API /init с полученными данными. Если did и seance нет, отправлять пустые значения. Обязательно передавать все остальные параметры метода /init из документации.
  4. При обработке ответа от сервера, необходимо:
    • Обновить did в хранилище, если он изменился (или был пустым перед запросом).
    • Обновить seance в хранилище, если он изменился (или был пустым перед запросом).
    • Установить флаг в SDK, что приложение инициализировано. Этот флаг в дальнейшем используется везде.

Обработка ошибок ​

ОшибкаЧто делать
Нет связиПовторить попытку с интервалом в 15 секунд не более 3 раз
4xxНе делать повторные попытки
500Повторить попытку с интервалом в 15 секунд не более 3 раз
502Не делать повторные попытки
504Не делать повторные попытки

Если инициализация SDK не удалась, не выполнять все последующие коммуникации с API.

Постоянность did ​

Приложение должно обеспечить максимально долгое хранение did. В идеале: вечное.

Протухание seance ​

Приложение должно обеспечить очистку seance при следующих условиях:

  1. Приложение было закрыто и открыто заново.
  2. С момента последнего действия пользователя с приложением прошло более 2 часов. Это важно.

Трекинг источника перехода ​

Когда пользователь открывает приложение при переходе из мобильного пуша или email/sms рассылки, выполненной сервисом, необходимо передать к нам в API, что текущая сессия инициирована с помощью одного из инструментов сервиса:

  1. Для мобильных пушей необходимо взять содержимое свойства src.[id|type] и отправить запросом к методу API /web_push_subscriptions/clicked. Этот метод также отслеживает клик по мобильному пушу, необходимый в сегментации, триггерах и аналитике.