Наши разработчики в Techmas часто сталкиваются с задачами создания уведомлений (push notifications). Несмотря на простоту и популярность технологии, в её реализации есть ряд особенностей, о которых и пойдёт речь в этой статье.





Push-сообщения могут стать великолепным маркетинговым инструментом, если они грамотно реализованы. Любое мобильное приложение или игра должны выполнять не только свои прямые функции, но и (даже в большей степени) так взаимодействовать с пользователями, чтобы последние с удовольствием возвращались в приложение и покупали дополнения к нему. К слову, по статистике сервиса Kahuna хорошо разработанные push-уведомления увеличили показатель возвратов пользователей в приложения более чем в 2 раза. Анализируемые периоды: 30, 60, 90 дней. Но прежде, чем говорить о грамотной реализации, посмотрим, как работают push-уведомления.

Общие сведения о технологии Push Notification



Push-уведомления – это такой способ распространения контента (системных сообщений), когда уведомления отправляются от сервера клиенту по инициативе сервера на основе определённых параметров. В отличие от обратной схемы «клиент-сервер» (Pull), push-технология выгодна тем, что даёт пользователю таргетированную информацию, которая может быть ему полезна, но об этой пользе он может пока не знать.
Изначально технология Push Notification имела отношение не к мобильным приложениям, а к сети PointCast, занимавшейся рассылкой новостей фондового рынка. Эту же систему давно используют суды США для рассылки подписчикам данных о процессах. Позже Microsoft и Netscape включили технологию в свои браузеры, но из-за низкой скорости подключения пользователей в то время она была вытеснена pull-технологией RSS. И лишь потом термин получил широкую известность после внедрения технологии компанией Google в ОС Android (Google Cloud Messaging, GCM) и компанией Apple в iOS 3 (Apple Push Notification Service, APNS). На примере последнего рассмотрим элементарную схему работы Push-уведомлений.

Схема работы Push Notification на примере сервиса APNS




Важно знать! Для того, чтобы уведомление отобразилось на экране устройства, само приложение не обязательно должно быть запущено – именно для реализации этого преимущества посредником здесь выступает OS. Кстати, такой подход позволяет экономить и заряд батареи смартфона (телефона), и трафик.
  • Для получения Push-сообщений OS должна зарегистрировать мобильное приложение;
  • OS запрашивает у APNS идентификатор устройства (токен);
  • Приложение получает токен от сервера APNS;
  • Приложение отправляет токен обратно на сервер, чтобы далее сервер пользовался им для отправки Push-уведомлений;
  • При наступлении события, определённого разработчиком, сервер, используя токены, отправляет Push-сообщения через APNS;
  • APNS делает рассылку уведомлений в приложение.

Зачем нужны промежуточные сервисы


Существуют нюансы в рассылках push-уведомлений для разных мобильных платформ (Android, iOS, Windows Phone). Допустим, если приложение было удалено пользователем, то все сервисы сообщают о том, на какие устройства не следует больше отсылать уведомления. Осуществляется данный процесс посредством сообщения серверу токенов этих устройств. Однако если у GCM отсылка идентификаторов происходит сразу, то у APNS имеется специальный feedback server (сервер обратной связи), с которого список таких токенов забирается раз в сутки. Для рутинной работы с этими различиями и нужны промежуточные сервисы.

В случае разработки мобильного приложения с помощью какого-либо кроссплатформенного решения (к примеру, Appcelerator) такой промежуточный сервис, как правило, интегрирован в него. Допустим, в том же Appcelerator это Appcelerator Cloud Services (ACS), представляющий собой дополнительный сервис каналов уведомлений. Такой канал (channel) объединяет несколько устройств, являясь своеобразным идентификатором, состоящим из цифр и букв. ACS даёт возможность отправлять пуши и по токену устройств. Итак, данный промежуточный сервис берёт на себя функцию обновления информации об устройствах и взаимодействует с APNS и GCM.

Схема такого взаимодействия выглядит так:

  • При разработке мобильного приложения в него внедряется ключ, который выдаёт ACS;
  • Любое уведомление является словарём формата JSON, состоящим из токена девайса, некоторой служебной информации и полезной нагрузки. Полезная нагрузка (payload) – это сами данные, которые отправляются на телефон.
  • Сервер, пользуясь ключом:
    • получает список каналов и устройств, подписанных на каналы;
    • подписывает (и отписывает) устройства на определённые канал;
    • отправляет push-уведомления на все устройства или только по определённым токенам или каналам устройств.

  • Устройства, в зависимости от их операционной системы, получают push-сообщения от GCM или APNS.

Форма подписки. Современный пользователь не любит навязчивости. По этой причине лучше не показывать диалоговое окно подписки на уведомления во время старта приложения, потому что пользователь ещё не знает, будут ли ему интересны ваши рассылки. Хорошо, если форма подписки на пуш о, например, новых ценах на товары появляется лишь тогда, когда пользователь активирует подписку на интересные ему лоты или направления. Либо выражает согласие на получение пуш-уведомлений в настройках приложения.

Форма уведомления. Сразу выдавайте интересную информацию, лучше в заголовке. Одинаковые пуши вида «Новые распродажи в нашем магазине» не работают: дайте конкретику. Неплохо также использовать Deep Linking (указывать в сообщение внешние ссылки на конкретную страницу сайта).

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

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

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

Тестирование. Используйте разные формы подписки, тексты уведомлений, время рассылки и общую push-стратегию. Следите за отзывами в сети – это даст вам богатую информацию о том, как улучшить рассылку.

Звук уведомлений. Настройте свой, неповторимый. Чтобы пользователь знал, что новое сообщение пришло именно от вашего приложения. Не делайте его раздражающим – сделайте комфортным.

Сервисы автоматизации Push-рассылки


Push Woosh. Выдаёт удобные и понятные отчёты, совместим со многими платформами, отлично сегментирует аудиторию по разным группам признаков.

Urban Airship. Осуществляет таргетинг и анализ аудитории, позволяет выбирать различные стратегии удержания пользователя и создавать уведомления расширенного формата.

Appsfire`s Appbooster. Бесплатный сервис со стандартным набором функций.

Parse Push. Позволяет собирать уникальные данные для аналитики, с лёгкостью интегрируется в любое приложение.

В заключение отметим, что push-уведомления, конечно, являют собой простой и эффективный способ возврата и удержания пользователя в частности и мощный маркетинговый инструмент в целом. Но это с точки зрения пользователя. Со стороны разработчика же существуют некоторые сложности. Реализация уведомлений сильно зависит от внешних вводных: изменения в OS или в промежуточном софте приводит к необходимости доработки приложения. Так, в Appcelerator появился новый инструмент Arrow Push, который пришел на смену ACS – и это лишь один из примеров. Более того, доставка пуша не гарантирована в принципе, а это поднимает вопрос о надёжности технологии Push Notification. Однако любая технология имеет свои плюсы и минусы, и что перевешивает в данном случае – вопрос открытый.

Комментарии (7)


  1. askl
    13.07.2015 10:40
    +3

    Какие-то уж очень очевидные вещи описаны под таким громким заголовком. ИМХО тонкости успешной реализации — это что-то типа того, что описано в блоге у Layer


    1. barsuga Автор
      13.07.2015 10:59

      согласны, поправили. здесь больше к основам, или, скорее, в целом как подходить к вопросу


  1. NtMag1steR
    13.07.2015 12:56

    На Android сейчас можно также доставлять Chrome web push, сообщения выглядят также как и нативные, но не требует установки приложения для подписки пользователя.
    Поскольку не нужно установки приложения, а нужен лишь сайт — это резко расширяет потенциальную аудиторию для рассылок.

    Jeapie и Push Woosh поддерживают и нативные push-уведомления и web в едином интерфейсе и дают SDK.

    Более того, доставка пуша не гарантирована в принципе, а это поднимает вопрос о надёжности технологии Push Notification

    Достаточно актуальный вопрос в последнее время. Из решений — SMS backup для недоставленных сообщений.


    1. BupycNet
      13.07.2015 16:48
      -2

      Кстати, почему то все забывают про мой сервис (PushAll), он правда дает не совсем тоже самое, но как альтернатива ведь тоже неплохо. Без разработки отдельных приложений уведомления можно отправлять на нативные уведомления в браузере, приложение google chrome, android, телеграм и думаю до конца месяца будет iOS.

      «Поскольку не нужно установки приложения, а нужен лишь сайт — это резко расширяет потенциальную аудиторию для рассылок.»
      Тут есть еще недостатки, которые я например решаю — сертификат. У меня уведомления идут через мой сервис, поэтому можно вообще даже без сайта отправлять уведомления. То есть вам даже и сайт то не нужен, можете статьи на каком то сервисе блогов писать, а пушить вообще вручную или RSS подключить. Ну и для сайтов тоже полезно — на все платформы без написания какого либо софта, еще и контролировать доставку можно.

      «Более того, доставка пуша не гарантирована в принципе, а это поднимает вопрос о надёжности технологии Push Notification»
      Да можно гарантировать её проверкой доставки и повтороной отправкой пуша, либо смски либо на почту.


  1. barsuga Автор
    13.07.2015 17:36

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

    PushAll не пробовали, но теперь будем держать в голове :)


  1. HattoriHandzo
    18.07.2015 13:35

    Беспалевная реклама appaccelerator…


    1. barsuga Автор
      18.07.2015 22:34

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