Почему Push уведомления не доставляются?

15 апреля 2021 года
Самый востребованный и динамично развивающийся канал коммуникаций с клиентами на сегодняшний день - это Push уведомления в мобильные приложения. Главными причинами такой востребованности являются:
  • низкая стоимость Push, часто равная нулю;
  • высокий уровень отклика.
Push уведомления - это не гарантированный канал доставки, и проблема, с которой сталкиваются компании при самостоятельном запуске Push - это уровень доставки, который обычно варьируется от 50% до 70%. То есть, от 30% до 50% сообщений либо не будут доставлены вовсе, либо, если компания имеет необходимые технологии для использования каскадных сценариев доставки, будут переотправлены в SMS или по другим каналам. Это значительно повышает затраты (для крупных компаний это миллионы рублей ежемесячно).

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

В чем же причины того, что Push уведомления не доставляются в мобильные приложения?
Особенности устройств китайских производителей
Мобильные устройства на базе ОС Android выпускаются большим количеством производителей в Китае, которые всячески оптимизируют автономность, производительность и другие характеристики своих устройств. Из-за этого активность приложения в фоне может быть ограничена. Если приложение запущено и находится в памяти устройства, то уведомления доставляются. Но большую часть времени телефон не используется, а если приложение давно не запускалось пользователем, проблемы с доставкой усугубляются.

Проблемы с доставкой Push на различные китайские Android устройства подтверждаются множеством статей, содержащих рекомендации для пользователей по настройке своих устройств. Но повышение уровня доставки в целом - это гораздо более сложная задача, которая требует узкоспециализированной экспертизы, значительных усилий и ресурсов со стороны разработчика.
Сетевые проблемы
Если у устройства отсутствует доступ к сети интернет, Push уведомление не будет доставлено. В облачных Push сервисах мобильных платформ Android и iOS учтены ситуации, когда на устройстве нет Интернета. Какое-то время сообщение находится в очереди и отправляется при доступности устройства, если его срок не истек или оно не было замещено другими сообщениями.

Конечно, отправитель не может влиять на фактическое подключение устройства получателя к Интернету. Но можно повлиять на доставляемость сообщений при появлении устройства в сети. Это важно, так как покрытие мобильной сети и доступ к Wi-Fi есть не везде, а периодическое отсутствие Интернета на устройстве - нормальная ситуация.

Кроме того, в некоторых случаях операционная система может ограничивать доступ к сети какого-либо определенного приложения. Это может привести к тому, что Push не доставится, придет с задержкой или информация о доставке не будет передана приложением на сервер-отправитель. У подобных проблем есть решения, реализуемые на стороне мобильных приложений, и их нужно активно применять.
Версии операционных систем
Со временем мы заметили, что уровень доставки Push на разные версии ОС может отличаться. Часто это коррелирует с оптимизациями энергопотребления и улучшениями, связанными с функционалом самих Push. Нововведения в ОС могут ухудшить долю доставляемых сообщений.

Таким образом, выход новых версий мобильных ОС может как повысить, так и понизить процент доставки Push. В любом случае для поддержания высокого качества Push сервиса от разработчика требуется мониторинг нововведений и своевременное применение лучших практик.
Отключение вендоров от сервисов Google
В конце 2019 года компания Google закрыла доступ к своим сервисам для компании Huawei. Это коснулось и работы Push. В результате устройства бренда Huawei и его суббренда Honor, выпущенные после ноября 2019 года, перестали получать Push сообщения через Firebase Cloud Messaging от Google. Отправка Push на довольно большой сегмент устройств нарушилась.

Huawei запустили собственный Push сервис, использование которого наряду с Apple Push Notification service и Firebase Cloud Messaging позволяет полноценно отправлять Push на устройства компании.
Невозможность уведомить о доставке
Важно не только доставить Push, но и знать статус его доставки. Случаются ситуации, когда Push считается недоставленным, хотя фактически он был доставлен на устройство, а приложение не смогло уведомить об этом сервер отправителя.

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

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

Это связано с тем, что ОС Android отслеживает действия пользователя с приложением и присваивает приложению приоритет в соответствии с этим.
Активность приложения в фоне
На доставляемость пушей также влияет и то, как разработано приложение, а точнее - какие действия выполняет приложение, находясь в фоне. Например, если приложение активно использует сеть в фоновом режиме, операционная система с большой вероятностью ограничит его активность или полностью заблокирует для сохранения заряда аккумулятора устройства.
Как повысить процент доставки Push?
Существует ряд практик, применение которых в конечном счете позволит поднять долю доставляемых Push сообщений до 90% и более. Это требует наличия целой команды разработки, которая будет выделено заниматься именно этим вопросом, находить проблемные места, экспериментировать, применять решения, оценивать результат и так далее.

Оптимальный вариант - внедрить готовое проверенное решение, которое гарантированно обеспечит высокий процент доставки Push, например, Сервер уведомлений WINGS.

В следующей статье мы рассмотрели и сравнили различные варианты реализации Push.