KISSmetrics vs Mixpanel

While trying to decide on KISSmetrics or Mixpanel, I decided to write a blog post about it since I’m guessing other people are asking the same question. I am not in any way affiliated to either of them.

Analytics Impact is all about converting data into actionable insights. Though in order to order to find good insights you need to have the right data and be able to easily slice and dice the data as needed.

Google analytics can usually give you 90% of the “right data” for most sites, but it has a few major shortcomings that truly limit it when trying to use it to gain insight for a SaaS site.

  • It does not allow you to track data down to the individual visitor across visits
  • It doesn’t have time based cohort analysis

As I am now in charge of a SaaS site, I found myself needing answers to questions Google Analytics just couldn’t answer. I know there are free add-ons and work-arounds that could handle most of my needs just with Google Analytics, but I would rather pay a reasonable monthly fee than spend hours gluing everything together, and even then I wouldn’t have an easy to use reporting solution. I know because I’ve done it in the past.

What I need is a system to fully understand what visitors are doing on my website and then continue to track them when they sign up for a free account and ultimately become customers. Once they are customers I need to understand how they are using my SaaS site (what features they are or aren’t using) and why we lose customers.

I’ve been using web analytics for a while (even before Urchin became Google Analytics) so I already knew what my shortlist was for my needs:

KISSmetrics or Mixpanel

Let me start by saying that both of them are excellent choices. Neither is “better” in the absolute sense, but I need to decide on one or the other so I started looking deeper into which one would better meet my needs.

I found an excellent blog posting on this exact topic by Sacha Greif http://sachagreif.com/analytics-showdown-kissmetrics-vs-mixpanel/

A great read but with one major problem. It’s from March 2012. I know that’s just 8 months ago, but a lot has changed since then.

Here’s a request for both KISSmetrics and Mixpanel. Please provide a simple “changes.txt” type page that easily shows me what’s changed over time. That way if I read an old product review (like this one will be in a year) I’ll be able to easily see what’s changed. Mixpanel kinda has something like this for major changes on their about page.

Back to the comparison. I personally don’t need real-time data so I’m fine with KISSmetrics not being real time (though debugging can be a pain).

Since I really need to easily be able to look at individual user history I was originally leaning towards KISSmetrics as I thought Mixpanel doesn’t support this feature. I shortly found they do but only introduced the feature in July 2012 as a paid add-on.

I wonder why the “people feature”  https://mixpanel.com/people/ isn’t linked from the main site. If anything it makes the pricing page a bit confusing since they talk about the people plan add-on but don’t provide any further details.

As an ex-coder I must say the online documentation for KISSmetrics seems more comprehensive than the Mixpanel documentation. I was also surprised that Mixpanel doesn’t even link to their documentation from the main site (it’s at https://mixpanel.com/docs/ ). KISSmetrics has it linked from the footer at http://support.kissmetrics.com/

Next I wanted to look more into revenue reporting. I’m guessing that you can store revenue just like any other number in Mixpanel, though I’m a bit concerned that revenue isn’t mentioned anywhere on their site or their docs (I searched).

KISSmetrics on the other hand talks about lifetime value on their homepage and even has a revenue report as I found in their docs.

At this point I was just about to go with KISSmetrics when I stumbled across Mixpanel’s new Engage feature: http://blog.mixpanel.com/2012/10/19/insights-are-just-the-start/ Basically you can now send targeted emails or notifications with Mixpanel’s targeting criteria.

This is the kind of feature that was science fiction (for an analytics service) a few years ago. It’s interesting to see analytics and marketing automation services like Marketo or Eloqua really start to overlap.

I’m betting than in a few years we’ll see content targeting as an additional feature so you’ll also be able to easily show dynamic based on user behavior (though this has existed for a while as stand-alone products)

BTW, I came across https://www.klaviyo.com/ which seems to be very similar to Mixpanel and KISSmetrics though it heavily promotes their email integration as one of the main features (rightfully so). They are pretty new (April 2012) but I’d keep an eye on them.

I also wanted to mention http://customer.io/ which seems like a no-brainer if all you want is very smartly targeted emails.

UPDATE:

I just wanted to include some other services that look interesting and worth looking into for SaaS based analytics:

http://totango.com looks interesting as well. It’s laser focused on SaaS sites which I like. Very strong in natively identifying the type of real world data I’d want to look at (ie customers at risk of leaving). It does seem a bit behind in terms of reporting (I didn’t see any time based cohort analysis). Also no pricing info on their site though they were very responsive when I contacted them (a good indicator that they value good customer service).

I’d love to hear your thoughts – KISSmetrics or Mixpanel and why!

Four New Additions to the Google Analytics API

For those of you not following the GA API change log Google just added four new data points:

Dimension

  • ga:dayOfWeek

Metrics

  • ga:percentVisitsWithSearch
  • ga:visitsWithEvent
  • ga:eventsPerVisitWithEvent

All of the new data points are essentially “calculated metrics”, meaning you could calculate this yourself if you were to download the data and do the calculations offline, but still, I applaud Google for continuing to make it easier to get the data without having to resort to offline processing.

Personally, I’m most existed about the dayOfWeek dimension. If you’ve never segmented your traffic by day of week, you really should. Do you know what day of the week has the highest conversion rates? Maybe you should be sending out your emails that morning :)

Google Analytics Report Permalinks

Just a quick post on a very cool trick I recently learned from my colleague Mike Plummer.

If you’ve ever tried to bookmark a report in Google Analytics or share a report URL via chat, you might have noticed that some of the report’s criteria isn’t included.

For example, here is the URL in my browser bar for the top content report for Jan 1-31, 2011:

https://www.google.com/analytics/reporting/top_content?id={profile id}&pdr=20110101-20110131&cmp=average#lts=1296578679097

Now lets say I want to add a page filter (at the bottom of the page) to only show URLs with “google” in them. After I’ve added the filter and clicked Go, the report now only shows URLs with “google” in them, but the URL has not changed!

If I were to bookmark the URL and come back to it later (or send it to a colleague) the report would not include the “google” filter you just added.

But there is a simple solution!

1. Click on the “Email” button on the top of the report (next to Export button)

2. Click on the “Back to report” text link at the top of the page – right underneath the “Set Up Email:”

3. You’re done!

Now the link in the address bar looks like this:

https://www.google.com/analytics/reporting/top_content?
id={profile id}&pdr=20110101-20110131&cmp=average&
rpt=TopContentReport&segkey=request_uri&q=google&qtyp=0&tst=0

As you can see, the page filter information is now included in the URL and when returning to this URL you’ll get exactly same same view!

Thanks again to Mike for the awesome tip.

Google Analytics API – Now With New Dimensions and Metrics

Google just added a boatload of new dimensions and metrics to the Google Analytics API:

http://googlecode.blogspot.com/2011/01/127-new-dimensions-and-metrics-through.html

I’ll spare you the technical details (you can read the official post) but I do want to comment on what I think is the most important change – 10 new Adwords dimensions.

Here’s why –

I admit I’m not an expert regarding Adwords administration and optimization tools, but until recently, they’ve had what I consider one very big flaw. Initially Adwords tools would look at the beginning of a visit; what happened on Google and the Google network such as impressions, CTR, CPC, etc and then what happened at the end of a visit, IF it ended with a conversion and you had Adwords conversion tags.

Then Google integrated Google Analytics goals into the mix which provided some additional data, but we’re still looking at the start and the end of a visit.

For sites that have a zillion visits and a few hundred conversions a day, you have enough data for analysis, though for the average small business site, there just isn’t enough data if you’re just looking at the end goal (sales, leads, etc).

In order to analyze the vast majority of visits that don’t end up in a conversion, you really need to look at metrics that serve as indicators for traffic quality such as bounce rate, time on site, page views, viewing key pages, etc.

This means that either the Adwords tool has it’s own internal analytics system (and you need to install yet another tag on your site) or it can take advantage of your existing analytics data.

I know a few vendors recently added Google Analytics metrics to the mix, which is a very welcome addition, but some key Adwords dimensions were still missing form the API.

Now that we have almost every Adwords dimension you could want in the API, I foresee a new wave of Google Analytics / Adwords integration, and eventually tools that will truly be able to automatically optimize your campaigns.

Google Analytics on Intranets and Development Servers / FQDN

Just a quick posting about using Google Analytics on pages that don’t use a fully qualified domain name.

If you’re using Google Analytics on a site with a URL like http://intranet/ or something like http://mydevserver:12345 it won’t work.

Specifically, the Google Analytics JS code will not send the tracking hit (__utm.gif) to the GA servers.

I don’t really know the specifics, but I’m guessing that the domain hashing code looks for at least one period in the hostname and won’t work if it doesn’t find one.

Two alternatives come to mind:

1. Use an IP address if one will work. If you’re testing on a local machine 127.0.0.1 should work fine (that IP always resolves to the machine you’re on)

2. Turn off domain hashing. Simply using _setDomainName("none") in your code should also fix the issue.

Hope that helps someone who might be pulling their hair out trying to figure out why the page is not being tracked :)

Get more than 5 custom variables in Google Analytics

A few months ago Google Analytics released an awesome new feature – Custom Variables.

If you’re new to custom variables, you should read the official Google help page:
http://code.google.com/apis/analytics/docs/tracking/gaTrackingCustomVariables.html

And check out the webinar they did recently:
http://www.youtube.com/watch?v=UmQTfqmoSyk

While custom variables are great – you only get 5 of them, or so Google says. There is an undocumented feature that basically gives you as many custom variables as you want. It’s as simple as setting the number of maximum custom variables as you want to use. Here is the Google Analytics function to use:

[important update July 2, 2010]
Omar brought to my attention that when drilling down via the standard GA interface, when you pick a custom variable after the 5th one (in order that is was set, not in the order on the interface) you get an error saying:

An Error Has Been Detected
Please try again. Thank you for your patience.

My gut tells me that this is ONLY an issue with the interface and that internally the data is still being recorded, but I can’t know for sure.
In any case it seems that from a functional standpoint creating more than 5 custom variables is fairly limited since currently you can only see the variable names and not the values for slots 6 and up.

Continue reading

adCost Bug in Google Analytics API

Recently I’ve been using the Google Analytics API to automate some of the report generation I’m doing.

After some serious hair pulling I finally realized that there is a bug in the API when one of the metrics you request is adCost.

Specifically, when requesting adCost with other specific metrics, the results for adCost are always zero.

After some research I found this post which confirms that Google is aware of the adCost issue.

Unfortunately the post doesn’t really help much in terms of finding out which combinations trigger the bug, so I tried out some of the combinations myself found that using any traffic source dimension with these metrics will trigger the bug:

  • entrances
  • exits
  • exit %

If you are aware of other metrics that trigger this bug, please let me know and I’ll add them to the list.

I should add that this bug also affects custom reports!

If you’re using any traffic source dimension and adCost together with any of the above metrics in a custom report you’ll get zero for the adCost data.

Hopefully this saves someone else from some major hair pulling.