Upload
alexandr-mikhaylenko
View
629
Download
3
Embed Size (px)
DESCRIPTION
Описана методология построения бюджетного бекэнда для push-уведомлений своими руками. Как избежать трат на облачные системы, в чем преимущества собственных решений.
Citation preview
Методология построения мобильных PUSH бекэндов
Александр Михайленко, Jeapie14.06.2014
Виды PUSH-уведомлений
• Транзакционные• Событийные• Маркетинговые
● Native PUSH● Rich HTML5 PUSH
Почему маркетинговые работают?
1. В качественных 50+% на подписке.2. 26% пользователей запускают приложение только
один раз.3. Только 26% становятся сразу достаточно вовлечены.4. 2x удержание, +26% monthly app opens.5. 25+% ожидают гибкое изменение UX в зависимости
от локации и др.
Задача
1 млн. push-уведомлений
< 3 минут
Решение проблемы “в лоб” №1
Parse: игра на понижение
Было (c 2011г.): FREE 1 000 000 PUSH notificatons /mo
Стало (с 1 мая 2014г.): FREE 1 000 000 Unique recipients
Решение проблемы “в лоб” №2
● https://github.com/Redth/PushSharp● https://github.com/rpush/rpush● https://github.com/jleclanche/django-
push-notifications● https://github.com/duccio/ApnsPHP● https://github.com/notnoop/java-apns● https://github.com/neoziro/push-notify● …
Пишем свой бекэнд
Ожидание Реальность
GCM (Android)
1. HTTP: api_key(header), device tokens(json), data {text:”hello”, count:3, img11:”url”}
2. Парсим данные на стороне приложения (GCMReceiver)3. Show local notification на стороне приложения
1 block - 100 tokens. На любом языке ~0,4 c.
Скорость: 300/с. не напрягаясь
APNS (iOS)
1. Socket: certs (prod, test).
2. Жесткий формат{aps:{ body: “text”, sound: “default”, badge: 2 },own:”data”}
3. 255 chars, иначе разрыв
for(i:=0, i<n, i++){ sendPush($id); }
+
CRON
Особенность APNS
● One connection for mass push● Up to 20 connections from 1 IP● Кодируйте русский правильно. А то '\u0430' => 'а'
Итог
• Синхронная передача 1/с. на отсылку + ожидание.
• Запустим 20 процессов - 20/с. • 1 000 000 -> 13 часов.
Асинхронная отсылка
Node.js (https://www.npmjs.org/package/apnagent)
Итог
• Асинхронная передача 300/с. • Запустим 20 процесс - 6000/с. • 1 000 000 -> 2 м. 46 с.
1 VPS за $7 в месяц
Чего-то не хватает?
1. Фен-шуй
• Доставка по расписанию согласно временным зонам.• Учет локализации.• Несколько устройств у одного пользователя. Боремся с
дублированием.• Перенос в облако и настройка масштабирования.• Аналитика доставки и открытия на стороне девайса.
2. Rich PUSH (Splash)
1. Конструктор2. A/B тестирование3. Placements4. Специальная логика
3. Таргетинг?
ИЛИ
+293% more response on average
Накладываем маркетинг на аналитику
Специализированные сервисы
Спасибо за внимание!
Александр МихайленкоChief Business Development Officer
Jeapie
@alexandrmikhfb.com/alexandrmikh