Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Push / Interactive Notifications

Push / Interactive Notifications

Things to keep in mind before you set off to build Notifications for your apps or sites.

Nick Parfene

April 10, 2015
Tweet

More Decks by Nick Parfene

Other Decks in Technology

Transcript

  1. I’ M A DAD NICK PARFENE - COF FE E

    ADDI CT I’M A P EOPLE PE RSON I’M A HUSBA ND 2
  2. A DE FINIT ION BE ST P RACT ICES HOW

    MA NY TYPE S ARE T HE RE ? CONST RAINT S I WANT SOM E. WHAT SHOULD I DO? Agenda 3
  3. A DE FI NI TION BE ST P RACT ICES

    HOW MA NY TYPE S ARE T HE RE ? CONST RAINT S I WANT SOM E. WHAT SHOULD I DO? Agenda This will be quick and painless. 5
  4. Notifi cations are m essages or dat a se nt

    to the use r’s de vi ce by a ce ntra li se d se rve r. DEFI NI TIO N • They don’t have to have a payload • Text, sound, and badge • All notifications are interactive notifications 6
  5. A DE FI NI TION BE ST P RACT ICES

    HOW MA NY TYPE S ARE T HE RE ? CONST RAINT S I WANT SOM E. WHAT SHOULD I DO? Agenda Brace yourself for information overload. 8
  6. • Local / Remote • Browser / Native • Android

    / iOS / Windows Something • Silent / With Payload: Text, Sound, or Badge (or a selection of these) • Scheduled by time / Scheduled by location (geo-fenced) • With Custom actions / Without Custom actions • Annoying / Useful NOTIFICATIO N TYP ES 9
  7. • They look the same • Not all notifications have

    to be sent by a server • The Game notifications that drive you nuts are most often Local notifications • The same rules / content restrictions apply to both Local & Remote notifications NOTIFICATIO N TYP ES 10 LOCAL / REMOTE
  8. • HTML5 Notifications API (supported by Chrome, Firefox and Safari)

    • IE supports Pinned Sites (think Live tiles for your website) • Notify.js also offers a nice abstraction for the Notifications API NOTIFICATIO N TYP ES 11 BROWSER / NATI VE SERVER P USH ED NOTI FICATIONS MAY APPLY TO YOUR WEBSITE, T OO!
  9. • Android • Device • Android Wear • iOS •

    Mobile Device • Mac •  Watch NOTIFICATIO N TYP ES 12 ANDROID / I OS / WI NDOW S SOM ETHI NG I’M SURE THER E’S SU PPORT FOR BLACKBERRY, TOO • Windows Phone / Windows 10 • Mobile device • PC • Band • BlackBerry • LOL, just trolling you
  10. 1. Silent notifications for background refresh 2. Visible notifications •

    The User must opt-in • Can badge the App icon. (I’m OCD about those damn badges) NOTIFICATIO N TYP ES 13 SILENT / W ITH PAYLOAD DON’T UNDER ESTIMATE THE QUIE T ONES
  11. 1. Local notifications are scheduled to fire at a certain

    point in time (including “now”) 2. Geofenced notifications • Location Services hybrid new in iOS 8 • When the user enters a monitored region, the app can schedule a Local notification to fire “now” NOTIFICATIO N TYP ES 14 SCHEDULED BY TI ME / SCHE DULE D BY LOCATIO N (GEO -F ENCE D) OKAY, I’M C HEATIN G
  12. • There can be up to 4 custom actions •

    App does not need to start after an interaction • You may create actions that do not require the device to be unlocked! • Custom actions can be marked as “destructive”. Cannot be styled, though. NOTIFICATIO N TYP ES 16 WI TH CUSTOM ACTI ONS / WIT HOUT CUST OM ACTIO NS FINA LLY!
  13. • Please help me with this one! • Dislike •

    Like NOTIFICATIO N TYP ES 17 ANNOYING / USEFUL YOU KNO W WH AT I ’M TALKING ABOUT
  14. • Local / Remote • Browser / Native • Android

    / iOS / Windows Something • Silent / With Payload: Text, Sound, or Badge (or a selection of these) • Scheduled by time / Scheduled by location (geo-fenced) • With Custom actions / Without Custom actions • Annoying / Useful NO TI FICATION TY P ES - RECAP 19
  15. A DE FI NI TION BE ST P RACT ICES

    HOW MA NY TYPE S ARE T HE RE ? CONST RAINT S YOU WA NT SOME. WHAT TO DO? Agenda Less technical than you might fear. 20
  16. PART 1 REGISTER THE USER • Do it as late

    as possible & guide the user • Consider supporting just certain types of notifications (e.g. Direct Messages) YOU WA NT SOME. WH AT SHOULD YOU DO? 22
  17. PART 2 RESP OND TO EVENT PART 1 • When

    a condition is satisfied (event, time, trigger, etc) • Query the user’s state (do they have a Do Not Disturb set? What is the time in their current Time Zone) YOU WA NT SOME. WH AT SHOULD YOU DO? 23 REGISTER THE USER • Do it as late as possible & guide the user • Consider supporting just certain types of notifications (e.g. Direct Messages)
  18. PART 2 RESP OND TO EVENT PART 3 HAN DLE

    THE NOTIF ICATI ON PART 1 • Is the app running? Should you even disturb the user? • Don’t overwhelm the user! • Be respectful YOU WA NT SOME. WH AT SHOULD YOU DO? 24 REGISTER THE USER • Do it as late as possible & guide the user • Consider supporting just certain types of notifications (e.g. Direct Messages) • When a condition is satisfied (event, time, trigger, etc) • Query the user’s state (do they have a Do Not Disturb set? What is the time in their current Time Zone)
  19. PART 2 RESP OND TO EVENT PART 3 HAN DLE

    THE NOTIF ICATI ON PART 1 YOU WA NT SOME. WH AT SHOULD YOU DO? 25 REGISTER THE USER • Do it as late as possible & guide the user • Consider supporting just certain types of notifications (e.g. Direct Messages) • Is the app running? Should you even disturb the user? • Don’t overwhelm the user! • Be respectful • When a condition is satisfied (event, time, trigger, etc) • Query the user’s state (do they have a Do Not Disturb set? What is the time in their current Time Zone)
  20. OP TION 1 USE A THIRD PART Y YOU WA

    NT SOME. HOW SHOULD YOU DO I T? • Parse or Urban Airship make it ridiculously easy to get started ($ cost) • Relying on a 3rd part may cause grievances that are outside of your control • If you’re serious about it, then move to Option 2. 27
  21. OP TION 2 BUILD IT IN-HOUSE OP TION USE A

    THIRD PART Y YOU WA NT SOME. HOW SHOULD YOU DO I T? • Parse or Urban Airship make it ridiculously easy to get started ($ cost) • Relying on a 3rd part may cause grievances that are outside of your control • If you’re serious about it, then move to Option 2. • Build a Façade on top of your API • Backend code used to be hard to write • Tip: Make sure you implement the Feedback Queue 28
  22. OP TION BUILD IT IN-HOUSE OP TION 3 OP TION

    USE A THIRD PART Y YOU WA NT SOME. HOW SHOULD YOU DO I T? • Parse or Urban Airship make it ridiculously easy to get started ($ cost) • Relying on a 3rd part may cause grievances that are outside of your control • If you’re serious about it, then move to Option 2. • LOL • I wish I knew how to blush. This would be a good time to do it 29 AS K ME. IT’LL BE MAGI CAL • Build a Façade on top of your API • Backend code used to be hard to write • Tip: Make sure you implement the Feedback Queue
  23. OP TION 2 BUILD IT IN-HOUSE OP TION 3 OP

    TION 1 USE A THIRD PART Y YOU WA NT SOME. HOW SHOULD YOU DO I T? 30 AS K ME. IT’LL BE MAGI CAL • Parse or Urban Airship make it ridiculously easy to get started ($ cost) • Relying on a 3rd part may cause grievances that are outside of your control • If you’re serious about it, then move to Option 2. • LOL • I wish I knew how to blush. This would be a good time to do it • Build a Façade on top of your API • Backend code used to be hard to write • Tip: Make sure you implement the Feedback Queue
  24. A DE FI NI TION BE ST P RACT ICES

    HOW MA NY TYPE S ARE T HE RE ? CONST RAI NT S I WANT SOME . WHAT T O DO? Agenda It’s not too bad, really. 31
  25. CONSTRA IN TS • Limited payload 2 kilobytes for iOS

    8. 256 bytes for iOS 7 and older • Delivery of notifications is a “best effort”, not guaranteed. It is not intended to deliver data to your app, only to notify the user that there is new data available. • Limited number of custom actions • Limited “styling” options •  Watch Glances and Custom Long-look notifications require a Watch extension • No confirmation that the Notification was displayed to the user 32
  26. A DE FI NI TION BE ST P RACT ICES

    HOW MA NY TYPE S ARE T HE RE ? CONST RAI NT S I WANT SOME . WHAT T O DO? Agenda It’s mostly common sense. 33
  27. BEST PR ACTICES - NICK’S T OP 10 1. Guided

    “Opt In” rather than “Opt Out” 2. Allow user to specify the types of messages they wish to receive. Support DND. Think Time Zone! 3. High volume of Notifications? Consider providing a “Snooze” custom action! 4. Only send relevant messages. This is NOT a direct marketing channel 5. Don't send confidential or sensitive data through push notifications 6. Consider promoting custom actions that do not require the app to start up 7. Use clear language and keep the message short 8. Choose the lowest frequency of notifications that still delivers a great user experience 9. Be aware of context. Is the user in your app right now? 10.Consider aggregating multiple messages into a more generic “group” 34
  28. WWW PAR FENE.COM READ MY S TUFF @NI CKTMRO FOLLOW

    ME NICKTMRO HOW SAD THA NK YO U! 36
  29. FOLLOW ME @NICKTMRO QUE STIONS? 37 • Google Developer Group

    Wellington • Cocoaheads Wellington • Android Meetup • parfene.com SHA MELESS PLUGS