Создание welcome цепочки для web-push уведомлений

Если вы выполнили все необходимые мероприятия согласно инструкции, создали в Firebase проект, разместили скрипт по сбору push-токенов у себя на сайте и теперь перед вами стоит задача уведомлять клиента об успешной подписке на пуш-рассылки, тогда это руководство для вас.
 

Создание приветственной серии для пуш-уведомлений

 

Для начала нужно создать пуш-сообщение, которое будет отправлено пользователю после подписки.
 

Шаг 1. Создание сообщения

1.Переходим в раздел Сообщения - Сообщения - Web push и создаем новое уведомление:
 

Создание веб-пуша в еспутник
 

2. Подготавливаем сообщение, как показано в примере.
 

Создание веб-пуш уведомления
 

В поле ссылка указывается адрес страницы, куда произойдет переход при клике по уведомлению. Исключением будет только кнопка, для нее ссылка задается отдельно.
 

3. При необходимости отправляем себе тестовое уведомление, чтобы убедиться в корректности отображения.
 

Отправка тестового сообщения
 

4. Сохраняем сообщение кнопкой “Сохранить и выйти” и переходим к подготовке сценария для запуска приветственной серии.
 

Планирование сообщения

 

Шаг 2. Создание сценария для запуска приветственной серии

1. В разделе Триггеры - Сценарий создаем новый сценарий, нажав на кнопку “Добавить сценарий”:

Создание сценарий для запуска приветственной серии

 

Самый простой сценарий в котором после подписки на web push уведомление пользователю будет отправлено уведомление об успешной подписке, будет иметь вид:

 

Сценарий для запуска сообщения

Обязательными блоками любого сценария являются блоки начало и конец, добавим их, а между ними блок push. Для блока пуш в выпадающем списке выбираем сообщение, которое будет отправлено клиенту после осуществления подписки. После чего соединим последовательно блоки между собой.
 

2. Сохраняем сценарий и переходим к финальной настройке - выбору условия запуска.
 

3. При осуществлении клиентом подписки на web-push уведомления в ваш аккаунт приходит событие newWebpushSubscription, его можно найти в разделе Триггеры - История событий.
 

Настройка передачи событий
 

Непосредственно это событие и должно запускать подготовленный сценарий.
 

Установка условий запуска сценария
 

4. Открываем окно условий запуска сценария и выбираем событие newWebpushSubscription
 

Условия запуска сценария
 

5. Применяем настройки и запускаем сценарий.
 

Готовый сценарий

 

Запустив сценарий вы осуществите самый простой способ обработки событий о подписке на web-push уведомления.
 

Разделение приветственной серии по языку пользователя

 

Рассмотрим поближе, какие еще данные передаются, кроме push-токена в событии newWebpushSubscription:

  • pushToken - токен пользователя

  • os - операционная система

  • userAgent - используемый браузер

  • userAgentVersion - версия браузера

  • userAgentLang - локализация браузера (язык пользователя)

  • ip - адрес с которого осуществлена подписка

  • subscriptionPage - страница, на которой осуществлена подписка

  • appUid - идентификатор приложения (служебное поле)

  • contactId - идентификатор создаваемого контакта

Эти данные некоторым образом позволяют нам проанализировать передаваемые параметры и персонализировать уведомление.
 

Для начала определимся на каком языке предстоит коммуницировать с пользователем. Нам пригодится блок сценария “Задача - переменная соответствует регулярному выражению” (этот блок нужно будет добавить в создаваемый или обновляемый сценарий), а также параметр userAgentLang.
 

Определение локализации осуществляется таким образом: 

для украинского языка

Сценарий для украинского языка

для русского языка

Сценарий для русского языка

для английского языка

Сценарий для английского языка

 

Поскольку большое изображение и кнопки в уведомлении поддерживаются  только браузером Chrome и его производными, то осуществив проверку параметра userAgent, можно отправить актуальное уведомление. 

Проверка производится также блоком “Задача - переменная соответствует регулярному выражению” и примет следующий вид: 

Chrome

Запуск сценария для браузера Хром

Firefox

Запуск сценария для Firefox

 

В большинстве ситуаций достаточно будет удостовериться, что браузер у пользователя Chrome. В противном случае сценарий “пойдет” по ветке “нет”. И дальше можно использовать сообщение без большого баннера, но взамен с текстовым контентом, для пользователей браузеров, отличных от Chrome, которые не поддерживают большой баннер и кнопки.

И последний пункт, но не менее важный, чем предыдущие, в параметре subscriptionPage передается адрес страницы на которой осуществлена подписка на web push уведомления. Это нам позволяет судить о сфере интересов пользователя и предоставляет возможность начать диалог на актуальную тему.
 

Сбор подписчиков с нескольких сайтов

Если в рамках одного аккаунта ведется сбор токенов с нескольких ресурсов, то будет правильно и логично, чтобы уведомление об успешной подписке содержало свой логотип, ссылки и прочую атрибутику.

Для этого нужно подготовить несколько сообщений, допустим, подписчики собираются с трех разных ресурсов, тогда сценарий примет вид:
 

Точки проверки в сценарии
 

В этом сценарии также проверка производится блоком “Задача - переменная соответствует регулярному выражению”, так в первом блоке производится принадлежность подписчика по полю subscriptionPage на совпадение фрагмента адреса сайта, где осуществлена подписка (site_number_one) и во втором - site_number_two 

Поиск фрагмента по частичному совпадению в ссылке производится записью искомой строки, окруженной “.*”, например, - .*site_number_one.* или .*site_number_two.*.

Сегментирование

После осуществления пользователем подписки его токен помещается в раздел, где хранятся все токены собранные с одного домена. В рамках одного аккаунта можно осуществлять сбор подписчиков с нескольких доменов и поддоменов. Но это не единственный способ осуществлять фрагментацию токенов.

Пример сегментации пушей

 

Учитывая, что в событии newWebpushSubscription передается такой параметр, как contactId, который в рамках сценария можно использовать в качестве идентификатора для добавления  web push токена в заранее созданную группу.

Для этого в сценарий достаточно добавить блок “Добавить в группу”.

 

Сценарий для сегментированных пушей

 

Выбрать группу, а в поле ID контакта указать переменную ${contactId}.

Таким образом, позже на этапе формирования пуш рассылки будет доступна возможность запланировать массовую отправку уведомлений не только на web push контакты всего домена, но и на  отдельно взятые группы, сформированные при помощи сценария. Как это происходит при планировании, email, viber или sms рассылки.

Сегментация по браузеру

Важным нюансом является то, что на данный момент осуществлять сегментирование пуш токенов по полю subscriptionPage возможно только на этапе подписки в рамках сценария, когда в аккаунт приходит событие со всеми сопутствующими данными о подписчике. Данные из поля subscriptionPage не записываются в карточку контакта и соответственно не будут доступны для формирования сегментов при помощи функционала условных групп.

 

Пример настройки приветствия

 

На примере интернет-магазина одежды рассмотрим две подписки на web push уведомления, совершенные мужчиной и женщиной, а также разберем, как нам может пригодится параметр subscriptionPage еще.

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

Страница, на которой подписался мужчина:
"https://example.com/men/verkhniaia-odezhda/palto/palto-muzhskoe-krutoe"

Страница, на которой подписалась женщина:
"https://example.com/women/platya/midi/plate-pod-zamsh"

Обратили внимание, что после адреса example.com идет идентификация пола men и women?
 

Воспользуемся все тем же блоком “задача - переменная соответствует регулярному выражению” и выясним пол клиента:

 

для мужчины

Сценарий для мужчин

для женщины

Сценарий для женщин

 

Аналогичным образом в этой же ссылке можно определить и категорию товара, которая заинтересовала человека. Верхняя одежда: ".../men/verkhniaia-odezhda/..." - мужчину и платья: ".../women/platya/..." - женщину.

Для этого последовательно добавляется еще один блок переменная соответствует регулярному выражению”, в поле name также указываем subscriptionPage, но в поле pattern уже указываем “.*verkhniaia-odezhda.*” или “.*platya.*

Таким образом, благодаря всего трём параметрам в событии о подписке на web push уведомлении у вас есть возможность не только поприветствовать или поблагодарить клиента на родном для него языке, но и максимально персонализировать сообщение.

При необходимости, после каждой такой проверки контакт можно поместить в определенную группу, добавив соответствующий блок сценария.

Таким образом, благодаря всего трём параметрам в событии о подписке на web push уведомлении у вас есть возможность не только поприветствовать или поблагодарить клиента на родном для него языке, персонализировать сообщение, а также выполнить процедуру сегментации.

 

Сценарий с несколькими последовательными проверками

Пример сценария в котором определяется локализация браузера и пол клиента представлен ниже:

Сценарий с несколькими условиями запуска 

В случае если удалось определить только локализацию, предусмотрена отправка унифицированного сообщения предназначенная для обоих полов. Поскольку в начале производится проверка на соответствие украинскому затем русскому и английскому языках, если ни один из искомых параметров не совпал, произойдет отправка унифицированного уведомления на английском языке.