Enhance Your Mobile Engagement Strategy with Azure

Slides:



Advertisements
Similar presentations
Bring your own machines, connectivity, software, etc. Complete control Complete responsibility Static capabilities Upfront capital costs for the.
Advertisements

Twenty C# Questions Explained Gerry O’Brien Content Development Manager Paul Pardi Senior Content Pub Manager.
Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant, Enhance ALM.
Push to ALL the iPhones with Azure Chris Risner Senior Technical Microsoft Azure.
Jon Galloway | Technical Evangelist Christopher Harrison | Content Developer.
Meet Jeremy Thake Jeremy recently joined Microsoft as Technical Product Manager for the Visual Studio Developer story for Office 365 development.
Microsoft Virtual Academy. Microsoft Virtual Academy.
Kirill Gavrylyuk | Principal Program Manager Lead, Azure Mobile Miranda Luna | Product Manager, Azure Mobile.
Gerry O’Brien| Technical Content Development Manager Paul Pardi| Senior Content Publishing Manager.
Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant, Enhance ALM.
Cross Platform Mobile Backend with Mobile Services James
Kirill Principal Lead Program Manager High Scale Cross Platform Push Notifications.
Building Connected Android Apps with Azure Chris Risner Technical Evangelist
What’s new for the Exchange 2010 Developer? Developing Exchange-enabled Enterprise Applications Creating “Cloud Ready” Exchange-enabled Applications Deploying.
Microsoft Virtual Academy Stacey Mulcahy | Technical Evangelist Christopher Harrison | Content Developer.
CONNECTING PHONE APPLICATIONS TO THE CLOUD Nick Randolph (Built to Roam) SESSION CODE: COS-WPH208 (c) 2011 Microsoft. All rights reserved.
Cloud Roadshow. Getting Started with mobile app development with the Office 365 APIs.
Sage Franch | Technical Evangelist Susan Ibach | Technical Evangelist.
Microsoft Virtual Academy Talbott Crowell | Chief Architect, ThirdM.com Rob Latino | Program Manager in Office 365 Support, Microsoft.
Azure.
Deployment Planning Services
Deployment Planning Services
Deployment Planning Services
Microsoft Virtual Academy
9/11/ :51 AM Cloud Roadshow © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO.
Microsoft Virtual Academy
Modern application lifecycle with DevOps
6/17/ :27 AM BRK3341 Unlock extensibility by connecting your service to PowerApps and Microsoft Flow Theresa (Tessa) Palmer–Sr. Program Manager Sunay.
Microsoft Virtual Academy
Build /4/2018 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
The power of common identity across any cloud
Develop for the Experience Business with Adobe and Microsoft
Microsoft Dynamics NAV 2018 – what’s new
Azure.
Hybrid Apps: Azure Mobile Engagement and the App Economy
Building great Metro style apps for mobile broadband devices
Microsoft Virtual Academy
Architecting For Device Independent Delivery
Office 365 Development.
Power Apps & Flow for Microsoft Dynamics SL
Microsoft Virtual Academy
Microsoft Connect /15/2018 3:03 AM
Office 365 Development July 2014.
Microsoft Virtual Academy
Microsoft Virtual Academy
Microsoft Virtual Academy
What is OneDrive vs. OneDrive for Business??
Microsoft Virtual Academy
Microsoft Virtual Academy
TechEd /11/ :21 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
TechEd /15/2019 8:08 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
TechEd /18/ :01 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
Office 365 Development.
Pushing Data to and from the Cloud with SQL Azure Data Sync
Consumer Mobile Apps that Scale
Notification Hubs Deep Dive
What’s new in Visual Studio 2012
Microsoft Virtual Academy
Microsoft Virtual Academy
Developing Mobile Solutions with Windows Azure Part II
Sessions about to start – Get your rig on!
Build /27/2019 © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
Erik Porter Program Manager ASP.NET Microsoft Corporation
Azure AD Simon May Technical Evangelist.
Microsoft Virtual Academy
Mobile App Management David Alessi — Support Topic Owner for Enterprise Windows Phone, Microsoft Corporation Simon May — Enterprise Device Infrastructuralist,
Microsoft Virtual Academy
Microsoft Virtual Academy
Microsoft Virtual Academy
Presentation transcript:

Enhance Your Mobile Engagement Strategy with Azure Elio Damaggio | Program Manager II, Azure Notification Hubs Miranda Luna | Product Manager, Azure Mobile

Course Topics Enhance Your Mobile Engagement Strategy w/ Azure 01 | Azure Mobile 06 | Push-to-Sync (sync w server) 02 | Notification Hubs 07 | Push-to-Pull (pull from server) 03 | Broadcast Push 08 | Retargeting & Coupons 04 | Segmented Push 09 | Scale & Security 05 | Localized Push 10 | Resources

Please leave this area blank to allow for picture in picture recording Setting Expectations Target Audience Mobile app developers that want to drive higher customer engagement and retention Suggested Prerequisites/Supporting Material MVA Notification Hubs Deep Dive Azure Fridays Broadcasting Alerts Filtering Alerts Templates & Internalization User Specific Alerts

Join the MVA Community! Microsoft Virtual Academy—Free online training! Ask questions in the Born to Learn MVA Forum! Visit http://aka.ms/MVAForum Earn while you learn! 50 MVA Points for this event! Visit http://aka.ms/MVA-Voucher Code: BldgBlks3

01 | Azure Mobile

Mobile Backend Push Notifications Device Messaging 4/6/2017 Mobile Backend Ready-made mobile app backend for iOS, Android and Windows Create new mobile apps or add a mobility layer to existing systems Speeds up development time and reduces ongoing maintenance cost Push Notifications Mobile push notification engine for existing apps Enhance push notifications in any app with personalization and localization Improves user engagement and retention by delivering relevant content more quickly Device Messaging Messaging infrastructure that sits between and within applications Build multi-tier and hybrid applications or smart device information exchange patterns Delivers inter- and intra-app messages faster and connects on-premises systems to the cloud © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

02 | Notification Hubs

Mobile Push Notifications 101 4/6/2017 Mobile Push Notifications 101 Register device handle at app launch Client app contacts Platform Notification Service (PNS) App updates handle in backend client app Platform Notification Service Send Notification App backend sends notification to PNS PNS pushes the notification to the app on the device Maintain device handles Delete expired handles when PNS rejects them App back-end © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Push Notification Challenges 4/6/2017 Push Notification Challenges While there are significant benefits to using push notifications in a mobile app, rolling your own push infrastructure is extremely difficult in terms of implementing a system capable of: Cross-Platform Push Notifications Each push service (APNS for iOS, GCM for Android, WNS for Windows, etc.) has different protocols (e.g., HTTP vs. TCP, xml payload vs. JSON payload) Personalizing on the server-side based on interest and location Segmenting users based on interest tags and routing only the most relevant content to each segment Localizing notifications on the client-side based on language, currency, device, etc. Each device displays notifications differently High-Volume with Low Latency Limited by the capability of each VM so need to spin up scores of VMs and shard your application in order to serve a large user base Maintaining accurate device handle registry Adding registrations upon installation, updating tags, pruning upon on uninstall © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Azure Push Notifications One-time set up Create a Notification Hub Register The client app retrieves its current handle from the PNS. Client app (or app backend) registers the handle with Notification Hub Send Notification The app back-end sends a message to the Notification Hub. Notification Hub pushes it to the PNS Android app iOS app Windows 8.x app App back-end GCM APNs WNS MPNS Notification Hub

Without Notification Hubs With Notification Hubs 4/6/2017 Challenge Area Without Notification Hubs With Notification Hubs Cross-Platform Push Separate registration logic Separate communication paths using different protocols for each platform push notification service Upload credentials and go Notification Hubs establishes and maintains communication paths Personalization Field to create and maintain in device registry for each segmentation point Nulls for existing registered devices as additional interest points are added Logic to route each message through the appropriate and available VM(s) Assign interest tags to each registered device and send to any subset of uses you can define with a Boolean expression of tags Localization Send different messages for different formats, languages, etc. since each message contains different content Create a template for each device based on display preferences (banner vs toast, language, currency, etc.) No additional logic required Single message to send High-Volume, Low Latency Go with small VMs to process the work and end up with higher latency due to the time it takes to spin up many machines Go with large VMs, always keeping a few ready and waiting, and end up paying for idle VMs Automatically handled by Notification Hubs, which is designed to deliver millions of notifications within minutes Pay only for the push notifications you send, never idle VMs Maintaining Device Registry Create and maintain device table with likely many null values as you add new interest tags Logic to handle expirations due to uninstalls; possible suspensions from PNS if incomplete Maintains device registry and automatically updates based on uninstalls © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Tags and Templates Use Tags for Segmentation Only send message to this segment of users Use Templates for Personalization & Localization Display message in a particular format

03 | Broadcast Push

Bing News Build 2013 4/6/2017 Register device ChannelURIs WNS Windows 8 devices Breaking news Notification Hubs MPNS Bing Notification Platform Windows Phone devices © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Broadcast to all users Tags 4/6/2017 Broadcast to all users Tags App back-end App back-end Broadcast a notification to all users by making a single API from your app backend w/o specifying any tags Notification Hub © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Broadcast to all users, in batches Tags 4/6/2017 Broadcast to all users, in batches Tags App back-end App back-end Tags can be used to represent groups of users for sending notifications to all users in batches Client app authenticates with the app backend Devices pass device handle to the app backend App backend registers the devices for the tag “batchNo” Target batches in sequence by specifying particular “batchNo” tags in sequential API calls Notification Hub Tag: ”Batch1” Tag: ”Batch4” Tag: ”Batch4” © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

04 | Segmented Push

4/6/2017 Sochi 2014 Results App © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

How Sochi used Notification Hubs Build 2013 4/6/2017 How Sochi used Notification Hubs Register device ChannelURIs APNS country, sport, athlete, medals, emergency alerts,... Register device tokens for tags GCM Result Alerts MPNS Notification Hubs Sochi.ru backend WNS © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notify a segment, based on interest Tags 4/6/2017 Notify a segment, based on interest Tags App back-end Tags as interest groups Client app can register with a set of interest tags. Tags are simple strings (no pre-provisioning is required) App backend can target all clients with the same tag in a single API call Tag Expressions allow you to segment any subset of interest tags that can be expressed using Boolean expressions Users tagged for Rolling Stones AND Beatles (band:RollingStones && band:Beatles) Users tagged for either Rolling Stones or Beatles (band:RollingStones || band:Beatles) Users tagged for Rolling Stones but not also Beatles (band:RollingStones && !band:Beatles Users tagged for Rolling Stones or Beatles in Seattle ((band:Rolling Stones || band:Beatles) && loc:Seattle) App back-end Tag: ”Beatles” Notification Hub Tag: ”RollingStones” Tag: ”Beatles” © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notify a single logical user Tags 4/6/2017 Notify a single logical user Tags App back-end App back-end Tags can be used to represent individual logical users Client app authenticates with the app backend Devices pass device handle to the app backend App backend registers the devices for the tag “userId” Target individual users by specifying particular “userId” tag Notification Hub Tag: ”00568282” Tag: ”00430924” © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

05 | Localized Push

Localization Templates Build 2013 4/6/2017 Localization Templates <toast> <visual> <binding template=\"ToastText01\"> <text id=\"1\">$(tempF)</text> </binding> </visual> </toast> Registration Client apps can register with personalized templates, e.g., Alice’s Surface wants to receive weather information in F degrees. Bob’s iPhone wants weather information in C degrees. Send notification. App back-end sends a message including both temperatures: {tempC: “16”, tempF: “61”}. Template Expressions. Template support a simple expression language: E.g., {‘Sam, ’+$(friend)+’ added you to ’+$(groupName)+‘ group’}. 16 {tempC: “23”, tempF: “73”} App back-end Notification Hub { aps: { alert: “$(tempC)” } 61 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

06 | Push-to-Sync

4/6/2017 Push to Sync Use push notifications to update all devices when user makes an update on one Adding music to a playlist on tablet, then syncing that update to phone Send notification to ‘wake up’ the client app Client app pulls update from app backend User never experiences a visual tile or toast, just views the synced content on all devices App back-end Platform Notification Service Notification Hub © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

07 | Push-to-Pull

Push to Pull Send a push notification to the device 4/6/2017 Push to Pull Send a push notification to the device Push notification prompts the device to pull information from the app backend Device then pulls the information directly from the app backend Information does not flow through PNS or NH PNS pushes the notification to the app on the device Information is displayed to the user just like a normal mobile push notification, even though it travels more directly and securely Platform Notification Service Notification Hub App back-end © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

08 | Retargeting & Coupons

Retargeting Every time you send a push notification, you learn something about that customer Use that information to inform tag updates and send more targeted content Key points to remember: Keep user profiles in app back-end Regularly update tags with updated segments coming from analytics/CRM…

Demo Example Shopping app sends push to: Notify of status of current purchases Retarget users that do not complete purchases Publicize coupons/offers Notification system has to handle: Segments Advanced targeting

Retargeting & Coupons

Coupon Lifecycle Register tags based on Target users with offer Location CRM/demographics App usage Target users with offer Track coupon performance Update Tags Retarget App back-end Tapped coupon CRM Loc:NYC && loyalty:gold Loc:NYC && loyalty:gold && !tapped:{couponId} Notification Hub 32

09 | Scale & Security

Scale & Security Each namespace can have 50 hubs, but scale namespaces, not hubs Maintain a test hub and a prod hub If you regularly broadcast to >5M devices, might want to shard against multiple namespaces in different regions for optimal performance Implement security on the device, use multi-factor auth Manage PNS creds at the namespace-level if you have multiple departments with send and read rights Warning: this introduces additional complexities

10 | Resources

Mobile Engagement at //build Mobile Push Notifications to Any Client with Azure Notification Hubs Wednesday 4/2 5:30 – 6:30 PST Elio Damaggio @ElioDamaggio Powerful mobile apps with Mobile Services and ASP.NET Web API Thursday 4/3 5:30 – 6:30 PST Kirill Gavrylyuk, Yavor Georgiev @KirillG_MSFT, @theyavor Building Cross-Platform Line of Business Apps with Mobile Services Friday 4/4 12:30 – 1:30 PST Donna Malayeri, Chris Risner @lindydonna, @ChrisRisner All videos will be available on Channel9

Notification Hubs Resources 4/6/2017 Notification Hubs Resources Windows Azure Mobile Services Overview, Tutorials and Resources Azure Documentation Center MSDN Documenation Android (tutorial) iOS (tutorial) Windows Store (tutorial) Windows Phone (tutorial) Learn/Channel 9 Introduction | iOS | Windows Store | Tags and Templates REST API Reference http://msdn.microsoft.com/en-us/library/windowsazure/jj710108.aspx Windows Azure Pricing http://www.windowsazure.com/en-us/pricing/details/notification-hubs/ Microsoft Azure Certified Training http://www.microsoft.com/learning/en/us/training/azure.aspx © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.