Monday, March 15, 2010

Google Analytics Evolution - Time Series GA Data using the API & App Engine

This project started with 3 main ideas:
  • Need to quickly pull visits, bounces, transactions by month for many sites? Check.
  • Want to rapidly chart sites' performance against each other? Check.
  • Need a simple interface to allow for getting data into Excel that any marketing person could use? Check.
I am happy to introduce Google Analytics Evolution. A new app hosted on Google's App Engine (for Java) using the Google Analytics API and Flot., a powerful jQuery plug-in for charting.

GA Evolution in Action
Reason for the app
I often have the task of slicing and dicing data for the many sites I oversee. at logismarket we operate our 16 sites in 15 countries. Using Google Analytics, the process of pulling data for reports across all of these sites, was a time-consuming and tedious task. Custom reports, advanced segments, and the great greasemonkey script, cleanerGAProfileSwitching, made things much easier, but I wanted to be able to work even faster. Additionally, any time that I wanted to see data over a longer period of time, my biggest pet peeve with GA, sampling, would rear its ugly head. Given the size of our sites and depending on the dimension or segment used, we can trigger sampling with only a few months of data. That makes using GA for measuring trends quite unreliable, especially for transactions, since the margin of error is much larger on the transactions than it is for visits (the basis of sampling in GA).

So when my boss asked me for a review of the last 18 months for all of our sites and to further segment the data into 3 different slices, I decided to start coding instead of pulling data right away. A little investment now in coding to get a big payback over time for me and anyone else who has the same kind of needs with GA.


Examples of Usage
  • Site comparison: Pull data for the same period for 2 or more sites and click a column header to see the results in the chart
  • Segment comparison: Pull data from the same site (or more) and choose various segments for the same period and click to see the difference in the chart without the distortion caused by being forced to include All Visits (as it does in the GA UI). Also less likely to trigger sampling.
  • Quick data pull for multiple sites: Select all (or most) of your site profiles, get the data, copy and paste to Excel. Only minimal manipulation needed to get the data ready for Pivot Table usage :-D

Check out the free app today

Ideas for Future Expansion
While this app currently meets my needs I have identified some areas that I want to expand and improve the app. I am also open to suggestions. Please add a comment to this post or report an issue on the Google Code project page for GA Evoluation.
  • Add export to CSV feature. I am thinking to do this along similar lines as the charting... where you export the data that is already pulled and you select the tables. That way you know what you are going to get (eg, you can check Confidence Interval to make sure sampling was not triggered).
  • Make the metric selection dynamic with a set of default metrics. You can greatly expand the reporting capabilities, but I need to make sure that the reporting stays correct (keep apples to apples in charting of the data).
  • Add some calculated metrics not in API. Bounce Rate, eCommerce Conversion Rate are not available via the API because that info can be calculated after pulling the data. No need to burn free Google cycles when we can just calculate it ourselves. However, it would be more user friendly to have the option to get the data as we want it, not just as it is given to us by Google.
  • Other enhancements to flot charts. These are not fully defined yet, but I am thinking toward making the charts a bit more dynamic... still need some thought here.

Monday, March 8, 2010

Let it snow let it snow let it snow

I woke up this morning and this is what I saw.

The access to the freeway was closed off so that meant work from home ;) I realize that in other countries and parts of the states, this would just be any other Monday in Winter, but here... they are not prepared (much like when it rains in LA).

The snow has not stopped all day. Sometimes light. Sometimes heavy, but it has not stopped. Too bad that it is so cold because the sea forecast predicts some big big waves (up to 7 meters), which are not too common for the western med.

Schools here are closed and even the city hall is handing out letters to justify people's absences from work.

Luckily we still have our power, internet connection and especially natural gas to keep the house toasty.

Here are a few more photos and a video of the snow. Tomorrow should be spectacular since the skies are supposed to be clear and hopefully we get a great show of Montserrat.