May24

Windows 8 App Analytics with Markedup

Tags: | Categories:
Permalink | Comments (0) | Post FeedComment feed by author Jason Short

I am a HUGE fan of having analytics in all your apps.  Not only for the basics of how many people are using your app, trapping errors, etc.  But also so you can tell what features they are using and decide where to spend your time working.  I have been using Flurry for my Windows 8 apps so far and I wanted write a quick post about the latest SDK release.

MarkedUp for Analytics

I used MarkedUp.com for all of my Windows 8 apps.  The basic functions to track number of users and get back crash dumps are so easy to add you will kick yourself for not doing it sooner. First thing a lot of people ask about is pricing, and the good news is that MarkedUp is free for up to 1 million data points a month.  After that the cost is $99 a month per each additional million data points.

Super easy to do the basics

First go look at the MarkedUp Getting Started page.  I had my first app running with the basics with less than 10 minutes of work (seriously!).

You will get some really nice high level reports like the one below for my Disney Backgrounds app for Windows 8.

image

Go further to get more out of the service

By going just a little further you can get a lot more out of the service.  I spent time adding tracking for in-app purchase displays, for both when a user buys and when they cancel.

private async void RemoveAds(object sender, RoutedEventArgs e)
{
try
{
    MarkedUp.AnalyticClient.InAppPurchaseOfferShown(App.InAppPurchase);

    await CurrentApp.RequestProductPurchaseAsync(App.InAppPurchase, false);

    if (App.license.ProductLicenses[App.InAppPurchase].IsActive)
    {
        MarkedUp.AnalyticClient.InAppPurchaseComplete(App.InAppPurchase);
        MessageDialog dlgThanks = new MessageDialog("Thank you for purchasing!");
        await dlgThanks.ShowAsync();
    }
    else
    {
        MarkedUp.AnalyticClient.InAppPurchaseCancelled(App.InAppPurchase);
        MessageDialog dlgDenied = new MessageDialog("Purchase cancelled.");
        await dlgDenied.ShowAsync();
    }
}
catch (Exception ex)
{
    MarkedUp.AnalyticClient.Error("Purchase Remove Ads", ex);
}
}

This gave me some really great statistics about people canceling their purchase.

Custom Events

Another feature that I recommend is adding custom events for core features within your app.  I wanted to know how many times people clicked on the save button rather than the Pin Lockscreen button.  By adding the events I could tell that a lot of people were hitting save (maybe because it was first) and then canceling the purchase and leaving the app.  I rearranged the buttons and that problem has mostly gone away.  I have noticed that now about twice as many people set their lockscreen before leaving the app.  It was a simple change and one I probably would not have noticed without the analytics in the app.

To track features you add a small snippet of code like what is shown below.  In this example I am tracking how many people click on the MailTo in my about page.

        private async void OnMailTo(object sender, RoutedEventArgs args)
        {
            var hyperlinkButton = sender as HyperlinkButton;
            if (hyperlinkButton != null)
            {
--->            MarkedUp.AnalyticClient.SessionEvent("OnMailTo");
                var uri = new Uri("mailto:" + hyperlinkButton.Content);
                await Windows.System.Launcher.LaunchUriAsync(uri);
            }
        }

Other providers

I know there are other providers out for doing analytics, MarkedUp was recommended to me by a friend and I have never looked back.  I use another company for my Windows Phone apps, but I wish MarkedUp had a mobile client so I could switch.

Comments are closed