Slide 1

Slide 1 text

Interactive Notifications presented by NI CK PARFE NE APRI L 2105 1

Slide 2

Slide 2 text

I’ M A DAD NICK PARFENE - COF FE E ADDI CT I’M A P EOPLE PE RSON I’M A HUSBA ND 2

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

TR UST ME ON THIS ONE 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

ANDROID BLACKBERRY? WINDOWS PHONE iOS 7

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

• 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

Slide 10

Slide 10 text

• 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

Slide 11

Slide 11 text

• 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!

Slide 12

Slide 12 text

• 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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

4 CUST OM ACTI ONS 15

Slide 16

Slide 16 text

• 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!

Slide 17

Slide 17 text

• Please help me with this one! • Dislike • Like NOTIFICATIO N TYP ES 17 ANNOYING / USEFUL YOU KNO W WH AT I ’M TALKING ABOUT

Slide 18

Slide 18 text

STE RLING ARCHER 18

Slide 19

Slide 19 text

• 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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

YOU WA NT SOME. WH AT SHOULD YOU DO? 21

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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)

Slide 24

Slide 24 text

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)

Slide 25

Slide 25 text

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)

Slide 26

Slide 26 text

YOU WA NT SOME. HOW SHOULD YOU DO I T? 26

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

BE ST PR ACTICES 35

Slide 36

Slide 36 text

WWW PAR FENE.COM READ MY S TUFF @NI CKTMRO FOLLOW ME NICKTMRO HOW SAD THA NK YO U! 36

Slide 37

Slide 37 text

FOLLOW ME @NICKTMRO QUE STIONS? 37 • Google Developer Group Wellington • Cocoaheads Wellington • Android Meetup • parfene.com SHA MELESS PLUGS