Как Мы Разработали Нашу Систему Push-Уведомлений (И Почему)

Сегодня, наверное, ни одно мобильное приложение не обходится без push-уведомлений.

На рынке уже есть множество готовых решений этой важной задачи.

Но, как это обычно бывает, если хочешь сделать что-то хорошо, надо делать это самому.

В этой статье мы спросили Девелопер УБАНКа Денис Боровиков расскажите о своем опыте создания мобильной системы push-уведомлений для УБАНК и поделитесь советами для тех, кто хочет решить ту же проблему.



ПОЛУФАБРИКАТЫ НЕ ДЛЯ НАС

Среди существующих систем облачных push-рассылок можно отметить такие сервисы, как инфобип , Джипи , Пушвуш , Городской дирижабль .

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

Звучит хорошо, но вникая в детали, понимаешь: это как готовые блюда.

Купила замороженный полуфабрикат, поставила в микроволновку, и получилось съедобное блюдо.

Мой желудок был полон, но без удовольствия.



Как мы разработали нашу систему push-уведомлений (и почему)

Карл Лендер Для УБАНКа главный недостаток всех этих облачных решений в том, что они могут прокачивать только всю клиентскую базу сразу.

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



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

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

После небольшого исследования я отказался от идеи готовых решений.

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

Например, когда нам понадобится поддержка большего количества платформ (добавление Windows Phone и Web), мы будем отправлять push-уведомления через облако, а не напрямую в APNS и GCM. Но нам пока все это не очень интересно.



УМНЫЙ Почтальон

Разработанная мною система рассылки УБАНКа представляет собой отдельный модуль платежного приложения, написанный на языке Scala. На разработку у меня ушло около двух месяцев.

Можно было бы сделать быстрее, но у меня было много параллельных задач.

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

В общей сложности это десятки миллионов записей — мы не хотели засорять ими основную базу приложения.

Работа модуля не влияет на основную систему.

Поэтому мы можем протестировать изменения (например, отключить или перезапустить рассылку).

Основное приложение не будет затронуто.

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

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

Первая группа — это те, кто зарегистрировался, но никогда не пользовался сервисом.

Второй — пользователи, которые когда-либо совершали один платеж, а затем перестали пользоваться УБАНКОМ.

Третья группа — это люди, которые пользовались приложением, но не открывали его последние три месяца.



Чуть позже мы поняли, что упустили достаточно значительную аудиторию людей, которые не совершали платежей в течение месяца.

Многие из них не попали во вторую группу, поскольку совершили более одного платежа.

Рано или поздно некоторые из них попадут в третью группу.

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

И не грех напомнить о себе немного раньше.

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

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

Как мы разработали нашу систему push-уведомлений (и почему)

Янвиллемсен

РУЧНОЕ УПРАВЛЕНИЕ

Но определить, кому нужно послать толчок, — это одно.

Понимание того, как именно и когда это сделать, — это другое.

Правила, кому и как мы отправляем push-уведомления, формировались постепенно.

Основные из них: частота отправки (раз в неделю), максимальное количество отправок (не более пяти на одного человека).

Мы также не отправляем push-уведомления ночью.

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

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

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



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

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

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



ПРИШЛИТЕ НАМ ЦИФРЫ, ПОЖАЛУЙСТА

Нам важно отслеживать статистику по ключевым показателям по каждому рассылке.

Поэтому в УБАНКе мы сохраняем историю каждого из них, чтобы иметь возможность оценить эффективность push-уведомлений.

Привязал ли человек карту или совершил покупку — вся эта информация раз в час автоматически проверяется и отправляется в APNS или GCM, в зависимости от того, на Android или iOS клиент. Для ускорения процесса мы используем пакетную отправку.

При отправке в GCM не забудьте, кстати, установить параметр отправки задержки_пока_идле в значение true — оно указывает на то, что нет необходимости доставлять пуш пользователю, если устройство не активно.

Наша система push-уведомлений имеет веб-интерфейс.

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

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

Но у нас также есть загрузка в Xel. Естественно, все расчеты по каждой группе маркетологи делают там.

Анализируйте результаты каждой пробной рассылки и вносите коррективы.

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

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

, модель устройства и часовой пояс пользователя.

Вытаскиваем всю интересующую для маркетинга статистику и сохраняем ее на сервере.



ВАША ПОРЦИЯ, СЭР

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

Запустив нашу систему впервые, мы в УБАНКе рассылали push-уведомления сразу большому количеству целевых групп.

Многие ответили сразу и одновременно вошли в приложение.



Мы не ожидали такого высокого уровня конверсии.

Наш сервер не выдержал такой нагрузки и завис.



Как мы разработали нашу систему push-уведомлений (и почему)

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

Собственная разработка предоставляет возможности, которые никогда не предоставит готовое решение.

По крайней мере, такова реальность в случае push-уведомлений.

Конечно, мы планируем развивать эту систему.

Теперь наша задача — повысить эффективность рассылок.

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

Но об этом, пожалуй, в другой раз.

Теги: #push-уведомления #push-уведомления #push-уведомления #mongodb #ubank #платежные системы #scala #разработка под Android

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.