Учет доступности push-уведомлений для клиента в системе Loymax


При первом входе в Мобильное приложение (МП) после его установки клиент соглашается или отказывается от push-уведомлений. В данном случае подразумевается разрешение на отправку уведомлений, устанавливаемое в операционной системе мобильного устройства.

  • При согласии клиента на push-уведомления генерируется push-токен. К клиенту привязывается сгенерированный на стороне МП идентификатор мобильного устройства (DeviceID), который приобретает состояние Активный. Клиенту будут доступны push-уведомления (при наличии у клиента подписки на push-уведомления в самой Программе лояльности).
  • При отказе клиента от получения push-уведомлений при первом входе в МП к клиенту также привязывается DeviceID, но рассылки на его устройство отправляться не будут.

В результате действий клиента состояние идентификатора мобильного устройства и доступность push-уведомлений могут изменяться (см. таблицу ниже).

Действия клиента и реакция Системы
Результат
Состояние DeviceID
Доступность push-уведомлений

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

Клиент установил приложение и первый раз запускает его. Идентификатор мобильного устройства DeviceID привязывается к анонимному клиенту. Устанавливается нулевое (null) значение токена. Push-уведомления находятся в состоянии Не доступны.

Далее анонимному клиенту отправляется запрос на разрешение на отправку push-уведомлений. Если клиент разрешает отправку ему push-уведомлений, происходит генерация токена и его привязка к DeviceID. Push-уведомления в этом случае перейдут в состояние Доступны. Однако фактически формирование уведомлений не будет происходить, т. к. для отправки рассылок (кроме системных) требуется получение согласия зарегистрированного Участника ПЛ. Подробнее о рассылке push-уведомлений смотрите в статье. Если клиент не соглашается с получением уведомлений, токен не будет присвоен, а push-уведомления останутся в состоянии Не доступны.

Далее клиент может пройти авторизацию в МП. Если клиент дал согласие на отправку ему уведомлений, возможны два варианта:

  1. Если клиент является Участником ПЛ, он вводит идентификатор и пароль и авторизуется в МП. При этом идентификатор мобильного устройства DeviceID и токен будут привязаны к Участнику ПЛ. DeviceID анонимного клиента переходит в состояние архивный. Push-уведомления останутся в состоянии Доступны (уведомления будут доставлены).
  2. Если клиент не является Участником ПЛ, он может зарегистрироваться в ПЛ. DeviceID и токен будут также привязаны к новому зарегистрированному Участнику ПЛ. DeviceID анонимного клиента переходит в состояние архивный. Push-уведомления перейдут в состояние Доступны (уведомления будут доставлены).

Если клиент не давал согласие на отправку уведомлений, то при авторизации или регистрации в качестве Участника ПЛ DeviceID будет привязан к Участнику ПЛ, а токен останется в значении null. Состояние push-уведомлений Не доступны не изменится, уведомления не будут отправляться.

Активный (DeviceID анонимного клиента, не давшего согласие на отправку уведомлений)Push-уведомления недоступны
Активный (DeviceID анонимного клиента, давшего согласие на отправку уведомлений)Push-уведомления доступны (не будут сформированы)

Активный (DeviceID Участника ПЛ, давшего согласие на отправку уведомлений)

Архивный (DeviceID анонимного клиента)

Push-уведомления доступны

Выход клиента из своего аккаунта в МП

Мобильное устройство отвязывается от клиента и привязывается к анонимному клиенту. DeviceID клиента переходит в архив.

У анонимного клиента появляется DeviceID с состоянием Активный, а push-уведомления имеют состояние Доступны. Однако фактически они не будут сформированы, т. к. для отправки рассылок требуется получение согласия зарегистрированного Участника Программы лояльности. Подробнее о рассылке push-уведомлений смотрите в статье.

Архивный (DeviceID клиента, вышедшего из аккаунта) Push-уведомления недоступны
Активный (DeviceID анонимного клиента)

Push-уведомления доступны (не будут сформированы)

Повторная авторизация клиента в МП с того же устройства

Устройство отвязывается от анонимного клиента и привязывается к клиенту, который авторизуется в Системе. У анонимного клиента DeviceID переходит в состояние Архивный. Push-уведомления будут иметь состояние Недоступны.

У авторизовавшегося заново клиента появляется прежний DeviceID с состоянием Активный, а push-уведомления имеют состояние Доступны.

Архивный (DeviceID анонимного клиента)Push-уведомления недоступны
АктивныйPush-уведомления доступны

Авторизация клиента в МП на втором мобильном устройстве

К клиенту будет привязано два устройства. Количество устройств, на которых клиент может установить МП и получать push-уведомления, не ограничено.

АктивныйPush-уведомления доступны

Удаление Мобильного приложения

Само удаляемое приложение не оповещается об удалении, т. к. оно происходит на уровне платформы. Поэтому при удалении приложения идентификатор мобильного устройства, токен и состояние доступности push-уведомлений не изменяется.

При получении ошибки о невалидном push-токене от Cлужбы push-уведомлений, система Loymax обнуляет (удаляет) токен в базе данных, а мобильному устройству присваивается признак Неактивный.

  • Центр уведомлений Azure возвращает ошибку NoTargetFound,
  • FCM Service возвращает ошибку InvalidRegistration,
  • APN Service возвращает ошибку BadDeviceToken.

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

АктивныйPush-уведомления доступны
(не будут доставлены)
Неактивный (после получения ошибки и обнуления push-токена)Push-уведомления недоступны

Повторная установка МП на прежнее мобильное устройство после удаления

Идентификатор мобильного устройства совпадет с хранящимся в БД идентификатором устройства. При согласии клиента на push-уведомления, генерируется новый токен. При авторизации в МП устройство привязывается к зарегистрированному клиенту.

Примечание: Для некоторых устройств технически невозможно дважды получить один идентификатор устройства. Для таких устройств после каждой переустановки будет регистрироваться новое активное устройство.

Активный

Push-уведомления доступны

 

Клиент авторизуется в МП на имя другого клиента с ранее зарегистрированного устройства

Этот сценарий будет проходить аналогично указанным выше ситуациям:

  • Выход клиента из своего аккаунта в МП, а затем
  • Повторная авторизация клиента в МП с того же устройства

а именно:

Прежнее мобильное устройство отвязывается от клиента и привязывается к анонимному клиенту. DeviceID предыдущего клиента (Клиент 1) переходит в архив.

У анонимного клиента появляется DeviceID с состоянием Активный, а push-уведомления имеют состояние Доступны. Однако фактически они не будут доставлены, т. к. для отправки рассылок требуется получение согласия зарегистрированного Участника Программы лояльности.

При авторизации нового клиента (Клиент 2) устройство отвязывается от анонимного клиента и привязывается к новому клиенту (Клиент 2), который авторизуется в Системе. У анонимного клиента DeviceID переходит в состояние Архивный. Push-уведомления будут иметь состояние Недоступны.

У авторизовавшегося клиента (Клиент 2) появляется DeviceID с состоянием Активный, а push-уведомления имеют состояние Доступны.

Архивный (DeviceID Клиента 1)

Push-уведомления доступны

(не будут доставлены)

Активный (DeviceID анонимного клиента).

После авторизации Клиента 2 меняется на Архивный

Push-уведомления доступны

(не будут доставлены).

После авторизации Клиента 2 меняется на Push-уведомления недоступны

Активный (DeviceID Клиента 2)Push-уведомления доступны

Зарегистрированный клиент, первоначально давший согласие на push-уведомления, затем отказывается от рассылок в настройках своего телефона

Состояние идентификатора устройства и доступность push-уведомлений не изменятся. Push-уведомления будут отправляться в шлюз отправки, будет возвращаться ответ со статусом Отправлено, однако фактически клиент не будет получать push-уведомления.

Активный

Push-уведомления доступны

(не будут доставлены)

Зарегистрированный клиент, первоначально давший согласие на push-уведомления, затем отказывается от рассылок в настройках МП

Состояние идентификатора устройства и доступность push-уведомлений не изменятся. Push-уведомления не будут отправлены в шлюз, т. к. согласия клиента на рассылки нет. Клиент не будет получать push-уведомления.

Активный

Push-уведомления доступны

(не будут доставлены)

Атрибут Push

Во вкладке Нотификаторы раздела АРМ Атрибуты клиента отображаются доступные нотификаторы клиента. Атрибут Push, значение которого хранится в базе данных (БД), является атрибутом доступности push-уведомлений и содержит значение PersonID — внутреннего идентификатора Участника ПЛ. Значение атрибута устанавливается в момент регистрации клиентом/Участником ПЛ устройства (телефона) для отправки уведомлений, т. е. после выполнения запроса POST /v1.2/Pushes. При выполнении данного запроса осуществляется привязка push-токена и значение параметра inactive становится false — устройство активно. В результате устройство становится доступно для рассылки push-уведомлений. Значение данного нотификатора:

  • не изменяется, если есть хотя бы одно активное устройство (DeviceID) у Участника ПЛ; 
  • данные PersonID удаляются из атрибута Push, если нет активных устройств. Например, если все устройства архивные или неактивные.

Если атрибут Push пустой — Участнику ПЛ не будут отправляться push-уведомления.

Для аналитических отчетов BI/ML в зависимости от типа отчета используются DeviceId и параметр inactive, а также признак верификации.

Модуль Smart Communication получает данные о номере телефона, DeviceID и используемой платформе (iOS, Android, HarmonyOS и др.). В случае, если устройство неактивно, DeviceID передается со значением null.

При выходе из Программы лояльности все данные о мобильных устройствах исключенного из Программы лояльности Участника будут удалены из Системы. Push-уведомления будут недоступны. Подробнее об удаляемых данных при выходе из Программы лояльности читайте в статье

Новости
Обновления
Облако тегов
Словарь
Наш блог
YouTube
Telegram