One of the most commonly requested features for MarkedUp has been the ability to support parameterized session events, and as of the release of MarkedUp Analytics SDK for .NET 1.0 this feature is now publicly available to our customers.
Parameterized session events help you group and categorize related user events that occur inside your applications; this gives you the ability to maintain a high-level view of how people are using your application while also allowing you to expose more details if needed.
For example: I have a Hacker News Windows Store application that I’ve been working on in my spare time and I want to be able to track how many articles people actually view when they use it.
So, I embedded a standard MK.SessionEvent call inside my WinJS application to track how many people viewed an article:
And this allows me to see the total number of times someone has viewed an article using my app:
But what if I want more information – what if I want to know which articles users are viewing? Parameterized session events can help us with that.
I’m going to modify the call to MK.SessionEvent and include a new parameter: “ArticleUrl.”
“ArticleUrl” is the name of my parameter, and the value of this is the URL of whatever article a user is viewing. In C# / XAML you can just pass in an IDictionary<string, string> object for all of your parameters and values, but in WinJS you need to use a Windows.Foundation.Collections.PropertySet collection.
Once I’ve run the app with this custom parameter included, I can drill down into the ViewArticle event and see a new parameter:
And if I click on the “ArticleUrl” parameter, guess what we see next? A list of all of the URLs for each event!
With that simple change, our ViewArticle event becomes much more informative and valuable – we can even use the date picker to see which articles were most popular amongst our userbase during each month or week!
Advanced Example: Distinct Session Event Parameters
Let’s take our usage of parameterized session events a step further. One of the features of my Hacker News application is the ability for it cache articles to the local filesystem in order to conserve bandwidth. I’m considering extending this capability to enable the app to run entirely offline – so my question is: how often do people really look at cached articles?
Parameterized session events can help us answer this question.
I’m going to move my MK.SessionEvent call from viewItem.js and into my caching layer – that way I can tell if the article I am serving is cached or not. Here’s my code looks like for that:
I have to different methods that are called by my app when we need to view an article – one that checks if the content is cached and serves it if it is, and another that downloads the content from the Internet.
Whenever we serve the content from cache, I pass in a ps[“Cached”] = true parameter and a ps[“NotCached”] = true whenever we don’t.
So after running the app a few times, it looks like most users don’t view cached articles very often:
I’m doing it this way so I can see directly at the ViewArticle view how many articles are served from cache versus those who aren’t without having to drill down any further.
But the choice is yours – parameterized session events are designed to be flexible and allow you to use them however you wish.
Make sure you check out our tutorial on using parameterized events with MarkedUp Analytics, and please let us know if you have feedback!