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. Этот метод также отслеживает клик по мобильному пушу, необходимый в сегментации, триггерах и аналитике.