Question

Are there any .NET frameworks for collecting data similar to Google Analytics, for example to know how many people use a specific feature or how many people launch the app. The only solution that I have found is EQATEC Analytics which is pretty good, but doesn't show which feature or which versions of the app are being used. Based on the API it appears that it does collect the data, it just doesn't present it.

Was it helpful?

Solution

Disclaimer: I am a developer on this product so I may be a bit biased.

You should check out the new functionality available in Dotfuscator Community Edition shipping in Visual Studio 2010 (now out in Beta). It provides a free code injection engine to insert usage tracking functionality directly into your .NET binaries. This will work on any .NET application from .NET 1.0 through 4.0. Since it is a post compile code injection solution you can even accomplish basic run time usage and feature tracking without modifying your source code.

We are writing a number of blog posts covering these topics. A summary of the new features is here What Is Runtime Intelligence .

An overview blog post on how to implement is at What's New with Dotfuscator in Visual Studio 2010 Beta 1 .

I have also started a more in depth series, covering details and some usage ideas, with the first article here Correlating Downloads to Usage With Visual Studio 2010 .

There is also a commercial product with more feature than are available in the free version. In addition we also provide similar functionality for Java applications, using our DashO product as the code injection engine.

OTHER TIPS

I have recently released a .net library that allows you to log page views from native .net code.

Its called GoogleAnalyticsDotNet and can be found here:

http://www.diaryofaninja.com/projects/details/ga-dot-net

Example API usage:

GooglePageView pageView = new GooglePageView("My page title",
                                "www.mydomain.com",
                                "/my-page-url.html");
TrackingRequest request = new RequestFactory().BuildRequest(pageView);
GoogleTracking.FireTrackingEvent(request);

API Usage for events:

int? eventValue = 100;
GoogleEvent googleEvent = new GoogleEvent("mydomain.com",
    "Event Category", 
    "Event Action",
    "Event Label",
    eventValue);

TrackingRequest request = 
    new RequestFactory().BuildRequest(googleEvent, HttpContext.Current);

GoogleTracking.FireTrackingEvent(request); I will be adding transaction support soon

Use Google Analytics "Universal Analytics." It's trivial to send the RESTful payloads it expects. Since your app doesn't serve pages, send "Events" instead. You can still use the G.A. "Flow" views etc to see not only counts but also maps of user behavior -- what the users did first, then next, etc. Invaluable from a UX standpoint.

I would suggest Trackerbird Software Analytics. Has some very neat filters and visualizations.

Just an update to the EQATEC Analytics post from Keivan: EQATEC was acquired by Telerik in March and the new website URL is

http://www.telerik.com/analytics

StatHat is AMAZINGLY simple and super fast. I just started testing their stuff out for out .net WinForm client app and it is looking great.

All you have to do is include one file into your solution, and you can start logging stats right away

https://www.stathat.com/

They have event/action stats and they also have running total stats.

They have support for many different libraries. I literally had this up and running in 2 minutes from sign up to first logged event.

Google Analytics isn't just for websites, they have bindings for:

So you can use Google Analytics pretty much anywhere, and they don't seem to have too much of an issue with it.

See also: Google Analytics Core Reporting API Client Libraries & Sample Code

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top