Главное Авторские колонки Вакансии Образование
4 699 8 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Подводные камни сервисов браузерных push-уведомлений

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

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

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

Вот эта статья

Момент достаточно интересный, если это все реализуется своими силами, то за что мы платим (ну или не платим)

Скорость доставки

Будем оценивать то, как быстро оповещения улетают к сервисам APNS и GCM.

PushAll

Думаю стоит начать с нас. Тут все несколько сложнее чем у других. Мы отправляем оповещения по очереди на группы устройств, порядок такой:

  • GCM (это Андроид приложение, это Веб-пуши, это хром-дополнение) - отправляется пачками по 1000 оповещений за раз. При этом на каждое уходит 100-200 мс. Слава гуглу. То есть за секунду можно отправить 5000 GCM push-уведомлений в одном потоке. Т.е. 2 разных канала отправляющих пуши врядли сильно влияют друг на друга. У нас нет общей очереди - каждый канал отправляет в своём процессе.
  • Safari - тут все сложнее. Создается сокет и отправляются оповещения по одному. Из за небольшого числа выборки мы точно не можем посчитать сколько будет отправляться в секунду. Но мы не замечали больших задержек при отправке через этот метод
  • Firefox - тут все тоже новое, метод похож на Safari, за 5 секунд можно отправить около 40 оповещений. Если таких устройств будет много - мы сделаем многопоточный метод рассылки, что позволит значительно увеличить число оповещений на порядок.
  • Telegram - тут все очень плохо на самом деле. Телеграм сам сказал - отправляйте в один поток. Поэтому тут все самое сложное, отправляется приблизительно 10-20 адресатов в секунду и это нельзя ускорить. Мы отправили запрос в телеграм на создание пакетной отправки - надеемся они это сделают. А пока - из за телеграма мы сделали фоновый метод отправки. Т.е. вы можете передать параметр background=1 и ваш сервис или вы не будете ждать, пока все отправится, вам сразу придет предварительный ответ и ID уведомления.
  • Email - тут приоритет совсем низкий, поэтому в самом конце. Время отправки тут зависит от того, как давно было последнее письмо. У некоторых стоит настройка - отправлять раз в сутки.

OneSignal

Мы не знаем всех тонкостей, но по всем данным ограничение там стоит на уровне 250-1000 пушей в секунду. Все дело в том, что сервис у них бесплатный, видимо так они снижают нагрузку т.к. у них достаточно много крупных клиентов.

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

Мы не нашли упоминаний о ограничении отправки по времени на других сервисах. Перейдем к количеству оповещений.

Количество оповещений на период времени

Не совсем понятно, откуда появилось вообще это значение. Дело в том, что ни GCM и APNS не дают никаких ограничений на число оповещений. Разве что: у пользователя есть оффлайн-кэш, который хранит оповещения максимум месяц в количестве не больше 100.

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

PushAll

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

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

Такая щедрость достигается за счет того, что среди приведенных пользователей может быть будущий создатель нового канала, а он может купить расширенные возможности за 200 руб в месяц, либо даже просто зайти и кинуть пожертвование, ну либо рано или поздно у нас на Adsense накапает 100$ и мы сможем их снять.

Технически, чтобы вам отправить хотя бы 100к оповещений в сутки, например по 10 оповещений в день, нужно 10 тысяч подписчиков. 10 тысяч подписчиков генерируют при подписке где-то 15-30 тысяч заходов на сайт. Если брать в расчет доход Adsense на 1000 показов - это приблизительно 15$. При этом на 1000 пользователей у нас в среднем находится больше 10-20 пользователей, которые хотят создать канал, приблизительно 5 из них могут взять услугу по 200 рублей в месяц. Итого заработаем на этом приблизительно 2000 рублей единоразово, 1000 ежемесячно. Если брать оценку того, что эти пользователи потом смогут платить за платные каналы, например 1% пользователей, по как минимум 50 рублей в месяц. То мы получаем, что с 10 тысяч пользователей, мы будем получать доход еще в 500 рублей в месяц. Т.е. 1500 в месяц по подписке.

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

При этом нет ограничений на число оповещений в сутки. Именно поэтому у нас на 13 тысяч пользователей, 25000 доставленных оповещений за сутки.

OneSignal

Мы не нашли также никаких ограничений на отправку и рассылку. Правильно делают - это лишь по сути услуга прокси.

push.expert

Знаете, а их очень сложно загуглить, пришлось вспоминать название.

У них очень жесткие ограничения, за 500 рублей вы получите 10 тысяч оповещений в месяц. Для примера - в нашем сервисе неофициальный канал медузы отправляет 1926 оповещений в сутки. При 119 подписчиках, из которых 31 активен. Т.е. каждый получает ежесуточно около 60 оповещений (медуза умеет писать много контента, да) Причем на это есть спрос - люди даже кликают т.е. они читают медузу через область оповещений в течении дня.

Еще у них есть тариф "Профессионал" за 20 тысяч рублей в месяц вы получите 1 миллион оповещений в месяц. Тут кстати нам уже сложно сравнить. Байбако например за последний месяц отправили доставленных оповещений 134435. В push.expert это стоило бы 6000 рублей в месяц.

Кстати, именно примерно 6000 рублей будет стоить вам сертификат Apple для оповещений через Safari на год.

При этом push.expert не поддерживает оповещения в сафари и firefox. Странно что на сайте не горит значок yandex - ведь у них с хромом общий протокол.

При этом у Microsoft даже нет планов делать push-уведомления в Edge.

SendPulse

Появились они вовремя - заменили собой уходящих в Канаду Jeapie. Но тут на самом деле очень много подводных камней.

SendPulse занимались рассылками Email и SMS и привыкли продавать услугу количественно, однако тут они выбрали ограничением число подписчиков. И в этом есть огромная проблема.

Например, вы решили попробовать 2500 подписчиков бесплатно. Окей. На вашем сайте есть аудитория размеров в 50 тысяч человек ежедневно. Многие кликнут подписаться - просто так. Так что у вас быстро кончатся эти 2500. Причем вы потратите весь свой лимит на людей - которые даже не хотели бы подписываться.

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

Один из наших пользователей протестировал Sendpulse - на 70 подписавшихся получилось 40 прочтений и 4 клика. И это сразу после подписки. Скорее всего sendpulse не очищают тех, кто уже отписался (запретил оповещения) То есть у вас реально может получиться такая ситуация, когда вы будете платить 2000 рублей, за 7000 подписчиков (тариф 10000), при этом у вас активно получать будет только 2400, а кликов будет в районе 100.

И да, вы все заметили строчку внизу?

А вот и главный подводный камень. То есть, вы сможете делать 1 оповещение в сутки, если слать оповещения всем подписчикам. Это значит, что технически тариф 10000, это ограничение в 300 тысяч оповещений в месяц, а с учетом того, что не все будут получать - это будет 100-150 тысяч оповещений в месяц. Да, по цене это дешево, но теперь представьте себе такую ситуацию: У вас даже если новостной сайт, за день вышли 2 важные новости - вы будете ограничены в том. какие новости отправить, а какие нет.

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

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

Еще немного камней

Есть общие проблемы связанные с сервисами web push уведомлений. Я не буду тут описывать общие проблемы самих web-push. Т.к. я уже это делал

HTTPS и HTTP, перенос аудитории и спам.

Многие сервисы пишут, что через push невозможно рассылать спам. При этом прикрываются тем, что все дело в домене. Если у вас есть HTTPS, то отправка идет через ваш домен, это так, однако тот кто имеет ваши ключи для отправки и токены пользователей - может рассылать спам используя ваш домен как источник.

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

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

Более того, если у вас нет HTTP. То они предоставляют вам поддомен, с какой то стороны это даже хорошо - если пойдет спам вы не при делах. Но тут есть проблема связанная с обновлением service-worker. Если они захотят обновить функционал рассылок - им нужно будет, чтобы все пользователи зашли на все сайты снова, чтобы service-worker обновился. Более того - если они изменят у себя что-то в коде, и это будет не совместимо с текущими сервис-воркерами - это сломает все ваши оповещения.

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

Погружение в зависимость

Из за пункта выше, вы получаете проблемы связанные с тем, что вы просто "подсядете на иглу" Набрав 10000 подписчиков вы уже будете согласны на любые условия. Вам могут поднять тариф, через ваш канал могут начать рассылать рекламные предложения, если вы не захотите переходить на платную версию и т.д.

Текучка

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

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

Итоги

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

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

Более того, мы заметили, что веб-пуши работают похуже, чем например пуши через дополнение в хроме. Как минимум из за того, что в дополнение мы можем сразу передать всю полезную нагрузку, а в web-push обязателен обратный запрос на сайт для получения данных.

Также недавно был убран колокольчик из хрома. Это вот такая вот штука:

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

В нашем решении с дополнением есть история, которая позволяет вернуться к тому оповещению, которого уже нет:

Кстати, благодаря такому решению, конверсия по кликам может быть больше 100%.

На 283 получивших - 793 клика. Это пользователи кликали из истории оповещений или из ленты канала.

+1
В избр. Сохранено
Авторизуйтесь
Вход с паролем