Бекэнд для push-уведомлений своими руками

21
Методология построения мобильных PUSH бекэндов Александр Михайленко, Jeapie 14.06.2014

Upload: alexandr-mikhaylenko

Post on 29-Nov-2014

623 views

Category:

Mobile


3 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Бекэнд для push-уведомлений своими руками

Методология построения мобильных PUSH бекэндов

Александр Михайленко, Jeapie14.06.2014

Page 2: Бекэнд для push-уведомлений своими руками

Виды PUSH-уведомлений

• Транзакционные• Событийные• Маркетинговые

● Native PUSH● Rich HTML5 PUSH

Page 3: Бекэнд для push-уведомлений своими руками

Почему маркетинговые работают?

1. В качественных 50+% на подписке.2. 26% пользователей запускают приложение только

один раз.3. Только 26% становятся сразу достаточно вовлечены.4. 2x удержание, +26% monthly app opens.5. 25+% ожидают гибкое изменение UX в зависимости

от локации и др.

Page 4: Бекэнд для push-уведомлений своими руками

Задача

1 млн. push-уведомлений

< 3 минут

Page 5: Бекэнд для push-уведомлений своими руками

Решение проблемы “в лоб” №1

Page 6: Бекэнд для push-уведомлений своими руками

Parse: игра на понижение

Было (c 2011г.): FREE 1 000 000 PUSH notificatons /mo

Стало (с 1 мая 2014г.): FREE 1 000 000 Unique recipients

Page 8: Бекэнд для push-уведомлений своими руками

Пишем свой бекэнд

Ожидание Реальность

Page 9: Бекэнд для push-уведомлений своими руками

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/с. не напрягаясь

Page 10: Бекэнд для push-уведомлений своими руками

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

Page 11: Бекэнд для push-уведомлений своими руками

Особенность APNS

● One connection for mass push● Up to 20 connections from 1 IP● Кодируйте русский правильно. А то '\u0430' => 'а'

Page 12: Бекэнд для push-уведомлений своими руками

Итог

• Синхронная передача 1/с. на отсылку + ожидание.

• Запустим 20 процессов - 20/с. • 1 000 000 -> 13 часов.

Page 13: Бекэнд для push-уведомлений своими руками

Асинхронная отсылка

Node.js (https://www.npmjs.org/package/apnagent)

Page 14: Бекэнд для push-уведомлений своими руками

Итог

• Асинхронная передача 300/с. • Запустим 20 процесс - 6000/с. • 1 000 000 -> 2 м. 46 с.

1 VPS за $7 в месяц

Page 15: Бекэнд для push-уведомлений своими руками

Чего-то не хватает?

Page 16: Бекэнд для push-уведомлений своими руками

1. Фен-шуй

• Доставка по расписанию согласно временным зонам.• Учет локализации.• Несколько устройств у одного пользователя. Боремся с

дублированием.• Перенос в облако и настройка масштабирования.• Аналитика доставки и открытия на стороне девайса.

Page 17: Бекэнд для push-уведомлений своими руками

2. Rich PUSH (Splash)

1. Конструктор2. A/B тестирование3. Placements4. Специальная логика

Page 18: Бекэнд для push-уведомлений своими руками

3. Таргетинг?

ИЛИ

+293% more response on average

Page 19: Бекэнд для push-уведомлений своими руками

Накладываем маркетинг на аналитику

Page 20: Бекэнд для push-уведомлений своими руками

Специализированные сервисы

Page 21: Бекэнд для push-уведомлений своими руками

Спасибо за внимание!

Александр МихайленкоChief Business Development Officer

Jeapie

@alexandrmikhfb.com/alexandrmikh

[email protected]