Как сменить поставщика push-уведомлений, не теряя подписчиков

Как сменить поставщика push-уведомлений, не теряя подписчиков

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

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

Одно честное замечание сразу. Отдел продаж каждого поставщика, включая наш, скажет вам, что миграция — это легко. Большинство на этом останавливаются. Эта статья показывает вам механизм вместо этого, чтобы ваш разработчик мог проверить каждое утверждение, включая те, которые мы делаем в конце.

Что такое подписка на веб-push на самом деле

Когда посетитель нажимает «Разрешить» на вашем сайте, браузер создает подписку на веб-push, состоящую из трех частей:

  1. Ваш источник. Точный домен, на котором было предоставлено разрешение (https://yoursite.com). Разрешение хранится в браузере, привязанное к источнику. Оно не упоминает никакого поставщика.
  2. Сервис-воркер. Небольшой файл JavaScript, размещенный на вашем домене, который получает и отображает уведомления. Доставкой управляет зарегистрированный сервис-воркер.
  3. Ключ сервера приложений. Открытая половина пары ключей VAPID. Служба push-уведомлений браузера принимает только отправки, подписанные соответствующим закрытым ключом. Любой, кто владеет этим закрытым ключом, может отправлять сообщения по подписке. (Обзор push-уведомлений на web.dev охватывает полный протокол.)

Сам объект подписки состоит из трех строк: URL конечной точки плюс два коротких ключа, p256dh и auth. Это весь актив. Весь ваш список — это таблица этих записей.

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

Сценарий A: ваши ключи VAPID переносятся, поэтому вы импортируете подписчиков push-уведомлений в первый день

Сценарий A применяется, когда ключи принадлежат вам: вы настроили собственные ключи VAPID или собственный проект Firebase при настройке, или ваш уходящий поставщик соглашается передать пару ключей. Некоторые команды настраивают это намеренно с первого дня; этот подход описан в нашем руководстве по реализации веб-push без привязки к поставщику.

Имея на руках закрытый ключ, ваш новый поставщик может напрямую импортировать подписчиков push-уведомлений: все конечные точки, записи p256dh и auth будут перенесены, и вы сможете отправлять сообщения всему вашему существующему списку с первого дня. Это включает спящих подписчиков, которые не посещали сайт месяцами. Никто не будет повторно подписываться. Никто ничего не заметит.

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

Сценарий B: ключи остаются у старого поставщика, и происходит бесшумная повторная подписка

Сценарий B — это стандартный вариант по умолчанию: поставщик сгенерировал ключи VAPID и сохраняет их. Без закрытого ключа экспортированные записи криптографически бесполезны. Охват с первого дня равен нулю, и предупреждение вашего старого поставщика будет звучать правдоподобно еще примерно один абзац.

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

Почему новому сервис-воркеру не нужен второй запрос

Разрешение на уведомления предоставляется вашему домену, а не поставщику. Браузер уже доверяет вашему домену. Замена сервис-воркера и ключей под уже предоставленным разрешением невидима для посетителя, потому что браузер рассматривает это как реорганизацию собственных внутренних механизмов вашего сайта. Что, собственно, и происходит.

Две ловушки, о которых должен знать ваш разработчик

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

Подписки на поддомены поставщиков никогда не переносятся. Подписки, собранные на yoursite.vendor.com, принадлежат домену поставщика, и ни один поставщик не может их перенести. Эта база данных будет создаваться с нуля. Это самая большая ловушка при любой миграции push-уведомлений и самый веский аргумент в пользу привязки подписок к домену, который вы контролируете в этот раз. Если вы управляете несколькими брендами или региональными доменами, та же логика домена формирует всю вашу архитектуру; мы рассматриваем это в разделе push-уведомления для нескольких доменов.

Вот два сценария бок о бок:

Сценарий A: ключи перемещаютсяСценарий B: ключи остаются у старого поставщика
Когда это применимоСобственные ключи VAPID / собственный проект Firebase или поставщик выпускает пару ключейПоставщик сгенерировал и сохраняет ключи (стандартный вариант по умолчанию)
Охват с первого дняВесь ваш список, включая спящих подписчиковНоль, пока посетители не вернутся
При каждом повторном посещенииПодписчик незаметно переходит на новые ключиБесшумная повторная подписка под новыми ключами, без второго запроса
Кого вы восстанавливаетеВсехВсех, кто снова посетит сайт
Кого вы теряетеНикогоПодписчики, которые никогда не возвращаются (которые и так уже были недоступны для получения дохода)

Почему аудитории, посещающие ежедневно, быстрее всего завершают миграцию push-уведомлений

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

Именно такой ритм возврата является причиной того, что сайты ставок и новостные сайты являются лучшими вертикалями в Интернете для смены поставщиков push-уведомлений: та же частота посещений, которая делает push-уведомления для сайтов ставок механизмом удержания, также сжимает миграцию, которая занимает у других сайтов квартал, до недели или двух. Сайты ставок и игр на PushEngage отправили более 3,5 миллиардов уведомлений, поэтому эти механизмы перехода для нас — ежедневная рабочая реальность, а не теория.

Паттерн возврата аудиторииТипичный переход активной базы
Ежедневные посетители (live-коэффициенты, срочные новости, ежедневные промо)Дни до недели
Несколько посещений в неделю (игроки выходного дня, постоянные клиенты)1–2 недели
Еженедельно или реже (сезонные посетители, потерянные пользователи)Недели, ускоренные отправками от старого поставщика и крупными событиями
Неактивные (без посещений в течение месяцев)Восстанавливаются только в рамках Сценария A

Это типичные паттерны для аудиторий с ежедневными посещениями, а не гарантии; ваша кривая зависит от ритма вашего трафика, и вы будете наблюдать ее в реальном времени на панели управления. Вы также можете изогнуть кривую: запланируйте переход за неделю до крупного матча, и трафик события возьмет переход на себя. Букмекерские конторы, планирующие последовательность push-уведомлений в день матча, уже знают, какие выходные дни это будут.

Push-уведомления приложений проще: ваши токены всегда были вашими

Если вы также отправляете push-уведомления приложений, сделайте перерыв. Эта часть структурно проста, потому что ни один поставщик не может держать ее в заложниках.

Сертификаты и ключи APNs выдаются вашей учетной записи Apple Developer. Ваш проект FCM находится в вашей консоли Google. Поставщик push-уведомлений — это уровень поверх учетных данных, которыми вы владеете, поэтому смена означает подключение нового уровня к тем же учетным данным. Токены устройств экспортируются и импортируются чисто, без переустановок и без повторного запроса разрешения.

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

Если ваше iOS-приложение в настоящее время отправляет уведомления через Firebase, пошаговый процесс — это отдельная тема; см. наше руководство по миграции с Firebase Cloud Messaging на iOS, а не импровизируйте его из этой статьи.

Прежде чем сменить поставщика push-уведомлений, задайте эти шесть вопросов в письменной форме

Экспорт данных поставщика и политики ключей различаются и меняются. Вместо того чтобы доверять любой таблице вердиктов поставщиков (включая ту, которую мы могли бы опубликовать), получите собственные ответы вашего поставщика официально. Электронная почта подойдет; запрос в службу поддержки — лучше. Если вы одновременно оцениваете и другие платформы, те же вопросы послужат полезным фильтром при сравнении альтернатив OneSignal.

  1. Можете ли вы экспортировать полные записи моих веб-push подписок — URL конечной точки плюс ключи p256dh и auth для каждого подписчика — или только внутренние идентификаторы? Внутренние идентификаторы бессмысленны вне системы поставщика.
  2. Вы опубликуете пару ключей VAPID, под которыми были созданы мои подписки? Этот единственный ответ определяет Сценарий А против Сценария Б.
  3. На каком FCM или Firebase проекте работает мой веб-push, на моем или на вашем? Если на вашем, ключи уже могут быть в вашей собственной консоли.
  4. Могу ли я экспортировать сегменты, теги, атрибуты подписчиков и списки блокировок отдельно? Они не передаются вместе с записями подписок автоматически.
  5. Могу ли я экспортировать токены устройств моих push-приложений и в каком формате?
  6. Что произойдет с моими данными, если я понижу уровень или отменю подписку — будет ли автоматическое удаление или период хранения? Некоторые поставщики удаляют неактивные данные подписчиков на более низких уровнях. Всегда сначала экспортируйте.

Чек-лист недели миграции

Распечатайте этот раздел. Восемь шагов по порядку.

  1. Экспортируйте все перед отменой или понижением уровня. Записи подписок, токены приложений, сегменты, теги, атрибуты, списки блокировок. Доступ к экспорту прекращается с окончанием вашего контракта.
  2. Получите ответ по ключам VAPID в письменной форме. Это определит ваш сценарий и то, сможете ли вы импортировать push-подписчиков в первый же день.
  3. Сначала переместите списки блокировок, а не в последнюю очередь. Для операторов ставок и азартных игр это не подлежит обсуждению: игроки, исключившие себя, должны быть заблокированы на новой платформе до возобновления какой-либо кампании, а не урегулированы после.
  4. Отфильтруйте токены приложений по активности за ~270 дней перед импортом.
  5. Установите новый SDK и service worker, и объедините с любым существующим service worker (оболочкой PWA, worker старого поставщика), а не перезаписывайте его.
  6. Не удаляйте файл service worker старого поставщика в первый день. Возвращающиеся посетители все еще несут регистрации, указывающие на него; переход плавно отменяет их регистрацию. Если вы удалите файл слишком рано, вы получите ошибки в консоли вместо миграции. Удалите его при окончательном демонтаже.
  7. Продолжайте использовать старого поставщика для отправки в параллельном режиме. Контринтуитивно, но критически важно: каждое уведомление, отправленное старым поставщиком, вызывает повторное посещение, и каждое повторное посещение завершает миграцию еще одного подписчика. Ваш уходящий поставщик становится вашим лучшим инструментом миграции.
  8. Ежедневно измеряйте переход и переключайтесь на плато. Отслеживайте новую активную базу по сравнению со старой активной базой. Когда кривая выравнивается, завершите демонтаж, отмените старый контракт и архивируйте экспорты.

Стоимость перехода, когда PushEngage делает это за вас

В PushEngage миграция — это услуга «белых перчаток», включенная бесплатно в платные тарифы. Вы получаете инженера по миграции, а не статью из справочного центра: они обрабатывают сопоставление экспорта, управление ключами, слияние service worker и план перехода. Это важно, потому что сбои бывают незаметными — простой импорт с несовпадающими форматами полезной нагрузки может привести к технически успешным, но пустым уведомлениям, что является именно тем классом тихих сбоев, которые специалист обнаруживает до того, как их увидят ваши подписчики.

Установочный звонок занимает около пятнадцати минут: количество подписчиков по каналам, текущий поставщик и вышеупомянутые ключевые вопросы. К концу разговора вы будете знать, относитесь ли вы к сценарию A или B, и у вас будет датированный план.

Если вы готовы сменить поставщика push-уведомлений, начните с шести письменных вопросов в этой статье и посмотрите, как ответит ваш текущий поставщик. Затем посмотрите, что платформа push-уведомлений, построенная на основе сегментации и атрибуции доходов, сделает со списком, которым вы уже владеете, и сравните цены PushEngage с вашим текущим счетом. Каждый платный тариф имеет 14-дневную гарантию возврата денег, поэтому сама миграция push-уведомлений является наименее рискованной частью решения.

Добавить комментарий

Мы рады, что вы решили оставить комментарий. Пожалуйста, помните, что все комментарии модерируются в соответствии с нашей политикой конфиденциальности, а все ссылки являются nofollow. НЕ используйте ключевые слова в поле имени. Давайте вести личный и содержательный разговор.

Вовлекайте и удерживайте посетителей после того, как они покинули ваш веб-сайт

Увеличьте ценность каждого посещения веб-сайта с помощью push-уведомлений, которые трудно пропустить.

  • Бесплатный тариф навсегда
  • Простая настройка
  • Поддержка 5 звезд