Windows. Вирусы. Ноутбуки. Интернет. Office. Утилиты. Драйверы

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

Проблемные моменты с уведомлениями в ВК

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

  1. Обновления сайта социальной сети, перегруженность серверов и другие технические моменты. Часто можно встретиться с подобным, когда происходят глобальные изменения в социальной сети. Многие функции оказываются недоступными, включая push-уведомления;
  2. Сбой глобальный настроек аккаунта. Возможно, вы сами или ваши родственники могли случайно или намерено сбить некоторые параметры в VK. Решение проблемы связываться с проверкой отдельных параметров и возврат нужных значений в исходное положение;
  3. Изменение настроек в закрытых диалогах с несколькими людьми. Появление сообщений весьма часто раздражает назойливостью, поэтому некоторые пользователи выключают отдельные элементы и жалуются на отсутствие всплывающих окон;
  4. Браузер не поддерживает java-скрипты. Конечно, это редкость сегодня, но проблемные моменты возникают. Тут поможет только одно средство! Что именно, читайте далее в статье.

Технические моменты: ожидание и обновление

В этом разделе попытаемся решить проблемы с пунктом №1 и 4. Что касается первого, то здесь все достаточно просто. Обновления и перегрузки системы – это временное явление, вам потребуется терпение и ожидание. Сколько продлятся такие неудобства? Все зависит от конкретной ситуации:

  1. Если проводятся большая доработка отдельных элементов сайта, то процесс займет до 8 часов. За это время будет выполнена перезагрузка отдельных модулей, наладка связей и проверка работоспособности. Чтобы отслеживать обновления, рекомендуем подписаться на официальную группу разработчиков в VK;
  2. Перегрузка сервера также может стать проблемным моментом для работы с уведомлениями. Сейчас разработчики снизили нагрузку на сайт, но иногда столкнуться с явлением, особенно летом, возможно. Решение одно, ожидание и надежда на самостоятельное исправление ситуации. В случае возникновения «красных ошибок», рекомендуем почистить кэш браузера.

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

Неправильные или сбитые настройки


Часто проблема появляется из-за неправильных или сбитых параметров. Решить вопрос удается через ряд следующие действия:

  1. Требуется перейти в соответствующий раздел. Это выполняется путем нажатия на иконку с именем в правом верхнем углу;
  2. В новом окне «Настройки» потребуется отыскать раздел «Уведомления», после на центральном экране возникнут ползунки. Они должны быть в правом положении. Если это не так, исправьте;
  3. В случае с массовыми диалогами, необходимо проверить включенность соответствующей функции непосредственно в диалоге. Для этого переходим в нужный чат, находим три точки сверху, и выбираем «Отключить/включить уведомления».

Проблема решена, в некоторых случаях потребуется выйти и войти в систему, почистить кэш. Надеемся советы помогли, и вы устранили неудобства. Также нужно обратить внимание, что VK использует уведомления на почту и через SMS, об этом поговорим в будущих статьях.

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

На мобильном устройстве push-сообщения выглядят как текстовые SMS или мобильные оповещения, но они доступны только тем пользователям, которые установили необходимое для их отображения приложение. У каждой мобильной платформы iOS и Android есть собственная поддержка пуш-уведомлений .

Почему они используются?

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

    спортивные прогнозы и новости;

    полезные сообщения, такие как отчеты о трафике, погоде;

    проверку, изменения и информацию о рейсе.

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

    продвижение продуктов или предложений по увеличению продаж;

    улучшение качества обслуживания клиентов;

    преобразование пользователей неизвестного приложения в постоянных клиентов;

    отправка транзакционных квитанций и прочее.

Главное, чтобы веб-ресурс был правильно добавлен и активирован.

Добавление в приложение

Издатель приложений регистрируется с помощью службы push-уведомлений ОС.

Служба ОС предоставляет интерфейс прикладного программирования (API). API - способ, с помощью которого приложение может взаимодействовать с сервисом.

Издатель веб-ресурса добавляет SDK в приложение. SDK - это кодовая библиотека, специфичная для службы push-уведомлений ОС.

Издатель сайта загружает приложение в соответствующий магазин для определённой ОС.

Активация пользователя

Пользователь посещает магазин приложений ОС, загружает и затем устанавливает его.

Пользователь открывает приложение. Уникальные идентификаторы как для приложения, так и для устройства, регистрируются в службе push-уведомлений ОС.

Они передаются обратно в приложение из службы push-уведомлений ОС. Они также отправляются издателю приложений.

Владелец ресурса получает и сохраняет эти регистрационные данные, включая уникальные идентификаторы.

Отправка

Издатель приложений составляет ручное сообщение через пользовательский интерфейс. Или владелец веб-ресурса настраивает автоматическую отправку сообщений через API. Издатель определяет аудиторию, которой будет отправлено push-сообщение и решает, следует ли отправлять сообщение немедленно или по расписанию.

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

Поставщики платформ также предоставляют такие возможности, как:

    Составление отчетов и планирование.

    Автоматизация мобильного маркетинга.

    Сбор и сегментация пользовательских атрибутов.

    Управление данными.

    Безопасность.

    Кросс-платформенная поддержка.

Главное, чтобы пользователь смог вовремя и правильно прочитать отправленное пуш-сообщение.

Как отображаются уведомления на устройствах пользователей?

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

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

Как включить пуш-уведомления на Айфоне?

Чтобы включить push-оповещения на мобильном устройстве iOS:

    Коснитесь «Настройки».

    Найдите и нажмите искомый сайт в списке приложений.

    Нажмите «Уведомления».

    Включите параметр «Разрешить уведомления».

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

Как включить пуш-уведомления на Андроид?

Для настройки получения push-оповещений на этой ОС необходимо:

    Открыть настройки устройства.

    Нажать «Уведомления».

    Найти и выделить необходимый сайт в списке приложений.

    Нажать для подключения «Разрешить включение уведомлений» (другие переключатели могут быть настроены в соответствии с вашими предпочтениями).

    Открыть выбранный веб-ресурс.

    Активировать значок скользящего меню «Настройка уведомлений».

    Включить разрешение на предупреждение и обновление рассылок.

    Коснуться значка «Готово».

Если вы не видите выбранное веб-приложение в настройках уведомлений вашего телефона, вы, возможно, не дали разрешение на отправку уведомлений при первой загрузке. Чтобы исправить это, удалите приложение, а затем снова загрузите его.

Заключение

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

Вы наверняка принимаете оповещения на свою электронную почту: заходите в почтовый клиент и смотрите пришедшие письма. В данном случае эта технология является технологией pull (тянуть), т.е. вы заходите на сайт и "тянете" с него данные, когда они вам нужны.

В случае же с push (толкать) уведомлениями, ресурс проталкивает новые данные вам сам. При этом вы сразу получаете самые свежие данные, ведь в данной технологии нет определенного периода проверки данных, они приходят в режиме онлайн. Используя "пуши" вы не обязательно должны получать уведомления. Через push-технологию можно например синхронизировать данные если они обновились.

Уведомления бывают:

  • Браузерные - через push api или через дополнение
  • Мобильные - через мобильное приложение
  • На PC через приложение, независимо от браузера
Вы можете сразу приступить к созданию канала Push-уведомлений,

Браузерные (web) push-уведомления

Они приходят в браузер с сайта, на котором подписан пользователь. Они могут приходить как на компьютер, так и на андроид-устройство в браузер хром, но iOS устройства не могут принимать веб-пуши ни при каких обстоятельствах.

Вот так выглядят уведомления разных типов в браузере Chrome

Первое оповещение сделано через стандартный Notification API, второе сделано через Push API. Эти оповещения не исчезают - но для них не применяется сглаживание изображения на многих платформах. (вы можете заметить по качеству картинок)
Третий пуш сделан через Rich Notification. Эти оповещения приходят через расширения , в них может быть дополнительная информация, кнопки, изображение под уведомлением. Возможностей больше - но они автоматически скрываются, хотя возможно в будущем будет доступно из "закрепление".
Это оповещения в хроме, но есть еще оповещения в Firefox и Safari.


Firefox

Safari

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

GCM : Google, полностью бесплатно, нужно лишь создать ключ в консоли разработчика
APNS : Apple, требуется любой знакомый разработчик с сертификатом, либо за 100$ в год можно взять его самому
MSP : Mozilla Push Service, полностью бесплатно. Даже не нужна регистрация. Открытый стандарт.

Мы предостерегаем вас, не нужно платить несколько тысяч рублей за количество оповещений или подписчиков. Так как сама услуга рассылок бесплатна (в отличии например от SMS, где нужно платить оператору) брать деньги можно только за услуги посредника, удобство, статистику и т.д. Но это никак не стоит несколько тысяч рублей, тем более с ростом числа подписчиков. Да нагрузка от миллиона оповещений в час будет значительна - за такие цифры можно платить деньги, т.к. ваш сервер может не потянуть. Но поверьте - отправлять даже 100 тысяч оповещений в сутки это ерунда. Через GCM можно за секунду отправить более 5-7 тысяч пушей 5-7 пакетами. Многие сервисы веб-пушей требуют за это по 1000 рублей в месяц или даже больше. За 1 секунду работы небольшого скрипта.
PushAll поддерживает все эти типы оповещений и позволяет делать рассылки абсолютно бесплатно и без ограничений.

Мобильные push-уведомления

Это оповещения, которые приходят вам на мобильный телефон от различных приложений. Например оповещения на Android, через приложение PushAll выглядит вот так
А вот так на iOS в нашем приложении

Вы не сможете прикрутить эти оповещения "нативно" на свой сайт. Существует возможность принимать браузерные оповещения на андроиде через хром, но эти оповещения очень громозки и некачественны, разницу можно оценить на примере ниже:

Сравнение оповещений

Вы можете например отправить оповещение через телеграм (1) , но тогда у вас не будет иконки вашего сайта, а при клике пользователь будет попадать в диалог, а не сразу на ваш ресурс. (2) Это как раз браузерное оповещение на Android, на этом скриншоте не так заметно, но изображение более низкого качества, лишняя кнопка с настройками, и строка с адресом сайта. Плюс ко всему из за обновления контента может появляться лишнее оповещение (4) . Нативное решение через приложение (3) является наиболее привлекательным для пользователя решением.
Push-уведомления на смарт-часах Moto 360:



Наиболее заметна разница на смарт-часах. Сверху веб-оповещение, снизу оповещение через приложение

Также уведомления на Android в последней версии нашего приложения умеют группироваться по каналам:

Группировка уведомлений на Android Android История внутри приложения для iOS

Экзотические оповещения


Вы уже видели выше, что оповещения от нашего сервиса могут приходить даже через телеграм . Засчет этого, пользователи которые используют активно телеграм могут легко подключиться. Также мы отправляем оповещения на электронную почту. При этом оповещения приходят "пачками", через установленные промежутки времени.

В итоге получается, что мы предоставляем безопасный "мост" между пользователем и сторонним сервисом. Пользователь может доверить свой электронный ящик промежуточной стороне, в которой он уверен и не бояться, что его ящик скомпрометируют или он попадет в спам-лист. При этом отправляющий сайт также не платит за почтовые рассылки как и за все остальные виды оповещений.

Письма приходят в стилистике оповещений

Какие виды оповещений наиболее популярны?

У нас большой опыт в рассылки push-уведомлений, мы отправили их более 60 миллионов. Ниже представлены данные по 33214 устройствам в нашей системе, а также какие устройства и методы подключения предпочитают пользователи:
  • 11936 35% - Android приложение
  • 6992 22% - Chrome дополнение
  • 6204 18% - WebPush
  • 3514 11% - Telegram
  • 2688 8% - Email
  • 1465 4% - SocketPush
  • 227 1% - iOS
  • 188 1% - Safari
Как вы видите, около 60% пользователей выбирают нативные решения, которые устанавливаются на их устройства. Проще - не значит лучше. Только 18% пользователей выбирают оповещения, которые включаются в один клик, скорее всего это связано с предыдущим плохим опытом на других сайтах. 11% пользователей используют Telegram - большая часть из них пользователи iOS, которые ранее ждали нативное решение.

По итогам мы хотим донести до своих читателей, что реализация веб-пушей на вашем сайте покроет лишь 18% потребностей вашей аудитории, вы теряете мобильных пользователей, теряете тех, у кого был плохой опыт с веб-пушами и многое другое.
Также интересна высокая доля Email и SocketPush. Для пользователя это наиболее безопасный метод, когда он может открыть сайт и получать с сервисов оповещения, а потом закрыть его и они перестанут ему мешать. При этом нужно понимать, что тут работает тот же принцип, что и в других Push-уведомлениях - когда пользователь появляется онлайн - все пропущенные оповещения приходят . Почему-то многие сервисы web push уведомления преподносят эту функцию как инновацию, но это уже заложено в протоколы GCM и APNS.

Интересно увидеть статистику за последние 2 недели, дело в том, что недавно у нас вышло приложение для iOS, и мы обновили приложение для Android и все несколько изменилось.
Нужно учитывать, что новых крупных каналов за это время не прибавилось - то есть это чисто пассивный приток новых пользователей - 950 устройств.

  • 202 20% - WebPush
  • 72 8% - iOS
  • 38 4% - Email
  • 3 около 0% - Safari
  • 1 около 0% - SocketPush
По этой статистике видно - пассивно сильно растет WebPush как самый простой способ подписки для небольшого числа каналов. Однако при этом 70% используют нативное решение. Более того - iOS приложение устанавливают чаще чем добавляют бота в телеграм.

Если мне все таки нужны чистые web push уведомления на своем сайте?

Начнем с того, что вам понадобится:
1. SSL-сертификат. Его можно получить бесплатно, но основная его проблема не в том, что его можно купить или получить. Основная проблема в нагрузке. Дело в том, что при осуществлении зашифрованного соединения расходуется очень много ресурсов сервера. Это значит, что если у вас сервер справлялся с нагрузкой без SSL, но был нагружен на 50%, скорее всего вам придется купить еще 2-3 сервера, либо провести очень большую оптимизацию. Также в моменты рассылок, вам нужно будет отдавать контент (заголовок и текст) оповещения всем пользователям, которые его примут. То есть если у вас 100 тысяч подписчиков, то к вам на сервер за 10 секунд придет несколько тысяч запросов и все они будут требовать SSL Handshake.

2. Контроль устройств и база данных. Вам нужно будет записывать каждого пользователя и его ключ, следить, чтобы он был новым (он иногда обновляется) отбрасывать старые данные, самим собирать статистику и т.д.

3. Ключ для GCM в консоли Google - это бесплатно. Чтобы отправлять оповещения на Safari нужен аккаунт разработчика - он стоит 100$ в год.

Неумелое использование оповещений, особенно если вы будете вызывать окно запроса сразу как пользователь заходит на сайт может привести к плачевным последствиям



Пользователи iGuides "очень рады" оповещениям

Дело в том, что многие пользователи активируют оповещения, не понимая что это такое. Фактически, если пользователь не подтвердил своё желание получать от вас рассылки (в здравом уме), а вы присылаете ему контент, то по закону это является спамом. То есть, любой пользователь, который нечаянно кликнет "Разрешить" на вашем сайте, а вы его у себя на сайте не предупредите о том, что вы будете ему рассылать оповещения, может подать на вас в суд за спам.

Вы можете сами реализовать оповещения, и мы не будем её тут полностью переписывать (только если потом, подробно сами инструкции с кодом)

А есть готовые решения для браузерных оповещений?

Если вы сами не можете реализовать оповещения, но вам нужны именно браузерные уведомления на вашем сайте - вы можете попробовать например OneSignal . Они предоставляют неплохие оповещения, причем бесплатных тарифных планов должно хватить.

Ни в коем случае не используйте сервисы, которые просят с вас деньги за число подписчиков. Дело в том, что со временем все больше и больше пользователей будут запрещать эти оповещения на вашем сайте. Вы обнаружите, что некоторая доля ваших оповещений не доходит. Сначала это будет 30%, потом 40% и может дойти даже до 80%. При этом с вас будут требовать сумму за полное число подписчиков.

Также обращайте внимание на мелкий текст - некоторые сервисы ограничивают оповещения. Например ограничение в 30 оповещений в месяц каждому пользователю. Что это значит? Это значит, что вы сможете отправить 1 оповещений в сутки всем пользователям. Если у вас статьи на сайте, это еще не так плохо - можно выделить одну важную и отправить. Если же вам нужно рассылать личные сообщения и иногда больше 1го оповещения в сутки - это недопустимо. Такие сервисы будут требовать с вас за каждые 30 оповещений полную ежемесячную плату - за бесплатные оповещения.

Итоги

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

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

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

Сервис, в рамках которого реализовано приложение под Android, предъявляет довольно жесткие требования к работе Push-уведомлений. Необходимо в пределах 30-60 секунд оповестить пользователя о некотором действии. При успешном оповещении с устройства пользователя отправляется запрос на сервер с соответствующим статусом. Из документации известно, что сервис GCM (Google Cloud Messaging) не гарантирует доставку PUSH-уведомлений на устройства, поэтому в качестве backdoor варианта, при нарушении этих временных рамок, наш сервис уведомляет пользователя с помощью SMS сообщения. Поскольку стоимость SMS сообщения существенно выше чем PUSH-уведомления, необходимо максимально сократить поток SMS сообщений на клиентские устройства.

Проштудировав документацию и прикрутив пуш-уведомления, мы разослали нескольким клиентам первую сборку приложения для теста и стали ждать. Результаты были примерно следующими:

  • при активном Wifi соединении все работает идеально: уведомления доставляются, клиенты рады.
  • при активном мобильном интернете началось самое веселье.
Некоторые клиенты писали, что испытывают задержки в доставке пушей, либо получали одновременно и PUSH и SMS, что достаточно не практично. Другие писали, что вовсе не получали уведомлений, а только SMS. У третьих, как и у нас на тестовых устройствах, все было ок. Собрав с недовольных клиентов максимально возможную информацию, стали разбираться в проблеме и вывели следующий список ограничений (этот список позже вылился в полноценный FAQ):
  • включенный режим Энергосбережения (например, Stamina на устройствах Sony) влияет на работу Push уведомлений;
  • у пользователя обязательно должен быть минимум 1 активный Google аккаунт на устройстве;
  • необходимо удостовериться в том, что на устройстве установлена актуальная версия приложения “Сервисы Google Play”;
  • проверить, не отключены ли уведомления для приложения (галочка на страничке приложения в настройках телефона);
  • проверить, не ограничена ли работа фонового режима для приложения (настройка расположена в меню «Использование данных»);
  • в документации к GCM указано, что уведомления рассылаются только по определенным портам, поэтому настройки роутера, файервола и антивируса так же стоит учитывать.
Разослав данную памятку по всем клиентам, мы снова стали ждать результатов. И они оказались снова «не очень». Стали копать дальше.

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

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

  • проблема возникает только при подключении к мобильному интернету;
  • по данным клиентов, проблема возникает на версии андроида 4 и выше.
И так, перейдем к реализации.

Бывалый разработчик под Android сходу скажет, что решений задачи как минимум 2: использовать Service или AlarmManager. Мы попробовали оба варианта. Рассмотрим первый из них.

Для того, чтобы создать неубиваемый системой сервис, который постоянно будет висеть в фоне и выполнять нашу задачу, мы использовали метод:

StartForeground(int notificationID, Notification notification);
где

  • notificationId - некоторый уникальный идентификатор уведомления, который будет выведен в статус баре и в выезжающей шторке;
  • notification - само уведомление.
В данном случае обязательным условием является отображение уведомления в статус баре. Такой подход гарантирует то, что сервису будет дан больший приоритет (поскольку он взаимодействует с UI частью системы) в момент нехватки памяти на устройстве и система будет выгружать его одним из последних. Нам это уведомление не нужно, поэтому мы воспользовались следующим велосипедом: достаточно запустить одновременно с первым сервисом второй и для обоих сервисов в качестве notificationID использовать одно и тоже значение. Затем убить второй сервис. При этом уведомление пропадет из статус бара, но функциональные и приоритетные возможности первого сервиса останутся.

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

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

  • данные о «будильниках» будут стерты после перезагрузки устройства;
  • данные о «будильниках» будут стерты после обновления приложения.
Первыми граблями, на которые мы наступили, был метод

SetRepeating()
который позволяет установить повторяющийся с некоторым интервалом «будильник». Прикрутив данный способ, стали тестировать, и тесты показали обратное - «будильник» не повторялся. Стали разбираться в чем дело, посмотрели документацию. И именно там нашли ответ на вопрос - начиная с 19 API lvl (Kitkat) абсолютно все «будильники» в системе стали разовыми. Вывод - всегда читайте документацию.

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

Private static void setUpAlarm(final Context context, final Intent intent, final int timeInterval) { final AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); final PendingIntent pi = PendingIntent.getBroadcast(context, timeInterval, intent, 0); am.cancel(pi); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { final AlarmManager.AlarmClockInfo alarmClockInfo = new AlarmManager.AlarmClockInfo(System.currentTimeMillis() + timeInterval, pi); am.setAlarmClock(alarmClockInfo, pi); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval, pi); else am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval, pi); }
Хочу обратить внимание на флаг AlarmManager.RTC_WAKEUP - именно с помощью него система позволит нашему приложению «проснуться» при неактивном экране, когда устройство находится в заблокированном состоянии.

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

  • в сообщении, отправленном средствами GCM на устройство, содержится некоторый уникальный ID;
  • получив данные GET запросом в фоновом режиме проверяем, существуют ли уже запись с таким ID на устройстве;
  • если локально на устройстве таких данных нет, мы запоминаем этот ID и время его получения T1;
  • ждем PUSH с таким же ID, при получении запоминаем время T2 и проверяем разницу между T2 и T1;
  • если разница составляет больше некоторого временного критерия (значения), то на устройстве наблюдается проблема с доставкой уведомлений и для корректной работы сервиса необходимо постоянно запрашивать данные в фоновом режиме с сервера (критерий советую выбирать исходя из решаемой задачи. В нашем случае, был выбран критерий равный 5 минутам);
  • данную разницу стоит вычислять несколько раз, например 5-10 раз, только после этого делать вывод о том, что устройство действительно содержит проблему с получением Push уведомлений (таким образом исключается ситуация банального разрыва соединения, таймаута и пр.);
  • необходимо прогонять данный алгоритм периодически (например, раз в неделю, или после обновления ОС на устройстве).
Всем добра. И поменьше подобных костылей.

P.S.
В процессе тестирования очень помог

В мире информационных технологий используется только малая часть всех изобретений. А ведь большинство вещей разрабатывается именно для того, чтобы облегчить нашу жизнь. Вот про одно из таких улучшений и пойдёт разговор в статье. Это Push-уведомления. Что они собой представляют и где могут быть использованы? Push-уведомления - что это? iPhone, Android, многофункциональные телефоны - где они настраиваются и как их включить/отключить?

Знакомьтесь - Push-уведомления

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

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

Причиной возникновения данной технологии стало желание специалистов поддерживать круг пользователей своих разработок. Настройка Push-уведомлений не представляет собой ничего сложного. В конце статьи содержится информация об особенностях их включения/отключения на разных операционных системах.

Варианты применения Push-уведомлений

Где же можно использовать такую технологию? Давайте немного остановимся на статистике, которой могут похвастаться Push-уведомления. Что это нам даст, рассмотрим позднее. Итак:

  1. Больше всего (41%) они используются для того, чтобы уведомить о выходе новых приложений или обновлениях в уже существующих.
  2. Затем (24%) идёт рассылка про специальные предложения.
  3. Для информирования о новом контенте, который появился в программе, применяется в 14% случаев.
  4. Меньше всего целенаправленно (12%) используются для рассылки рекламных и/или реферальных ссылок.
  5. Оставшиеся 9% приходятся на другие виды информирования.

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

Новый канал маркетинга

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

Push-уведомления должны содержать своевременный и релевантный контент. Так, в приложении, которое нацелено на детей, реклама кофе будет очень не к месту, что, в свою очередь, наверняка приведет к к потере популярности.

Пример использования

Популярным является применение такой технологии для краткого уведомления о действии друзей. Рассматривая это, можно вспомнить про "Твиттер", который информирует своих пользователей о возникающих изменениях в профилях друзей.

Некоторые компании используют GPS, чтобы определять, где находятся их клиенты, и в случае если вблизи окажется их торговая точка, они шлют соответствующее уведомление. Важным является своевременность получения сообщения. Реализационная особенность заключается в том, что для Push-уведомления не нужен доступ в Интернет, ведь зачастую вся необходимая информация хранится в самом приложении (как правило).

Особенности использования

Итак, если было принято решение об использовании Push-уведомлений как части маркетингового плана, то не лишним будет убедиться, что они отвечают таким условиям:

  1. Предоставляемый контент должен быть актуальным и релевантным.
  2. Должна быть возможность отказа от рассылки.
  3. Желательно осуществить привязку к социальным сетям, чтобы пользователи имели возможность обсуждения.
  4. Следует грамотно подбирать количественную политику - получать по 20 уведомлений в день ни у кого нет желания.

Сейчас можно переходить уже к активации подобной технологии. Для простоты понимания порядок действий будет разбит в зависимости от операционной системы, которая установлена на мобильном устройстве. Итак, как настроить Push-уведомления?

Android

Это самая популярная операционная система, которая получила свой статус благодаря бесплатному распространению и постоянному совершенствованию. Как включаются/выключаются Push-уведомления на нём? Для отключения необходимо выполнить ряд действий в таком порядке:

  1. Зайдите в настройки телефона.
  2. Перейдите в свой аккаунт, потом - в уведомления, и уже там увидите информацию о Push.
  3. Выберите желаемые настройки, ограничения на получение - в общем, делайте всё так, как хочется.

Но что делать, если есть желание включить/отключить Push-уведомления не для всех, а только для одного приложения? На этот случай тоже предусмотрен свой алгоритм:

  1. Зайдите в настройки.
  2. Перейдите к такому пункту, как «Уведомления».
  3. Там будут представлены все установленные на сенсорном телефоне приложения, и вам следует выбрать свой объект, нажав на него.
  4. Отключите или включите функцию получения сообщений от данной программы.

Как видите, в выполнении данных действий нет ничего сложного, и это не только на операционной системе "Андроид". Push-уведомления с такой же легкостью включаются/отключаются и на других устройствах.

iPhone и iPad

Как здесь включить и iPad ничем принципиальным здесь не отличаются. Здесь будут рассмотрены операции с данной технологией по предыдущему принципу. Итак, чтобы отключить или включить сообщения, получаемые от конкретных программ, вам необходимо выполнить такую последовательность действий:

  1. Перейдите на главный экран своего устройства и найдите кнопку, которая выглядит как двойной круг, в котором есть прообраз дороги, расходящейся на два направления под углом 90 градусов.
  2. Найдите кнопку «Уведомления», а потом - приложение, которое вас интересует.
  3. Около пункта «Разрешить уведомления» вы увидите кнопку, размещённую в ползунке. Чтобы включить/отключить уведомления, нажмите на неё. Если она белая, то это значит, что получение сообщений на данный момент запрещено. В случае когда кнопка имеет зелёный цвет, вы уже получаете уведомления от данной программы.

А как отключить подобные сообщения совсем? Для этого выполните такую последовательность действий:

  1. Зайдите в настройки.
  2. Перейдите в свой аккаунт.
  3. Зайдите в уведомления.
  4. Перейдите в раздел Push.
  5. Проводите настройку по своему собственному желанию.

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

Многофункциональный телефон

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

  1. Находясь на главном экране, нажмите на «Меню».
  2. Выберите «Настройки» и ищите «Push-уведомления». Они могут быть вынесены в отдельное подменю или находиться в «Параметрах телефона или связи».
  3. Настраиваете данную технологию на свой вкус.

Заключение

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

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

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ: