четверг, 13 июня 2013 г.

Push уведомления и их эффективность.

Месяц назад я решил в своем новом обновлении приложения «Слова любимым» добавить функцию Push уведомлений. Прошел месяц, настал праздник, День России – чем не повод испытать эти уведомления и увидеть их эффективность.
Поговорим немного о Push’ах.
Основная причина использования Push Notifications со стороны разработчика, это оповещения пользователей о каких либо событиях, напомнить пользователю о Вашем замечательном приложении, лишний раз запустить его, что согласитесь довольно таки важно.
В структуре Push Notifications существует специальный сервис в облаке, который делает возможность работы уведомлений. Когда устройство хочет получать уведомления, то обращается к этому сервису и устанавливает с ним постоянное соединение. В ответ на это сервис выдает этому устройству уникальный URI, используя который можно отправить по протоколу HTTP некоторое сообщение. Это сообщение получает тот самый сервис в облаке и пересылает его соответствующему устройству. Логично, что для каждого устройства и приложения этот URI будет уникальный. Таким образом, работу уведомлений в Windows Phone  можно описать так:
  • Устройство устанавливает соединение с сервером Microsoft и получает уникальный HTTP-адрес;
  • Устройство передает этот HTTP-адрес тому, кто будет уведомлять устройство о чем-либо;
  • Когда необходимо уведомить устройство о чем-либо, приложение, которому был передан HTTP-адрес отправляет специальное HTTP-сообщение на этот адрес;
  • Сервис Microsoft получает это сообщение и по возможности доставляет его на устройство. Если доставить сообщение на устройство не удалось, то отправитель получит соответствующее сообщение.
Схематически этот алгоритм можно изобразить следующим образом.


Согласитесь, все довольно просто и понятно.
Существуют четыре разных вида уведомлений для Windows Phone:

  • Tile Notifications – если ваше приложение закреплено на начальном экране, вы можете обновить Tile (плитку) вашего приложения. Например, вы можете изменить фон картинки, используя диапазон чисел 0-99. При отправке уведомления указывается URL некоторого изображения, расположенного в сети. Когда устройство получает уведомление оно самостоятельно загружает изображение из сети и обновляет его на рабочем столе устройства.
  • Toast Notifications – при получении этого типа уведомления на экране устройства всплывает небольшое сообщение, содержащее текст уведомления. При этом приложение в данный момент может быть неактивным. При нажатии на это сообщение пользователь может быстро переключиться к соответствующему уведомлению.
  • Raw Notifications – при получении этого типа уведомления его содержимое передается непосредственно приложению. Приложение в праве обработать содержимое уведомление так, как считает нужным по своему собственному алгоритму. Это наиболее гибкий способ получения уведомлений от внешних сервисов.
  • Voip Notifications – этот тип уведомлений появился в Windows Phone 8. Служит оповещение о входящем звонке для Voip приложений. Он подобен Raw Notifications, но обрабатывается фоновым агентом.
Рассмотрим все описываемые случаи смысла нету, тк в интернете полно литературы как и что происходит, как на русском языке так и на английском.

Для своего маленького эксперимента я использовал Toast Notifications Push.
За месяц работы приложения было собрано 39219 устройств.  
В самом начале я допустил одну маленькую ошибку, которая чуть не вылилась в большую. Не оценив количество устройств, я начал отправлять сообщения в порядке очереди, дожидаясь  отправки предыдущего или ошибки, в результате отправка продолжалась с 11 до 18 часов.

В ответ от сервера нам приходят:
  • 18256 запросов вернулось различными ошибками от сервера (Exeption). В будущем я хочу их дублировать  раза 3 через некоторое время. Считаем, что они не доставлены.
  • 13910 запросов вернулось со статусами: NotificationStatus: Received, NotificationChannelStatus: Active, DeviceConnectionStatus: Connected (RAC) будем считать, что такое сообщение дошло до цели.
  • 7041 запрос вернулся со статусом: NotificationStatus: Received, NotificationChannelStatus: Active, DeviceConnectionStatus: TempDisconnected (RAT). Считаем, что они не доставлены.
  • 10 запросов вернулось со статусами: NotificationStatus: Suppressed, NotificationChannelStatus: Active, DeviceConnectionStatus: Connected (SAC). Считаем, что они не доставлены.
  • 2 запроса вернулись со статусами: NotificationStatus: Suppressed, NotificationChannelStatus: Active, DeviceConnectionStatus: TempDisconnected (SAT).  Считаем, что они не доставлены.

В среднем за это время посещают приложение 1664 пользователя, в результате Push уведомлений мы получили 4735 пользователя, что на 3071 больше. Не все пользователи замечают Toast уведомления, не все переходят, в результате 22% от считавшимися удачными, а если добавить еще RAT, SAC, SAT с которыми не все понятно, то 14,5%. Я рассчитывал на меньшее и очень доволен результатами данного опыта.

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


Комментариев нет:

Отправить комментарий