Показ in-app перед запросом разрешения на push-уведомления
In-app для предварительного запроса разрешения — это сообщение, которое вы показываете перед системным запросом на разрешение отправки push-уведомлений. Используйте его, чтобы объяснить, почему push-уведомления полезны, а затем запрашивайте разрешение только после того, как пользователь согласится в вашем in-app.
На iOS системный запрос появляется только один раз за установку. Если пользователь нажмет Не разрешать, приложение не сможет показать этот запрос снова. Push-уведомления останутся выключенными, пока пользователь не включит их в Настройках. Предварительный запрос в in-app означает, что вы используете эту единственную попытку только для тех пользователей, которые уже дали вам свое согласие.
Используйте это руководство, если вы хотите создать один кроссплатформенный HTML-запрос в Панели управления и запускать его по Event как на iOS, так и на Android.
Используйте другое руководство, если:
- Ваша команда будет внедрять запрос только для iOS в коде приложения (не редактируемый в Панели управления, не запускаемый по событию Journey): Основы push-уведомлений для iOS.
- Вам нужно повторно вовлечь пользователей, которые уже отключили push-уведомления или никогда не давали на них разрешения (только для восстановления, а не для первого запроса): Создание всплывающих окон для восстановления подписки.
Перед началом
Anchor link toPushwoosh никогда не показывает системный диалог запроса разрешений самостоятельно. В Панели управления нет настроек для его отсрочки. Диалог появляется только тогда, когда пользователь нажимает кнопку согласия в вашем in-app.
Проработайте с вашей командой разработчиков следующие предварительные условия:
- Убедитесь, что приложение не запрашивает разрешение на push-уведомления раньше (в том числе при первом запуске).
- Согласуйте имя кастомного Event и время его срабатывания, например,
onboarding_completedсразу после онбординга илиlocked_feature_tapped, когда пользователь нажимает на функцию, для которой нужны уведомления. Ваша команда вызоветpostEventс этим именем. Узнайте больше о Events.
Создание in-app
Anchor link toКнопки в этом руководстве работают на кастомном JavaScript, который функционирует только в HTML-шаблоне in-app. Нативный шаблон in-app не может выполнить этот код, поэтому не создавайте шаблон с помощью опции Нативный in-app.
- Перейдите в Контент → In-Apps и нажмите Создать in-app, чтобы сразу открыть встроенный редактор.
- Введите имя шаблона.
- Откройте вкладку Блоки на правой панели и добавьте текстовый блок или заголовок с вашим предложением включить push-уведомления.

- Добавьте блок кнопки для действия согласия и еще один для действия отказа. Обе кнопки могут выполнять свой JavaScript сразу после загрузки in-app, не ожидая ничего другого.

- Выберите кнопку согласия и установите Тип действия на Кастомный Javascript.
- Вставьте только приведенный ниже код в поле onClick.
pushwoosh.registerForPushNotifications();pushwoosh.closeInApp();- Выберите кнопку отказа и установите Тип действия на Кастомный Javascript.
- Вставьте только это в поле onClick:
pushwoosh.closeInApp();После сохранения шаблона:
- Кнопка согласия: появится системный диалог запроса разрешений.
- Кнопка отказа: in-app закроется, и системный диалог не появится.

Не показывать запрос пользователям, которые уже подписались
Anchor link toДобавьте условие отображения, чтобы in-app скрывался для пользователей, которые уже разрешили push-уведомления, даже если последующий триггер снова покажет шаблон. Статус согласия на push-уведомления берется из Push Alerts Enabled, стандартного логического Tag, который SDK устанавливает на основе системного разрешения на уведомления устройства.
- На панели Слои щелкните первый блок, затем, удерживая Shift, щелкните все остальные блоки, чтобы выбрать весь шаблон целиком.
- Включите Показывать этот блок по условию. Установленное вами правило будет применяться ко всему выделению сразу.
- Установите правило Push Alerts Enabled is false.
- В разделе Если значение неизвестно выберите Показывать блок. Новая установка без значения Tag все равно должна видеть запрос.

Запуск in-app перед запросом разрешения
Anchor link toУстройство, которое еще не прошло регистрацию, не имеет push-токена, поэтому вы не можете связаться с ним с помощью push-уведомления. Запускайте in-app по кастомному Event, о котором вы договорились с разработчиками.
- Попросите вашу команду разработчиков вызвать
postEventс согласованным именем Event в тот момент, когда вы хотите сделать запрос. - Перейдите в Customer Journey Builder → Создать кампанию и начните с входа на основе триггера, который отслеживает это Event.
- Добавьте элемент In-app и выберите созданный вами шаблон. Узнайте больше об отправке in-app через Customer Journey.
- Запустите Journey, когда будете готовы показать запрос.
Пример сценария: запрос разрешения на push-уведомления сразу после онбординга
Anchor link toПредставьте, что вы хотите запросить разрешение на push-уведомления в тот момент, когда пользователь завершает онбординг, а не прерывать сам процесс обучения.
- Создайте Event
onboarding_completedи убедитесь, что ваша команда разработчиков вызывает его, когда пользователь завершает процесс онбординга. Узнайте больше о создании Events - Установите
onboarding_completedв качестве триггера для вашего Journey, используя вход на основе триггера. - Добавьте элемент In-app и выберите созданный вами шаблон для предварительного запроса разрешений.
- Запустите Journey.
Каждый пользователь, завершивший онбординг, увидит запрос один раз. Условие отображения из раздела Не показывать запрос пользователям, которые уже подписались предотвратит его повторное срабатывание для пользователей, которые уже разрешили push-уведомления.
Проверка работы
Anchor link toСистемный запрос является одноразовым, поэтому для тестирования обеих кнопок потребуется два тестовых устройства (или две свежие установки), которые еще не дали или не отклонили разрешение на push-уведомления, по одному для каждой кнопки. На каждом устройстве:
- Вызовите согласованное Event из приложения.
- Перезапустите приложение и убедитесь, что Journey доставляет ваш in-app.
Затем:
- На первом устройстве нажмите кнопку согласия и убедитесь, что появляется системный диалог запроса разрешений.
- На втором устройстве нажмите кнопку отказа и убедитесь, что in-app закрывается без системного диалога.
- После следующего открытия приложения убедитесь, что Push Alerts Enabled соответствует состоянию разрешений на каждом устройстве.
Создание сегмента пользователей, у которых push-уведомления все еще отключены
Anchor link toОтфильтруйте по Push Alerts Enabled, чтобы найти пользователей, которые отклонили или никогда не давали разрешение. Tag имеет значение false, когда push-уведомления еще не разрешены, в том числе до того, как пользователь увидел системный диалог, поэтому устройство, ожидающее предварительного запроса, уже попадает в этот сегмент.
- В конструкторе сегментов добавьте фильтр по Tag Push Alerts Enabled.
- Установите оператор на is false. Узнайте больше о создании сегментов по Tags.
Используйте этот сегмент, чтобы не показывать повторный запрос пользователям, у которых все еще не включены push-уведомления, или для запуска периодической кампании по их возвращению. См. сегмент для восстановления отписавшихся для примера с использованием того же Tag.
Смотрите также
Anchor link to- Основы push-уведомлений для iOS: нативная альтернатива только для iOS этому кроссплатформенному HTML-подходу.
- Создание всплывающих окон для восстановления подписки: восстановление пользователей, которые уже отключили push-уведомления (не первый запрос), с использованием того же Tag Push Alerts Enabled.
- Создание in-app с помощью JavaScript: полное руководство по JavaScript bridge.