 Before we start, looks like you guys had a good lunch. How was the lunch? All good? Also before we start, how many of us over here are Android app developers? Remaining are iOS? Can be Windows as well. There are a few phones there. So what we'll talk in today's talk is primarily for Android developers and also for any company CXOs here, CMOs here, marketing guys here, any marketing folks, very few. So the platform which I'm going to talk about takes care of two things. One, it gives you a beautiful dashboard or an insights and analytics for the CMO to understand how the app usage and the things are going inside in the product. And for the developers, it gives, again, a set of features like you can track issues, errors, crashes. And then you can also do custom logging based on certain use case scenarios of the user, how they use the app. So the whole idea of this is this is cross-pad form. So if your company tends to develop an app for iOS tomorrow or Windows Phone as well, they can absolutely use the same platform to increase the users. So what we're going to talk about here is this platform, the capabilities, and some use case scenarios. Why we would actually need this platform? So can we name one of the favorite apps that we use most often on our smartphone? Flipkart? Any other apps? Ola? Yep. Yep. Anything, no one uses Facebook, really? OK. So there are a lot of apps. And then apps, one most important thing, while you want to ensure that it's been used by users and you want to start monetizing it, is the UX of the app. That's, of course, one of the primary criterias. But there happens that in this smartphone world where you have tons of apps, 100, 200 apps installed on someone's one plus two, and then it becomes very difficult for you to keep track whether someone's using my service or he's going to pay me. For instance, I can give you a best example of wink music. How many of you use wink music? No one? Sawan? Sawan has a beautiful app as well. So all these guys let you stream music. The biggest problem these guys face is the users are not using this app as often as they should be using the app, which kind of hurts them in the subscriptions. So while you create an app, you would want to have a strategy where you can ensure that users always tend to use your app, either the reason could be that the user doesn't know all the features that your app has, or you are kind of throwing a lot of notifications there, because I have seen a few quotes on the stores where someone, I think this was with Snapdeal sometime back, where they started pushing 10, 15 notifications all within one hour, and people just want to delete this app, install this app, because they don't want such bad experience. So if you automate notifications, thinking it's going to be more engaging, it might not really help. So you would need some smarter solution over there. So we'll talk about that. A quick video. This has an audio. Let me quickly plug this. I get very annoying. And users might even delete your app. OK, let me just. You decide to get a little bit about the platform, how things work, use these devices. You've published an app. So now what? You have no clue if it's used often or simply gets forgotten. To keep your users interested, you start spamming them with push notifications. However, those could get very annoying, and users might even delete your app. You decide to get an analytics tool. Well, now you have loads of data, but you still need to set up campaigns for every possible situation and send it to every platform separately. It just takes forever. Isn't there a better way to keep your users interested? Boom, introducing Azure Mobile Engagement. Azure Mobile Engagement is a platform that combines analytics with push notifications and in-app messaging campaigns. It monitors the activity in real time, like what pages are visited when and where. But it actually goes way beyond that. You can ask any question, like after how many visits a user is most likely to post to review or buy something. With this info, Azure Mobile Engagement helps you automate targeted campaigns that work on every platform and any device with an internet connection, even a smart TV. Finally, Azure Mobile Engagement also recognizes user segments for you. For example, the ones that are losing interest. You can directly send something really cool to win them over again. Awesome. Azure Mobile Engagement. Pilot your apps. Cool, so with this platform, we can actually keep a track of people losing interest, not logging in on our app, or maybe people using our app without logging in, without doing a social login, which means probably they're not sticky enough. For instance, I've seen a few apps which gives you more features, or it's more, you know, they only start pushing notifications when you sign in that app, and which the user might not even know about it that he needs to sign in, and he doesn't sign in, because, for instance, Flight Search's app, Clip Clear Trip, or Make My Trip. You can use these apps all the while without actually logging in the app. Now, if I were to give a big deal, or to a particular user, I probably don't wanna blast that deal, because probably it's gonna be misused or not used. I probably wanna target some actual users who use my app and give those deals to them, or maybe some users who haven't really logged in, I would want them to log in, and I'm gonna give some deal to them to make sure that they log in. Now, we will see all these data, and we'll also see how we integrate this. So, integration from a developer standpoint is pretty simple. We will see that a little later. The whole idea of this mobile engagement is actionable insights. Based on that, you take some action to get to ensure that your users are there on your platform. Dure them with some coupon codes or something, and they will be there in your app platform, and then a value-added push and communications platform. So, this takes care of push notifications as well, using all the platform notification services from either Apple or GCM or from WNS, that's Windows. So, it takes care of that, and it also takes care of some campaigns that your CMO would wanna work on. Like, you wanna do a quick survey with your users, right? Generally, how would you do that? Either you do it on a web, so direct him to the web, bad experience, or you can have a native interface within the app where you can get a quick survey. Now, with the mobile engagement, you don't need to build that piece. All you have to configure this is from the backend, what questions you wanna ask, and then push this campaign, and then you can select set of users you wanna push this to, like three days old users, or users who haven't yet signed in, or users with a particular tag on them, who have been looking for a particular product, for instance, Flipkart. If you're looking for a particular product on Flipkart, I can tag you with that product ID, or group product ID, and then based on, I can start pushing you offers on that particular product ID itself, and then I can run campaigns to ensure how successful was that. I wanna measure that campaign as well. It's not just about pushing a notification, then forgetting about it, but I would wanna track how many people actually viewed the notification, how many people viewed, and then took an action, went, you know, called an intent to actually create, or get into a particular product details page, and then went ahead to buy that. So I might wanna track all these things in a success scenario for my marketing folks. So you can absolutely do that with this. And then open APIs and easy integration is possible. So if you have a CRM system, or you know, already using that, and if you wanna integrate this with mobile engagement, so that when the sales actually happens in a B2B scenario, and you do an entry in the CRM system, that should actually trigger some notifications, or run a campaign in an integrated manner with this. It could do that. And then data protection privacy, that's something you would always see in a Microsoft slide. So we'll just skip that. Regarding the actionable insights. Now trigger actions, you can control this. We'll see this little, maybe in the demo itself, that will be more explanatory. And then push communication platform. So you can use this whole mobile engagement platform as a push communication platform as well. So even if you wanna push something like 6,000 pushes per second, the beauty here is, which we faced it with certain customers, is you can track those pushes as well in all three platforms, even on Android, iOS, and Windows, which means why you do a push campaign, and you wanna see how many users actually received it on a device, and how many actually clicked on it. All those details are captured in here. So if you wanna do this, where you wanna push a notification, doesn't go through, keep a check of it, repush, retry pushing the notifications. You can absolutely do that, and you don't have to create any logic to keep a track of that. So you can absolutely integrate with CRM, CMS systems. And data is well encrypted, so you don't need to really worry about the production of the data which you're sending on Azure, because this is something hosted, this is a service hosted on Azure. So your data goes to Azure, which is some cloud service, and then from there it gets pushed to the PNSS. So the data is kind of secure over there. All the communication happens in an encrypted channel. Okay, so the whole idea, use case scenarios, which I can think of for mobile engagement is maybe you can have a welcome strategy to start with. You can have something like when a user registers in your app, you can absolutely push, create a set of notification which will only go to the newly registered users. So you can set up four, five campaigns upfront of what you would want or measure as a success criteria of your app. For instance, someone who installs my app, he logs in my app using a social ID. That's one success criteria. If he doesn't do that, I will have another campaign which will get blasted on day three, which will ask them to sign in to use some new features which he's not able to use right now without signing in. So I will run that on day three for those guys who haven't yet signed in. For people who have signed in, probably I'll give them a week, and then I will push them a notification saying there's some cool products. Now, once you push this and they go inside the app, you can learn more about their user path inside the app, what kind of products are they using. And I'm gonna log that set of products and tag this user for that particular group product ID saying he's interested more in sports goods. So I'm gonna give more offers or run a campaign for only this set of users who are interested in the sports group. So you can absolutely do that without having to do even, once you've integrated the SDK with your app, you don't need to worry about the push campaigns. And one key thing which is not mentioned here is especially if you are working in R&D scenario, this is pretty simple. Wow, something just, okay, that's fine. So if you're working in R&D scenario and or you wanna use something like a trial of this whole service, this is available for free, up to 100 users, complete functionality. So you can absolutely try this at home with your devices, your friends' devices. If you're a startup, you can absolutely test this out. And the pricing goes something like till up to 10, 10 lakh or yeah, something like one lakh users and above. It starts per active monthly user. It charges you around 60, that's the charge. But that only happens once you exceed 100 users up to one lakh. And if you go beyond that to 100 lakh, it becomes 40% and then becomes 30% and then it becomes even lesser. So it goes really less, the more users you have. But for trial purpose, 100 users, it's absolutely free. Okay, so you can absolutely manage the whole marketing portfolio with this. So generally we have seen some issues where you have a set of developers and then probably there's a bunch of marketeers and marketeers want something, developers don't know what they want and the whole integration kind of takes much longer time to build. So using this tool, you have a beautiful UI for the marketeers. All the developers have to help them to integrate this SDK into their app and then marketeers can completely take care of the engagement strategies and so on. Okay, and quickly, personalize customer experiences. So the whole idea of using mobile engagement is you can constantly keep a track of the user experiences as well in terms of user using which feature in your app and so on. So it completely gives you an idea of what features your users are using more or which ones you need to really work on and where are the more errors coming from? What are those device types? Which platform of Android is it running on? And so on. So you will get all those details and you can absolutely work on top of that to improve and of course also personalize customer experiences. Okay, so now quickly go and let's check out the dashboard that we have. So it also helps in boosting your user retention. So there's a beautiful dashboard which you'll see here which shows you how many users have installed the app and use this app, total number of monthly active users and users who joined for the first time versus users who were there the last month and so on. So it gives you that. And based on this, you can quickly track the evolution of the different controls in your application based on this and of course you can increase the ROI. Okay, so here are some example scenarios. As we said, so on the first contact, then anchor to a win-win scenario, demonstrate value through conversation, create a tree-like campaign. Now the whole idea of this is you try and connect with someone and once you connect with that person, it's easier that you will get him engaged in using your app. So that's all what we want to do here. So demonstrate the value through conversation, maybe you push notification, here's once back to notifications, you get to know him more and then you push him another notification and then finally he buys something from your service. And then you can have a create a tree-like campaign, as I said, or else kind of statements where if the user did this or no, if yes, then go get him to this campaign, else get him to this campaign and you can absolutely build a tree kind of campaign here. So here's one scenario, as I was talking about. On day one, we connect to Facebook, remember your last video, this is something like an experience which all of us give while we let you sign in an app, while you sign in the app, we'll kind of keep all the cues of videos that you're watching so that if you start watching the same video on a different device, you can still start, have a common list of videos that you have liked and watched and so on across those devices. So you tell about this feature to this guy, he still doesn't connect to your app or probably he's already connected and we'll take care of another campaign with that, but we can talk about another feature which is one click sharing your favorites with your friends. Now if he still doesn't connect, we go back on day 10 and say, discover your friends and favorites. That should be the most important feature your app offers. Without signing in, he will not be able to do that and you can track whether each of these level one or level two or level three campaign worked for him or not and if it didn't work for him, then probably yes, he really doesn't want to use our app. So otherwise we would have tried thrice to get him on a platform and if he is there, ask him, try and upsell the product like or not to help suggest great content and then also this helps boost your ratings. What happens is people who use your app more often, best use case example I can think of is OnePlus. The OnePlus fans who buy their phones, someone who's waiting for that phone and he really wants to buy that phone, probably would rate that phone well. I'm not saying the phone is bad, I also have one. The phone is pretty good, but you would see the reviews and ratings to be like extraordinary which is because they have a good fan base and they kind of involve or engage with their fans so the whole social media is flooded with OnePlus fans. So in that scenario, if now OnePlus asks for a rating or a review, they certainly are bound to get better reviews on Amazon than Nexus 6P, right? And they do have a better review than Nexus 6P. So that's probably because they are loyal users of that platform or a service and similarly if you know our users constantly using my service or my app, probably he's the one who's gonna give me five stars else he would not be using my app, right? So someone who's been regularly using your app, you should not let him go without actually rating your app. So you can absolutely run a campaign for people who have logged in and used your app for the past 10 days or bought some stuff, services from your app. Those are success criteria for your app. If they have surfaced that, then probably you wanna run a campaign for them which is rate my app on the store, right? So you can run those things to boost your activities. That certainly will give you better store ratings which is very important as well. Boost the hidden gems. So there are a lot of great features maybe overlooked by users. This happens with all of us because we are kind of one track. So when I constantly use one app like Flipkart, I kind of think Flipkart is better than Amazon. And this happens with maybe all of us. And but from the Amazon side of things, they might have a cool feature or maybe they had a feature called QR scan before Flipkart had that. So if they would want to run a campaign saying, let's push this new feature because our competitors don't have it and let's kind of lure some people to actually try our service so that they can really appreciate our services. So in those scenarios, you can actually expose your services which are actually overlooked by the users so people don't know about it. I have seen a lot of complex apps where I didn't realize that these are features supported especially from a tagging and notification purpose. You generally don't realize it till you actually start using the app or you start engaging with the app. So something like apps sending you in alerts and stuff generally is overlooked. So if there's a news app which kind of personalizes your news and then pushes those news to you on your personalized timings, probably I would love to have that app but probably I didn't know that this app has that feature. So you can absolutely expose those stuff here by running such campaigns. And this also promotes its value to active users and this is absolutely very important stuff. All the apps which I've written absolutely have crashed in most of those platforms. So I would need something like an app inside or Google Analytics to keep track of that. Now this guy does that for me as well. And this will tell you all the details that you would require, what kind of issue that was. And you can absolutely use this and you can even create a campaign for people who have had reported a crash. And then sending them a notification saying, sorry for the bad experience, we are working on it, we are looking into the crash reports and we'll get back to you shortly. Now if you give this kind of an experience in an app, this is pretty awesome. And you can absolutely build this with mobile engagement here. Okay, so this is how mobile engagement works. Basically your app will have RSDK which will push all the data, usage data from the client onto the Azure mobile engagement platform. And post that the CMOs, the marketers, the developers will have all the access of APIs to get the data and then analyze the data, get the insights into dashboards form and so on. And then you can also use this as a push platform using push communications or doing an in-app messaging. Now the cool feature of this is you really don't have to build something like an in-app messaging system for the app. The SDK will do that for you. So you just use the SDK there, add some permissions and then you would be done with that. Okay, now these are some concepts which, or maybe some APIs which we have exposed from the device and users side which captures data of the device versus the users. A user can have to device and devices are unique. And then there's something called sessions and activities. Sessions is when you open an app, till the moment you close that app or go out of that app or the session is on. So session is that period till what time you use the app for. But if you wanna track certain stuff within that, at that page level, you can do that with activities. So you can start an activity on start of a page like when user starts to buy a product. You might want to select this product, look at a details view, then click on add to cart, then go to the cart and buy it. Now you can do two things here. You can start one activity and then you can also have a job which you will see later on. Now jobs are very helpful in tracking. Now these are time-based, just job. So while you start a job, you'll have to end the job and it's ideal in scenarios where you're doing a payment. And users or developers would want to track because this has happened with me actually where we tested it on 3G. 3G internet is still pretty good. But when this app went into remote locations where even the low internet bandwidth of 2G was available, things were not working well. The JSON packets which were coming in were a little big for that internet and then there was some time-outs which were happening. APIs were failing because there were like five, six different calls happening, different services which was printed on each other. So now since that happened, for such scenarios you would want to keep track saying we have tested or benchmarked our APIs for this much of delays and stuff. Beyond this, we don't know because it's a third-party service that we are using so we don't know whether we can actually expect that kind of time from that particular API. So if you want to keep track of that, you can set a job, start time, stop time and then report it back onto your service saying this took so much of time. And this also helps you understand your user experience of your users because if he's taking a time of five minutes in buying a product, probably he's not going to buy it from you the next time. So you've got to keep track of those things by starting and ending a job and then you have things like events over there where you can pass on certain contextual data at that point of time from that particular page to the backend service. For instance, someone started to purchase something. So before you start a job, you can send an event saying purchase event or add to cart event. So that at least you can, in the BI, you can see how many people actually went through this event of adding a product to the cart in a day. So it's one million, 10 million and so on. So you can get those stuff here by logged in as an event. An error is basically for tracking errors. Like you started a job, the job was running, it went after 10 minutes, it returned some error from the service and then you might want to log that error for you to actually research on that. So you can put that as an error, saying API error, put the details in there and send it, call this particular API for error and then it sends it onto the server. Similarly, crash, you don't really have to do anything. Crash will take care of, you know, on itself. So even if you do some things like divide by zero or anything which makes the app crash, it still keeps a track of that, of those details. Now application information, platform installed on, all those data are right there. So now quickly, in just 10 minutes, let's have a quick demo. So I'm gonna share my screen and here we go. This is the portal on Azure and this is what you see here is what I have created a new mobile engagement project here. So all you have to do is click on create, give application name, platform, application resource name, location where it's gonna be hosted on and the collection name, which is mostly like a company name that you have. Once you have created it, you would get the details, the connection info. You would get something like the SDK keys which you would need. You have the connection string which you would have to pass to the SDK so that it identifies which cloud repository it needs to send the app data on. So this is gonna be a little important. While we have this data, we can actually quickly get started with the app. So here's a very basic app. Now this is just a two-activity app and in that we are just passing one message from one to the other one using an intent and then we have used some libraries in here which we would show. All you can see here is right at the beginning in the activity we have extended engagement activity right here on the top and then we have added like three lines for instantiating the mobile engagement of APIs here. So engagement configuration API and then engagement configuration, we have to set the connection string. As I said, we have to copy that connection string from the cloud and then just to authenticate whether which backend are we sending the data to so this gets right from there and then instantiate it. That's all we do. Now once you do this, we should be good to go in terms of instantiating the mobile engagement in this app. Now beyond this, if you wanna put some stuff like of course you would have to add things in the manifest you will have to add few permissions because mobile engagement requires them. So you would see a few permissions added over here which is not specific to mobile engagement but mobile engagement is gonna use those so you're gonna have those permissions in here because as I said, as you saw, it does a lot of things, it does notify you, it does notifications in background and stuff like that. Now once it is there, what I'm gonna do this, do here is I have an Android emulator. This is a Visual Studio emulator by the way and it's free of cost and works on without Visual Studio as well. So now I'm gonna push this to that device. Yes, emulator, okay. Let it push. In the meantime, we can actually look at the backend. Now this is where the whole thing is. This is how the dashboard looks like and what you can see here is you have analytics. So now while it's deployed, it's just a basic message. I can, it's just to invoke my SDK which is done now. So now I can actually go ahead and create a campaign and stuff. So let it load my portal. In the meantime, while it does so, what I can do is I have app here as well. So here's the project. My app mobile engagement which you created on the Azure portal appears here in this mobile engagement portal. Now you can go inside this. Right now you can see total users is one because it's only I who have been using this for now. Now you can see your users' details, your active users, retained users, who were users last month, even now, and tracking per source, retention. It gives you a retention matrix which a marketer would love to see. Then number of live sessions you had in your app, like number of people who opened up your app, you know apps like Uber and Ola use this a lot because they got analyzed on the search, the search rates based on this. How many users, which areas are actually using my app? So they actually keep a track of the session. I'm not saying they're using this product, but they got to use a track of sessions so that they can know about how many users are actually trying to book my cab from this region so that they can actually go ahead and do a search. So this guy kind of tells you live session counts. You can see those counts. Then you can see the activity details, those activities, which it's actually not the same as Android activity, but yeah, each of those pages is kind of an activity here. So you can kind of compare this to the Android activity, but it's the same name on Windows and iOS as well, where there's no activity there. So this is the user path analysis, and this is very important because this will tell you the different areas of your application, different pages of your application. For instance, I have done a poll. I have done something like an announcement, and it shows you all these things. Right now it doesn't have data because it's only single user, but the moment you have more data here, it'll start pulling up. So basically this tab called analytics will pull up data after 12 hours or so. You'll see, start seeing more data after 12 hours. It's not live monitoring here. Live tab is different, which I'll show you, but this will show you connected lines in terms of showing you the user path, how he uses the app, and then you can run different campaigns for different users with different paths. So you can find some users who actually open your app by notifications, and some users who actually start your app from your main activity. So then you have events and so on. This is the cool part, which is monitor. So while we have deployed the app, let me just check that out. So I can quickly go ahead and start that one. I think this was the app. So while we have started this app, it should ideally show one active sessions, and I would do that on my phone as well. So this shows you number of live active sessions, and so on. So let me start this up. Now this is highly dependent on the internet connection. So only if my data is going there, so it shows up one here now. It should show up two now, because I have started my phone app as well. Now it will show you live sessions, total number of live sessions here. Similarly, you can do a lot of live monitoring by activity, which activity people are using most often, or with jobs people are using more often by different names. I haven't set up a job name inside my app, so it doesn't show up anything here. Events that you have errors if you have, and similarly crashes that you have. So you can pass all these details, and one cool stuff is the alerts. So I have done is, I have another interface for this, where in this project, I have a UI. So let me share that UI with you. How do I get that here? Okay, so you can see this. It's my one plus device, and here's an app which is running on it. Now you can see I can start a particular activity. I can end that activity. I can actually crash this activity as well. This activity can be, I am on a particular page while doing that configuration stuff. It crashed, so I will get that crash report. My app didn't crash. I can crash my app as well. So I click on this, crashes my app. Now I can actually, in real time, go back and check the crashes, and you would see the crashes. Let's check them out. Details. Okay, so while it loads up, it would bring up that crash, which I did just right now, in here. So I can do a real-time monitoring, and what I can do is I can configure it with an alert. So I can set up an alert here, saying whenever I can set up an alert condition, I have set one already, which sends me a mail whenever there are more than five errors. So when I get greater than five errors, I get a notification via email saying, you know, there are more than five errors. So I can come back and check out what those errors are, and then update my app. You can set up a new alert on different criteria. So it gives you a lot of criteria. Either it can be number of active sessions. So once your active sessions goes beyond a big number, you can create an alert for that, active jobs, because you know that I can't do maybe more than 1,000 concurrent processing. So I would probably keep a track of whenever my total number of active users go beyond a point, I might want to look at my back-end scalability and so on, so you can set up a job here. Similarly, errors and crashes are there as well. So you can set up a crash. You can set up saying threshold for detection is gonna be greater than 10. So I'm okay till I have 10 crashes per hour. You know, I can set up minimum detection rates, saying keep looking for it every 30 seconds or minutes or hours, whichever is, you know, better for me. And then drop a mail to my email ID. So I can just put my email ID here and it would configure whenever there's 10 crashes happening in a window, not in a window of 30 seconds, but yeah, I think overall it would let me know about that. So it would at least have 30 seconds of gap in letting me know. So kind of by the time you get an email, it's like one minute. So that is what it would tell you by setting up an alert here. Now other cool stuff here is the campaigns that you can do. So you can very easily go ahead and create probably a reach campaign. Now in this reach campaign, what happens is you can push notifications based on either you have an announcement, I create the welcome kind of thing which probably would have come up here. First time user. So let me push one here. So I can go ahead, create a quick poll, create a new poll, and you would see number of people who actioned on it and stuff like that. Test poll. You can mention a category, sales or something and then go set up. Well, I would wanna send a system notification. If it's not important, I can live without that in app notification as well. I would do this anytime, title, test. Just quickly let me fill this. You can upload an icon as well. So you don't hard code here in the device level. Yes, no. Right, so this should create a question for me. Are you using Android? So similarly, whatever makes more sense for the business, you can just quickly go ahead and create some quick questions here, quick polls here, and then expect the users to go ahead and you can write some expressions as well to filter out your target audiences based on tags. Now I'm gonna push this to everyone. Who's using my app? Go ahead, create it. It creates this campaign or your campaign is done. Test poll, one, two. While it does, you can activate this guy. This takes a few seconds and then activates it and then it sends a pushes notification. So one sec. While this pushes, I would, I have already got this notification here. Let me show you that. So you see this test here which I just created so I can tap on it now. While I tap on it, you see that poll came up and actually it went because this app triggered something. So that's how I can actually go ahead and create a quick poll without having to code that in my app because my app was a basic simple activity but there was something called as a poll page. So if you look at the SDK, SDK drags and creates a lot of, you know, XAMLs, AXAML over there. We are sort of out of time. Okay, so I'm done with this now. If you guys have any questions while the next speaker comes up. Yeah, I don't think we have any time for questions either. Okay, I'll be outside anyway. So if you guys have questions, you can come back. You're the Microsoft Booth, I'm assuming. Yeah, okay. Okay, thank you guys.