Analytics for Windows 8 apps using Markedup

The Windows 8 store does provide some analytics information to you in terms of downloads by market or by age group, ratings, in-app purchases.

image

I find that a little too limiting. What if I want to know what page my users are spending most of their time or what events are being raised more frequently or are my users calling my app through the search contract I implemented or how many times was the share contract called. To answer questions like this, you need a more mature analytics framework. Markedup is one such solution.

Once you register an account (free at the time of writing this blog), click on Track a new app link.

image

Enter the details in the fields

image

Notice that MarkedUp is available for all types of Win8 development platform – C#/ XAML, JavaScript and C++. This article will concentrate on how to implement MarkedUp for a C# / XAML app. Please refer to the documentation on the site to implement the same if you are using other languages to develop your app.

Once you click on the Create app button, MarkedUp gives you a unique API Key. This is the key that  you will need to register in your app and all the events that you track will be associated to this API Key. Installing the MarkedUp package through NuGet seems to be the easiest way out.

One of the requirements to use MarkedUp is that you enable the Internet capability in your app, to enable the transfer of analytics information to MarkedUp servers. Add a Privacy policy to your app once you have enabled Internet capability. See point 5 in this article for details.

You now need to call the Initialize method of the SDK and pass the API key that was created before. You can get the API key by clicking on the Install MarkedUp link in the site as well. You do this in the, say the OnLaunched event, in your XAML app. Now you are all set to utilize the SDK to the fullest.

image

Let’s go directly to implementing the logging of session events. There are five types of session events that you can utilize based on your scenario.

Navigation Events – track a user’s movement through your app. Use the EnterPage and ExitPage events of the SDK in the OnNavigatedTo and OnNavigatedFrom methods.

image

For XAML apps, you can track navigation events by calling the RegisterNavigationFrame method.

image

Commerce Events – tracks commerce activity which includes trial conversion and in-app purchases. Use the InAppPurchaseShown method of the SDK.

Form Events – tracks the forms that a user has filled while using your app. The InputFormSubmitted method would be the main one to be used, however if you want more granular detail, you can also implement the InputFieldSelected, InputFieldTextEntered and InputFieldUnselected methods as well.

image

Contract Events – tracks the contracts in your like Search and Share contract.

image

Life Cycle Events – tracks app life cycle events like suspend and resume. AppStart, AppResume, AppSuspend and AppExit methods are available.

image

Custom Events – tracks any custom action that you want. This is one of my favorite features available in the SDK.

image

I use custom events to track how my users are faring in the Knight’s Tour game.

image

Apart from these, the SDK also gives you diagnostic logging where you can log Debug, Errors and Fatal scenarios that your app encounters.

image

MarkedUp also provides daily app stats like session and active users.

image

You can see daily app installs.

image

Another really cool feature provided is the app version usage. You can see what percentage of your user-base has upgraded.

image

Time spent in the app is also shown.

image

These are some of the main features that I wanted to bring to attention. There are others that are useful as well.

MarkedUp is in beta (at the time of writing), but they also have a pricing model once they come out of beta. You can choose which one fits for you.

I have implemented these analytics on three of my Windows 8 apps and here are some pointers based on my experience.

  • Start analytics right from the first version: You can track your app from the very beginning.
  • Implement the events even if the website is not currently supporting them: In their own words – “our reporting dashboard is currently playing catch up with our SDK”, so log those events, they’ll show up on the site soon.
  • Events that are captured during app development are counted as well: MarkedUp said “Yes - MarkedUp will count those calls and measure them; they're usually a drop in the bucket compared to what your live users in the marketplace will accrue though”. So my suggestion is that you develop you app to almost completion and then add these events just before creating a package for the Win 8 store. The other way would be to comment out the Initialize method call and continue your development.

Are you MarkedUp yet?

No Comments