Как происходит подписка на канал и отправка вебпушей
Если вы не знакомы с используемыми терминами SW, FCM и т.д., почитать о них можно в статье .
Подписка
1. При переходе клиента на сайт проверяем наличие разрешения на показ пушей в данном браузере.
- Если пуши разрешены, обновляем токен и передаём в Mindbox вместе с данными по разрешению.
- Если данные отсутствуют, показываем окно подписки.
- Если пуши заблокированы, зависит от наличия клиента в Mindbox:
- клиент есть - обновляем данные по разрешению;
- клиента нет - ничего не делаем.
2. Дальше зависит от реакции клиента на окно подписки.
- Если клиент запретил показ уведомлений - ничего не происходит, в Mindbox клиент не попадает.
- Если клиент не отреагировал или закрыл окно подписки - оно покажется вновь при обновлении страницы
- Если клиент дал разрешение - в mindbox создаётся клиент и передаются deviceUUID, FCM токен и разрешение на показ уведомлений.
Также из браузера в mindbox передаётся точка интеграции , или ТИ (может передаваться и из трекера).
Таким образом мы получаем связку из токена, идентификатора устройства и точки интеграции, которые уникально идентифицируют адресанта.
Подробнее о составляющих этой связки:
-
Токен - идентификатор браузера клиента в FCM; генерируется библиотекой Firebase - процесс запускается SW браузера.
-
Device UUID - уникальный идентификатор браузера пользователя в mindbox; генерируется трекером в браузере, передаётся в Mindbox после разрешения уведомлений пользователем.
-
Точка интеграции (ТИ) - уникальный идентификатор сайта; заводится в mindbox; используется для определения нами сайта, откуда пришёл токен и куда слать пуш.
Эти данные попадают в микросервис отправки вебпушей webpush gate .
Что происходит, когда клиент повторно заходит на сайт?
Окно подписки повторно не появляется, если у клиента в браузере не выбран режим “всегда спрашивать”.
Обновляем данные по разрешению на показ пушей, при наличии разрешения - также обновляем данные по токену.
Будет ли заново создан клиент в Mindbox, если ранее его удалили из базы?
После удаления клиента из базы, он будет заново создан с подпиской на вебпуши, только если авторизуется или зарегистрируется на сайте, попав заново в базу.
Схема подписки:
Отправка
При отправке рассылки в webpush gate передаются пуш и Device UUID + ТИ .
По связке Device UUID + ТИ гейт определяет, с каким токеном какой пуш отправить в FCM .
Дальше FCM отправляет уведомление в SW браузера о наличии пуша для браузера, и SW отрисовывает пуш.