Тег Push Permission Status
Push Permission Status — это тег по умолчанию, который хранит состояние разрешения на push-уведомления на устройстве. С его помощью можно строить сегменты по достижимости — разделять пользователей, которых не различает простой флаг «включено/выключено», например тех, у кого еще можно запросить разрешение, и тех, кто уже отказался.
Значения Push Permission Status
Anchor link toЭто тег типа String, который хранит одно из значений ниже для каждого устройства в каждом приложении. Каждая платформа передает только часть из них. См. Какие значения передает каждая платформа.
| Значение | Что оно означает |
|---|---|
not_determined | Пользователь еще не ответил на запрос разрешения, поэтому приложение еще может его запросить |
granted_explicit | Пользователь разрешил уведомления в запросе разрешения |
granted_default | Уведомления разрешены, но не ответом на запрос разрешения Pushwoosh SDK. Только Android |
provisional | Уведомления разрешены условно (provisional). Они тихо попадают в Центр уведомлений — без оповещений, звуков и баннеров. Только iOS |
ephemeral | Уведомления разрешены на ограниченное время, как для App Clip. Только iOS |
denied | Пользователь отключил уведомления — в запросе разрешения или позже в настройках устройства или браузера |
unsupported | Браузер не может получать веб push-уведомления. Только Web |
Тег не имеет значения на tvOS и macOS, а также на устройствах с версией SDK ниже:
| Платформа | Минимальная версия SDK |
|---|---|
| iOS | 7.2.10 |
| Android | 6.17.0 |
| Web | 3.95.0 |
Когда обновляется тег
Anchor link toSDK передает текущий статус в следующие моменты:
- Каждый раз при открытии приложения.
- При регистрации устройства для получения push-уведомлений.
- Сразу после того, как пользователь ответит на запрос разрешения.
Если пользователь меняет разрешение в настройках устройства или браузера, тег обновляется позже — в зависимости от платформы:
| Платформа | Когда обновляется тег |
|---|---|
| iOS | При следующем открытии приложения |
| Android | При следующем открытии приложения или его возврате на передний план |
| Web: браузеры на базе Chromium и Firefox | Как только браузер сообщит об изменении |
| Web: Safari | При следующей загрузке страницы |
Если запрос приходит без статуса, например от более старой версии SDK, тег сохраняет последнее значение.
Какие значения передает каждая платформа
Anchor link toКаждая платформа считывает разрешение через собственный системный API, поэтому набор значений зависит от платформы.
iOS SDK напрямую сопоставляет системный статус авторизации приложения со значением тега.
| Статус авторизации iOS | Push Permission Status |
|---|---|
| Not determined | not_determined |
| Authorized | granted_explicit |
| Provisional | provisional |
| Ephemeral | ephemeral |
| Denied | denied |
Android
Anchor link toAndroid 13 и новее требуют, чтобы пользователь разрешил уведомления в запросе разрешения. Более ранние версии разрешают их по умолчанию после установки, поэтому Android SDK отличает явный ответ от разрешения по умолчанию:
granted_explicit: пользователь разрешил уведомления в запросе разрешения, который показывает Pushwoosh SDK, на Android 13 или новее, в приложении, нацеленном на Android 13 (API level 33) или новее.granted_default: уведомления разрешены любым другим способом. Сюда относятся Android 12 и более ранние версии, приложения, нацеленные на API level ниже 33, разрешение, которое уже было выдано, когда SDK впервые его проверил, и разрешение, выданное через ваш собственный запрос или в системных настройках.not_determined: на Android 13 и новее уведомления выключены, а пользователь еще не ответил на запрос, в том числе если он закрыл запрос, ничего не выбрав.denied: уведомления выключены после того, как пользователь отклонил запрос или после того, как они ранее были разрешены. На Android 12 и более ранних версиях любое устройство с выключенными уведомлениями передаетdenied.
Браузеры разрешают уведомления только после того, как пользователь нажмет, чтобы их разрешить, поэтому веб-устройство никогда не передает granted_default.
| Разрешение в браузере | Push Permission Status |
|---|---|
Еще не запрашивалось (default) | not_determined |
Разрешено (granted) | granted_explicit |
Заблокировано (denied) | denied |
| Браузер не поддерживает веб push-уведомления | unsupported |
Создание сегментов по достижимости
Anchor link toОбъедините значения в одном фильтре Push Permission Status с оператором один из, чтобы выбирать пользователей по тому, как до них можно достучаться. Подробнее о создании сегментов по тегам.
| Сегмент | Фильтр | Как использовать |
|---|---|---|
| Пользователи, которые видят push-оповещения | один из granted_explicit, granted_default | Отправляйте срочные push-уведомления |
| Только тихая доставка | один из provisional, ephemeral | Учитывайте меньшую заметность и предложите этим пользователям разрешить полноценные уведомления |
| Пользователи, у которых еще можно запросить разрешение | один из not_determined | Покажите in-app перед запросом разрешения на push-уведомления |
| Пользователи, которые отказались | один из denied | Свяжитесь с ними через email, SMS или in-app сообщения или запустите всплывающее окно для восстановления подписки |
| Браузеры без веб push-уведомлений | один из unsupported | Используйте другие каналы для этих веб-пользователей |
Чтобы найти устройства, которые еще не передают тег, используйте оператор не задано. На таких устройствах установлена более старая версия SDK, поэтому для них используйте тег Push Alerts Enabled. О разнице между двумя тегами см. Push Permission Status и Push Alerts Enabled.
Push Permission Status и Push Alerts Enabled
Anchor link toЭти два тега отвечают на разные вопросы:
- Push Alerts Enabled (Boolean): может ли это устройство показывать push-оповещения прямо сейчас?
- Push Permission Status (String): в каком состоянии находится разрешение? Он различает состояния, которые Push Alerts Enabled передает одним и тем же значением
false, например «еще не спрашивали» и «отказался».
В таблице показано, как два тега передают типичные состояния.
| Push Alerts Enabled | Push Permission Status | |
|---|---|---|
| Тип | Boolean | String |
| Разрешение еще не запрашивали | false | not_determined |
| Пользователь отказал в разрешении | false | denied |
| Условное (provisional) или временное разрешение на iOS | Зависит от настроек оповещений, звуков и значков | provisional или ephemeral |
| Явное разрешение или разрешение по умолчанию | true, если устройство показывает оповещения | granted_explicit или granted_default |
| Устройства со старыми версиями SDK | Передается во всех версиях SDK | Не задан |
Выбирайте тег в зависимости от вопроса, на который нужно ответить:
- Используйте Push Alerts Enabled, чтобы быстро посчитать подписавшихся пользователей во всех версиях SDK.
- Используйте Push Permission Status, когда следующий шаг зависит от того, почему до пользователя нельзя достучаться. Например, запросите разрешение у тех, у кого его еще не спрашивали, и не беспокойте тех, кто отказался.