Как интегрировать вебпуши на сайтах с поддоменами
Разделение поддоменов по точкам интеграций
При работе с поддоменами следует учитывать, что они по сути являются самостоятельными сайтами. Поэтому рекомендуется для каждого из них создавать отдельную точку интеграции (ТИ) и интегрировать по инструкции.
Преимущества такого способа:
- Подписки в поддоменах не влияют друг на друга.
Например, клиент перешёл на поддомен А и подписался; дальше он перешёл на поддомен Б и заблокировал пуши - подписка на поддомене А не теряется .
- Можно отправлять письма подписчикам конкретного поддомена.
Поддомены в таком случае - это своего рода тематики, поэтому можно фильтровать получателей, которым может быть интересен пуш определённого сайта.
Что следует учитывать
- Для точки интеграции поддомена можно использовать уже существующие операции. Не забудьте добавить в настройках операций эту новую ТИ
- Sender ID можно использовать тот же, что на главном сайте - надо будет добавить новую ТИ в проект FCM. Для этого обратитесть к менеджеру проекта
Объединение поддоменов с корневым сайтом
Если вы всё же хотите объединить корневой сайт и все поддомены в одну общую систему, при интеграции могут возникнуть вопросы.
Как настроить точку интеграции?
В настройках точки интеграции основного сайта укажите, что поддомены должны быть включены.
Это нужно для того, чтобы мы принимали разрешение на показ пушей со всех страниц. При этом клиенту мы запишем именно то разрешение, которое дали на последнем посещённом сайте.
Например, клиент перешёл на поддомен А и подписался; дальше он перешёл на поддомен Б и заблокировал пуши - подписка на поддомене А теряется, мы записываем только блокировку на поддомене Б.
На каких страницах будет появляться окно подписки?
Для появления на сайте окна подписки нужно запустить поп-ап Mindbox для сбора подписчиков веб-пушей и заинтегрировать вебпуши по инструкции. Интеграция должна быть и на корневом домене, и на поддоменных страницах сайта.
Так как поддомены - это самостоятельные сайты, каждый со своим разрешением на показ пушей, при переходе между поддоменами каждый раз будет появляться окно подписки.
Чтобы избежать этого, можно добавить проверку перед отработкой функции mindbox("webpush.create"). Например, при первом изменении разрешения записывать клиенту cookie и в дальнейшем проверять её наличие перед показом окна подписки.
У такого решения есть минусы.
Например, пользователь разрешил показ пушей на корневом сайте - мы это записали; потом он впервые перешёл на поддомен А, на котором у него состояние подписки “всегда спрашивать” - в mindbox попадёт именно это состояние подписки, а окошко из-за проверки мы заново не покажем.
Как получать разрешение на показ со всех страниц?
Чтобы мы получали эту информацию с сайта, на нём должен стоять наш сервис-воркер (SW). Ставить его надо на всех поддоменах.
Так как точка интеграции у сайтов одна, важно не просто наличие разрешения на показ пушей, а разрешение, полученное с последней посещённой страницы.