Chrome push notifications. Анатомия и разработка

27
Обзор Web Push Notifications. Пишем свое решение.

Transcript of Chrome push notifications. Анатомия и разработка

Page 1: Chrome push notifications. Анатомия и разработка

Обзор Web Push Notifications. Пишем свое решение.

Page 2: Chrome push notifications. Анатомия и разработка

Jeapie • Занимаемся только push-уведомлениями с 2013• Более 500 млн персонализированных сообщений• Выпустили сервис Chrome web push для сайтов в открытую

бету 10.06.2015

Page 3: Chrome push notifications. Анатомия и разработка

Термин Push• Короткие• Добровольные• Технически заложена отписка• Содержат вшитую ссылку

Page 4: Chrome push notifications. Анатомия и разработка

Хронология событий17 июня 2009 - APNS release20 мая 2010 - GCM релиз4 октября 2012 - Mac OS поддержка APNS22 октября 2013 - Safari push уведомления1 декабря 2014 - Service workers15 апреля 2015 - Chrome 42 push

Page 5: Chrome push notifications. Анатомия и разработка

Chrome push

Page 6: Chrome push notifications. Анатомия и разработка

Ключевые особенности

● Приходят даже если вкладка с сайтом закрыта

● Приходят даже если окно браузера закрыто● Экономичны с позиции заряда устройства● Не требуют установки дополнительного ПО

Page 7: Chrome push notifications. Анатомия и разработка
Page 8: Chrome push notifications. Анатомия и разработка
Page 9: Chrome push notifications. Анатомия и разработка
Page 10: Chrome push notifications. Анатомия и разработка
Page 11: Chrome push notifications. Анатомия и разработка
Page 12: Chrome push notifications. Анатомия и разработка
Page 13: Chrome push notifications. Анатомия и разработка
Page 14: Chrome push notifications. Анатомия и разработка

https://jeapie.com/web

DEMO (Chrome)

Page 15: Chrome push notifications. Анатомия и разработка

Стандарт

http://www.w3.org/TR/push-api/ (последняя редакция 27 апреля 2015)

Page 16: Chrome push notifications. Анатомия и разработка

Поддержка Технологии

Service Workers Web Push

Chrome

Yandex

Firefox

Safari

Opera

IE

Page 17: Chrome push notifications. Анатомия и разработка

Компоненты Chrome Web Push

• manifest.json - лежит в корне, указывается в <head> соддержит ProjectNumber, по нему генерирутся токены

• service-worker.js - лежит в корне сайта, отвечает за прием и обработку пуш (кешируется в браузер пользователю)

• js-сниппет - в layout сайта, проверяет все ли ок? и вызывает окно подписки

Page 18: Chrome push notifications. Анатомия и разработка

Требования

• Google Chrome 42+ у пользователя• SSL-сертификат у домена (https://)

Page 19: Chrome push notifications. Анатомия и разработка

Токены

• Уникальный идентификатор устройства• Уникален для данного домена, ProjectNumber и браузера• Может “устаревать” и меняться (к примеру при отписке\

подписке)

Page 21: Chrome push notifications. Анатомия и разработка

Шаг №2. Создаем manifest.json

в <head> вставляем ссылку

Page 22: Chrome push notifications. Анатомия и разработка

Шаг №3. Пишем service-worker

В нем находится обработка событий1. Событие получения notification2. Событие открытия notificationОн кешируется при первом заходе, запускаетcя при получении событий, работает в фоне некоторое время (50ms)

Page 23: Chrome push notifications. Анатомия и разработка

Особенность(!!) Chrome Push

В версиях Chrome 42-43 пуш не содержит ни текст уведомления ни идентификатор уведомления.

Поэтому приходится на сервере держать очередь пушей для каждого токена. И делать запрос на сервер при каждом приходе пуша.

Page 24: Chrome push notifications. Анатомия и разработка

Шаг №4. js-сниппет

• Поддерживает ли браузер пуш• Поддерживает ли браузер сервис воркеры (Opera fail)• Регистрируем сервис-воркер• Не запретил ли пользователь прием пуш-уведомлений• Вызываем окно подписки

Page 25: Chrome push notifications. Анатомия и разработка

Шаг №5

● Сохраняем токен на бекенде после получения согласия● Можем отправлять пуш используя GCM API (ключ для

авторизации) при помощи обычных http запросов

Page 26: Chrome push notifications. Анатомия и разработка

Шаг №6. “Окультурить”

• Инструмент alias (customer_id)• Трекинг доставки Push• utm-метки трекинга перехода по ссылкам• Поддержка http сайтов через виджет• Сегментация по тегам

Page 27: Chrome push notifications. Анатомия и разработка

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

Александр МихайленкоCEO

Jeapie

@alexandrmikhfb.com/alexandrmikh

[email protected]