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

Post on 29-Nov-2014

623 Views

Category:

Mobile

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Методология построения мобильных 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

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

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

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

alexandr.mikhaylenko@gmail.com

top related