SlideShare a Scribd company logo
1 of 27
Обзор Web Push Notifications. Пишем
свое решение.
Jeapie
• Занимаемся только push-уведомлениями с 2013
• Более 500 млн персонализированных сообщений
• Выпустили сервис Chrome web push для сайтов в открытую
бету 10.06.2015
Термин Push
• Короткие
• Добровольные
• Технически заложена отписка
• Содержат вшитую ссылку
Хронология событий
17 июня 2009 - APNS release
20 мая 2010 - GCM релиз
4 октября 2012 - Mac OS поддержка APNS
22 октября 2013 - Safari push уведомления
1 декабря 2014 - Service workers
15 апреля 2015 - Chrome 42 push
Chrome push
Ключевые особенности
● Приходят даже если вкладка с сайтом
закрыта
● Приходят даже если окно браузера закрыто
● Экономичны с позиции заряда устройства
● Не требуют установки дополнительного ПО
https://jeapie.com/web
DEMO (Chrome)
Стандарт
http://www.w3.org/TR/push-api/
(последняя редакция 27 апреля 2015)
Поддержка Технологии
Service Workers Web Push
Chrome
Yandex
Firefox
Safari
Opera
IE
Компоненты Chrome Web Push
• manifest.json - лежит в корне, указывается в <head> соддержит
ProjectNumber, по нему генерирутся токены
• service-worker.js - лежит в корне сайта, отвечает за прием и
обработку пуш (кешируется в браузер пользователю)
• js-сниппет - в layout сайта, проверяет все ли ок? и вызывает
окно подписки
Требования
• Google Chrome 42+ у пользователя
• SSL-сертификат у домена (https://)
Токены
• Уникальный идентификатор устройства
• Уникален для данного домена, ProjectNumber и браузера
• Может “устаревать” и меняться (к примеру при
отпискеподписке)
Шаг №1. Получаем ключи
https://code.google.com/apis/console
Шаг №2. Создаем manifest.json
в <head> вставляем ссылку
Шаг №3. Пишем service-worker
В нем находится обработка событий
1. Событие получения notification
2. Событие открытия notification
Он кешируется при первом заходе, запускаетcя при получении
событий, работает в фоне некоторое время (50ms)
Особенность(!!) Chrome Push
В версиях Chrome 42-43 пуш не содержит ни текст уведомления
ни идентификатор уведомления.
Поэтому приходится на сервере держать очередь пушей для
каждого токена. И делать запрос на сервер при каждом приходе
пуша.
Шаг №4. js-сниппет
• Поддерживает ли браузер пуш
• Поддерживает ли браузер сервис воркеры (Opera fail)
• Регистрируем сервис-воркер
• Не запретил ли пользователь прием пуш-уведомлений
• Вызываем окно подписки
Шаг №5
● Сохраняем токен на бекенде после получения согласия
● Можем отправлять пуш используя GCM API (ключ для
авторизации) при помощи обычных http запросов
Шаг №6. “Окультурить”
• Инструмент alias (customer_id)
• Трекинг доставки Push
• utm-метки трекинга перехода по ссылкам
• Поддержка http сайтов через виджет
• Сегментация по тегам
Спасибо за внимание!
Александр Михайленко
CEO
Jeapie
@alexandrmikh
fb.com/alexandrmikh
alexandr.mikhaylenko@gmail.com

More Related Content

What's hot (19)

Эссе по теме браузеры
Эссе по теме браузерыЭссе по теме браузеры
Эссе по теме браузеры
 
Brauzery
BrauzeryBrauzery
Brauzery
 
Internet brauzery
Internet brauzeryInternet brauzery
Internet brauzery
 
сравнение браузеров
сравнение браузеровсравнение браузеров
сравнение браузеров
 
Browsers. Description
Browsers. DescriptionBrowsers. Description
Browsers. Description
 
Top 3
Top 3 Top 3
Top 3
 
обзор браузеров
обзор браузеровобзор браузеров
обзор браузеров
 
мой любимый браузер
мой любимый браузермой любимый браузер
мой любимый браузер
 
Mini-essay final
Mini-essay finalMini-essay final
Mini-essay final
 
Prezentatsia1 (3)
Prezentatsia1 (3)Prezentatsia1 (3)
Prezentatsia1 (3)
 
Best Browser
Best BrowserBest Browser
Best Browser
 
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
 
Топ-3 браузеров
Топ-3 браузеровТоп-3 браузеров
Топ-3 браузеров
 
рейтинг браузеров
рейтинг браузероврейтинг браузеров
рейтинг браузеров
 
Browsers
BrowsersBrowsers
Browsers
 
Установка и начало работы с VMware vSphere за 60 минут
Установка и начало работы с VMware vSphere за 60 минутУстановка и начало работы с VMware vSphere за 60 минут
Установка и начало работы с VMware vSphere за 60 минут
 
Top brauzerov
Top brauzerovTop brauzerov
Top brauzerov
 
WebMatrix
WebMatrixWebMatrix
WebMatrix
 
Браузеры
БраузерыБраузеры
Браузеры
 

Viewers also liked

Кирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, MicrosoftКирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, MicrosoftOntico
 
Push notifications Зачем и почему?
Push notifications Зачем и почему?Push notifications Зачем и почему?
Push notifications Зачем и почему?Denis Makeychev
 
Push Notifications
Push NotificationsPush Notifications
Push NotificationsCocoaHeads
 
Building Your Repeat Traffic using Push Notifications
Building Your Repeat Traffic using Push NotificationsBuilding Your Repeat Traffic using Push Notifications
Building Your Repeat Traffic using Push NotificationsVivek Khandelwal
 
Юрий Василевский — Сервис пуш-сообщений Яндекса
Юрий Василевский — Сервис пуш-сообщений ЯндексаЮрий Василевский — Сервис пуш-сообщений Яндекса
Юрий Василевский — Сервис пуш-сообщений ЯндексаYandex
 
Push Notifications for Websites
Push Notifications for WebsitesPush Notifications for Websites
Push Notifications for WebsitesRoost
 
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектовAI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектовGeeksLab Odessa
 
Gearing up for mobile push notifications
Gearing up for mobile push notificationsGearing up for mobile push notifications
Gearing up for mobile push notificationsKeith Moore
 
Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS  Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS Sparkbit
 
The Anatomy of a Perfect Push Message
The Anatomy of a Perfect Push MessageThe Anatomy of a Perfect Push Message
The Anatomy of a Perfect Push MessageLocalytics
 
Mobile Push Notifications
Mobile Push NotificationsMobile Push Notifications
Mobile Push NotificationsMike Willbanks
 
Consumer Trends in 2016: 36 Expert Perspectives - Canvas8
Consumer Trends in 2016: 36 Expert Perspectives - Canvas8Consumer Trends in 2016: 36 Expert Perspectives - Canvas8
Consumer Trends in 2016: 36 Expert Perspectives - Canvas8Canvas8
 
Social, Digital & Mobile Around The World (January 2014)
Social, Digital & Mobile Around The World (January 2014)Social, Digital & Mobile Around The World (January 2014)
Social, Digital & Mobile Around The World (January 2014)We Are Social Singapore
 

Viewers also liked (17)

Кирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, MicrosoftКирилл Гаврилюк, Microsoft
Кирилл Гаврилюк, Microsoft
 
Push notifications Зачем и почему?
Push notifications Зачем и почему?Push notifications Зачем и почему?
Push notifications Зачем и почему?
 
Push Notifications
Push NotificationsPush Notifications
Push Notifications
 
Koovs_Case_Study
Koovs_Case_StudyKoovs_Case_Study
Koovs_Case_Study
 
Building Your Repeat Traffic using Push Notifications
Building Your Repeat Traffic using Push NotificationsBuilding Your Repeat Traffic using Push Notifications
Building Your Repeat Traffic using Push Notifications
 
Юрий Василевский — Сервис пуш-сообщений Яндекса
Юрий Василевский — Сервис пуш-сообщений ЯндексаЮрий Василевский — Сервис пуш-сообщений Яндекса
Юрий Василевский — Сервис пуш-сообщений Яндекса
 
Push Notifications for Websites
Push Notifications for WebsitesPush Notifications for Websites
Push Notifications for Websites
 
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектовAI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
 
Gearing up for mobile push notifications
Gearing up for mobile push notificationsGearing up for mobile push notifications
Gearing up for mobile push notifications
 
Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS  Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS
 
Push notifications
Push notificationsPush notifications
Push notifications
 
Push Notification
Push NotificationPush Notification
Push Notification
 
The Anatomy of a Perfect Push Message
The Anatomy of a Perfect Push MessageThe Anatomy of a Perfect Push Message
The Anatomy of a Perfect Push Message
 
Mobile Push Notifications
Mobile Push NotificationsMobile Push Notifications
Mobile Push Notifications
 
Consumer Trends in 2016: 36 Expert Perspectives - Canvas8
Consumer Trends in 2016: 36 Expert Perspectives - Canvas8Consumer Trends in 2016: 36 Expert Perspectives - Canvas8
Consumer Trends in 2016: 36 Expert Perspectives - Canvas8
 
Social, Digital & Mobile Around The World (January 2014)
Social, Digital & Mobile Around The World (January 2014)Social, Digital & Mobile Around The World (January 2014)
Social, Digital & Mobile Around The World (January 2014)
 
Digital in 2016
Digital in 2016Digital in 2016
Digital in 2016
 

Similar to WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и каналов коммуникации пользователя и веб-приложения"

Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Alexey Kachayev
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf Conference
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extensionchaykaborya
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteEvernote
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Fwdays
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...QA Club Minsk
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...ISsoft
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...Mikhail Vanin
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakAmasty
 
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashbackhexminer
 
Azure Mobile Backend
Azure Mobile BackendAzure Mobile Backend
Azure Mobile BackendVitaly Baum
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...SQALab
 
Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS
Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMSМихаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS
Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMSYandex
 

Similar to WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и каналов коммуникации пользователя и веб-приложения" (20)

Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от Evernote
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
 
Automation testing desktop applications
Automation testing desktop applicationsAutomation testing desktop applications
Automation testing desktop applications
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis Bosak
 
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashback
 
Azure Mobile Backend
Azure Mobile BackendAzure Mobile Backend
Azure Mobile Backend
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
 
Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS
Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMSМихаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS
Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS
 
Веб-сервер
Веб-серверВеб-сервер
Веб-сервер
 
PHP
PHPPHP
PHP
 

More from GeeksLab Odessa

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...GeeksLab Odessa
 
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...GeeksLab Odessa
 
DataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторDataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторGeeksLab Odessa
 
DataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеDataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеGeeksLab Odessa
 
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...GeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...GeeksLab Odessa
 
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...GeeksLab Odessa
 
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко GeeksLab Odessa
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...GeeksLab Odessa
 
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...GeeksLab Odessa
 
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...GeeksLab Odessa
 
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...GeeksLab Odessa
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...GeeksLab Odessa
 
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...GeeksLab Odessa
 
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот GeeksLab Odessa
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...GeeksLab Odessa
 
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js GeeksLab Odessa
 

More from GeeksLab Odessa (20)

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
 
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
 
DataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторDataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский Виктор
 
DataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеDataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображение
 
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
 
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
 
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
 
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
 
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
 
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
 
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
 
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
 
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
 

WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и каналов коммуникации пользователя и веб-приложения"

  • 1. Обзор Web Push Notifications. Пишем свое решение.
  • 2. Jeapie • Занимаемся только push-уведомлениями с 2013 • Более 500 млн персонализированных сообщений • Выпустили сервис Chrome web push для сайтов в открытую бету 10.06.2015
  • 3. Термин Push • Короткие • Добровольные • Технически заложена отписка • Содержат вшитую ссылку
  • 4. Хронология событий 17 июня 2009 - APNS release 20 мая 2010 - GCM релиз 4 октября 2012 - Mac OS поддержка APNS 22 октября 2013 - Safari push уведомления 1 декабря 2014 - Service workers 15 апреля 2015 - Chrome 42 push
  • 6. Ключевые особенности ● Приходят даже если вкладка с сайтом закрыта ● Приходят даже если окно браузера закрыто ● Экономичны с позиции заряда устройства ● Не требуют установки дополнительного ПО
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 16. Поддержка Технологии Service Workers Web Push Chrome Yandex Firefox Safari Opera IE
  • 17. Компоненты Chrome Web Push • manifest.json - лежит в корне, указывается в <head> соддержит ProjectNumber, по нему генерирутся токены • service-worker.js - лежит в корне сайта, отвечает за прием и обработку пуш (кешируется в браузер пользователю) • js-сниппет - в layout сайта, проверяет все ли ок? и вызывает окно подписки
  • 18. Требования • Google Chrome 42+ у пользователя • SSL-сертификат у домена (https://)
  • 19. Токены • Уникальный идентификатор устройства • Уникален для данного домена, ProjectNumber и браузера • Может “устаревать” и меняться (к примеру при отпискеподписке)
  • 20. Шаг №1. Получаем ключи https://code.google.com/apis/console
  • 21. Шаг №2. Создаем manifest.json в <head> вставляем ссылку
  • 22. Шаг №3. Пишем service-worker В нем находится обработка событий 1. Событие получения notification 2. Событие открытия notification Он кешируется при первом заходе, запускаетcя при получении событий, работает в фоне некоторое время (50ms)
  • 23. Особенность(!!) Chrome Push В версиях Chrome 42-43 пуш не содержит ни текст уведомления ни идентификатор уведомления. Поэтому приходится на сервере держать очередь пушей для каждого токена. И делать запрос на сервер при каждом приходе пуша.
  • 24. Шаг №4. js-сниппет • Поддерживает ли браузер пуш • Поддерживает ли браузер сервис воркеры (Opera fail) • Регистрируем сервис-воркер • Не запретил ли пользователь прием пуш-уведомлений • Вызываем окно подписки
  • 25. Шаг №5 ● Сохраняем токен на бекенде после получения согласия ● Можем отправлять пуш используя GCM API (ключ для авторизации) при помощи обычных http запросов
  • 26. Шаг №6. “Окультурить” • Инструмент alias (customer_id) • Трекинг доставки Push • utm-метки трекинга перехода по ссылкам • Поддержка http сайтов через виджет • Сегментация по тегам
  • 27. Спасибо за внимание! Александр Михайленко CEO Jeapie @alexandrmikh fb.com/alexandrmikh alexandr.mikhaylenko@gmail.com