Wednesday 16 December 2009

Google Analytics report bookmarking hacks

Help HiPPOs!
Even though Moneyspyder is firmly behind the anti-HiPPO movement we recognise it is still important to help HiPPOs. After all, they do rule the business world.

Generally speaking it is best to deliver insight to HiPPOs. Make the news - don't just deliver the news! However, there is merit (on occasion) to furnish them with 'vanity metrics' or 'outcome proxies' as we tend to think of them via the medium of 'the dashboard'.

Better Dashboards
The dashboard in the context of Google Analytics will likely take the form of a custom report. Custom reports rock. F.A.C.T. A custom report based dashboard can lift the value of the deliverable. You can move from report 'puking' to actually delivering insight by placing the report in context. You can do this in a few simple ways:

  • Multi-tabbed

  • Use advanced segments

  • Use relevant date ranges

  • Use comparison date ranges

Express delivery!
Okay, you have the dashboard setup - it offers context as well as just raw numbers. It yields actionable insight (so go do some insightful actions already!).

You'll probably want to schedule the delivery of this report via a monthly PDF attachment in an email. Simple in Google Analytics.

I suggest dropping a note in with the email via the description:

The note should start delivering context for the HiPPO. Help them already before they open the attachment! Now, the real meat of this post. Provide a link to the report.

Scary controversial opinion alert!

Invite the HiPPO into Google Analytics...Give them a specific read-only login to one profile that contains the dashboard/custom report.

Use the options in the report URL to customise and control what they see.

Here is a standard custom report link:

Here is the link with some easily customisable options in the URI: id&pdr=primary date range&cmp=advanced segments&trows=50&gdfmt=nth_day&cdr=comparison date range&segsegment number=-segment number&rpt=CustomReport&segkey=medium&tab=tab number&tchcol=1&tst=0&tscol=v0&tsdir=0&mdet=WORLD&midx=0&gidx=0&cid=Custom report id&afs=false

So, what are the customisable options? this is not an exhaustive list - these are just the ones I find useful right now - this list may grow.

Custom report id
Open your custom report. Write down the id in the url. Use it.

Primary date range
This is the date range that you want to look at. It's optional. If absent, the report will show the default last 30 days. It is in the format: yyyymmdd-yyyymmdd (eg. 20091101-20091116) where the first date must obviously be before the last... ;-)

Comparison date range
This is the date range to compare with - great context. Look at 'the same period last week/month'

Advanced Segments
How cool! Load a report showing only the segments you want to see! The format for the NVP is segn=-m. So, the default will show 'all users' would be ....&seg0=-1&...the default advanced segments follow the order in the drop down list so 'Non-bounce visits; would be seg0=-12. You can show multiple segments in the format: ...&seg0=-3&seg1=-5&seg2=-12&...which would show 'Direct Traffic','Visits with Conversions' and 'Non-bounce Visits'.

Tab number
Have you got a multi tab report? Do you want to default to a tab other than the first? Specify the default tab number here. Simples ;-)

Wednesday 2 December 2009

Statistical significance in A/B testing - a little tool to help


I read a tweet recently by @tclaiborne about a great blog post on the subject of Easy Statistics For Adwords AB Testing And Hamsters. With a title like that, how could I not take a peek?

It so happened that I was working on a small project to build a tool in Javascript to enable easy analysis of two data sets to compare them for statisticaly significant differences, specifically in the context of A/B and MV Testing.

This post is introducing the prototype of that tool. Just to be clear, this tool is a mash up of Javascript snippets that have been published. I didn't write the whole thing so I'm not taking credit here - I'm just looking to share a cool tool!

A Simple Test to Introduce The Tool

Let's say we've run a test using Google Website Optimiser. We made a change to a page to increase the number of outcomes. We have 6 days worth of data. Here are the conversion rations for the 6 days for the original and the test variation:

Test Page9%6%7%6%9%8%

So, from 5 days worth of data, can we see if the difference in the conversion rates are significant? It's a small data set...the numbers seem to be different but as the blog post referred to earlier says, we humans are really bad at looking at data sets and making accurate judgements.

We need some stats. Enter jsstat.

So, we can drop in our two samples of data as comma separated values. They don't have to be the same size or integer values. Let's hit that 'oh-so-tempting' import button to see what wonders we can find:

Ah, such insights, knowledge and power are ours! We can deliver meaning and value to our clients! Ahem, enough whimsy - what the heck does this mean?

I'm going to keep this high level:

  • The differences could have happened by chance.

  • The green text tells us the truth

  • The results are conclusive.

  • The new page converts 1.5% better than the old on average

Try the test yourself using '1,2,3,4,5,6,7,8,9' as both data sets. NOT SIGNIFICANT!

Moving swiftly on

It's a prototype okay? It might not work in crufty old browsers. Stick with a later version Chrome or FireFox to be safe. The graphing is adding little value right now but box plots are coming!

I'd really like a direct export from Google analytics or Website Optimiser into something like this...Hmmm.

Now, the new Google Analytics Intelligence functionality is very similar to this. It's great, don't get me wrong! Different in some ways but based on the same theory...mostly.

We are looking at taking this tool a lot further to supplement Multi-Variate testing results analysis and click stream data analysis.

I'll keep you posted.

Friday 20 November 2009

First/last click campaign attribution and onsite purchase trigger analysis techniques.

Understanding which traffic sources contribute to successful outcomes on your website is crucial to maximising Return On Investment. By default Google Analytics supports last click attribution. This means a customer who starts a session with a click on the Adwords Campaign 1 (see below) and then starts a new session with a click on Referrer 1 and ends in the purchase of four products will result in Referrer 1 being attributed with the 'credit' for all four sales.

See the Google Conversion University for more details.

We can add the utm_nooverride=1 parameter to the links in our campaigns to ensure the first campaign that is clicked is credited for sales and goal outcomes:

So, we can measure which marketing initiatives incentivise users to visit our sites but we can't so easily see what motivated a user to complete a goal or purchase while on the site – what is driving positive outcomes from user journeys during their visit? We can't easily see this with default techniques.

You can have your cake or eat it...but not both.

Moneyspyder has developed a technique that couples first or last click attribution data to measure brand engagement with last-click-before-purchase triggers on a 'per basket item' basis to reveal purchase or goal completion triggers.

We say you should have your cake, eat it and have extra sprinkles too!

We modified the Moneyspyder ecommerce engine such that the purchase trigger (last click before adding to basket/cart) is recorded in the Google Analytics clickstream data as well as being recorded against each order item in the basket such that the value can be used in the 'Category' field on the Google Analytics ecommerce tracking code.

Purchase triggers may include clicking on a feature product on the homepage, clicking on products in on-site search results, related product clicks, products in category listings, product clicks in email campaigns, organic search results and of course 'direct' visits from bookmarks. The limit here is your imagination!

Recording product clicks from on-site or external search engine results generates great purchase trigger data. Using the search term to supplement the data is a golden opportunity not to be missed. Likewise, related product clicks should record the product that was related to the purchased product and category list clicks should record the category.

This modification to our ecommerce engine was straightforward – it should simple be on your software too.

By now you will get a clear picture as to what extra data is being recorded. Now, what can you do with it?

First of all, let's take a look at the pure clickstream data:

From the standard content report in analytics we can see how clicks on the 'sky-lantern' product came from a multitude of different sources:

  • search for lights

  • email campaign

  • linked from other products

  • category links

  • direct

We can see unique page views required for conversion metrics, average time on page, bounce rate, exit % and the super insightful $index. If the scope of this technique stopped here, we'd be pretty happy already with the extra insight we have on customer journeys. The extra sprinkles arrive when we consider the magical 'outcomes'.

As described above, of vital importance to getting maximum value from this technique is to record the last click before 'add to basket' in the clickstream data AND the transaction 'category' data. These sets of related data enable amazingly fine grained conversion metrics to be retrieved. For example, we can dig into the search listed above for 'lights' (the bottom row in the table). That's a pretty handy $index! Looking deeper we can see this search generated some pretty handy revenue over a short period of time:

Applying classic analytical techniques yields further insight:

If you're not convinced as to the merits of this technique by now, and indeed, you can get a lot of this data from the onsite search report then we shall take a mighty leap and look at category conversion metrics for the 'Best Sellers' category based on the landing page.

In the Google Analytics report below (Ecommerce → Product Performance → Categories), it looks at first glance that using the homepage as a landing page work pretty well. Sure, lots of revenue but that's not all!

When we take unique pageviews into account we can see the conversion rate for the best Sellers category when the homepage is the landing page is a respectable 4.8%. However, the Sale and Festive Season (Christmas) categories both out perform the homepage as landing pages at 5.4% conversion and the Best Seller category page as a landing page converts at 5.6%.

It's worth bearing in mind at this point exactly what this data means. A customer entered the site on a particular landing page, found their way to the Best Sellers category and put a product in their basket that they bought – the Best Sellers category page was a trigger to purchase. They liked the page and the products so much that they bought – just what site owners want to see and hear.

Through simple modification to our ecommerce engine, Moneyspyder has revealed finer grained, segmentable insights into the aspects of customer journeys that trigger positive outcomes – goal completions or purchases that include first and last click attribution.

This functionality is a great facility for conversion professionals to identify optimal customer journey paths and focus optimisation efforts with greater accuracy and effectiveness.

The modifications required for this technique are entirely portable and are in no way specific to the Moneyspyder ecommerce platform – we really encourage you to explore this technique.

Moneyspyder Biog:
We are a Google Conversion Professional and develop and host state-of-the-art ecommerce solutions using Ruby on Rails. We continuously improve customer experience using web analytics, split-testing and regular site enhancements based on web analytics data.

Monday 2 November 2009

Google Analytics: Expanded Mobile Tracking for Mobile Rails sites

Expanded Mobile Reporting - Introduction
Google recently announced expanded tracking for mobile apps using server side code. PHP, Perl, ASPX and JSP are supported as standard. As a dedicated 'Rails house' Moneyspyder has published a sample application for Mobile sites using Rails to broaden the usage of the product.

The need for this sample app is driven by the current use of javascript for tracking clickstream data. There are still a fair number of mobile devices out there that do not support client side javascript which can leave a sizable hole in your clickstream data. Using serverside code to reproduce the behaviour caters for these devices.

Preamble and cavets
The sample app is available for download. This is just a skeletal sample app and requires more thorough testing if deployed in the wild. We'd be keen to hear feedback of course as this is just a starting ain't production ready!

Moneyspyder accepts no responsibility for loss or harm to data caused by using this sample app yadda yadda...

With that out of the way, some details.


Download the app


  • routes.rb

  • environment.rb

  • ga_helper.rb

  • ga_controller.rb

  • index.html

Two routes are used, only one is really required. The utm_gif action (served by the ga_controller.rb controller) is responsible for sending basic request info to the action and the action builds the remainder of the request details and sends them to ga, returning a 1px transparent gif.

The GA Account idientifer is saved in environment.rb. You might want to store it in a configuration yml file, the db or whatever your favourite place is...

The utm_gif_url helper method builds the utm_gif request. This is used in index.html for demonstration purposes.

ga_controller.rb rquires cgi, digest and open-uri. CGI is used for urlencoding strings. digest is used for the MD5 stuff. open-uri is used to send the request to Google analytics.

utm_gif is the only public method needed. response headers are set appropriately and send_data is used to return the transparent gif image. Requesting the gif through the private track_pageview method is where the magic happens.

In summary, all the usual name value pairs that are appended to the _utm.gif request to Google Analytics by ga.js are collected and then sent to Google Analytics using the private send_request_to_ga method. open-uri allows us to send this request programmatically. This might well be a nice plave to build in some error handling...

Once the request is done, the gif data is returned and the page is rendered - sweet.

You should be able to spin upthis little rails app easily enough using webrick on your local machine i the standard rails way and hit http://localhost:3000. (no support is offered by Moneyspyder for this setup - it's pretty standard stuff)

You'll see something like:

Gotcha and thoughts
If bots are hitting your mobile site or you use this tracking code technique insteaqd of ga.js (Hmmm?!) then you'll likely get a lot of traffic from bots - better filter the requests that get tracked.

Monday 26 October 2009

Easier Website Optimiser tagging

In my previous posts I introduced the idea of externalised javascript libraries to abstract over Google Analytics page tracking and ecommerce transaction tracking.

This idea also transfers nicely into Google Website Optimiser where you can experience some interesting scripts on your first visit!

These articles assume you are at least familiar with the concept of multivariate testing, javascript, Google Analytics tracking and the Live HTTP Headers plugin in FireFox.

As with the last posts - use these scripts at your own risk. Don't link to the script libraries directly, copy and tune to your own needs!

A Simple MV Test made simpler

A normal website optimiser multivariate (mv) test requires a control script, tracking script and goal script to be placed on your pages. The control script decides which experiment variation to show. The tracking script records which test variation was shown and the goal script records the experiment conversion.

Two cookies are also used in combination with the standard GA cookies.

Standard cookies
etc (there are quite a few!)

Website Optimiser cookies

The nature of the standard cookies is not the subject of this article. In summary, the utmx and utmxx cookies are used to remember which test variation a users sees.

If you inspect the cookies you have in your browser right now you probably won't have any utmx cookies for the domain. If you go to the example page for this article and recheck your cookies, you should now see a utmx and utmxx cookie for the domain.

You've just been tested!

You will have equal chances of seeing a very simple page with one of three different pieces of text and two links:

Original page
Test 1
Test 2

(and two links to goal and purchase)

Delete the utmx and utmxx cookies and reload the page to see different variations. This is standard Website Optimiser type development/testing/debugging.

You should also inspect the HTTP Headers output. Notice the request for siteopt.js? Notice the utmx and utmxx values? If you don't see these - it's broken. Simple. Check for javascript errors.

The source of the html page will reveal the how the test is rendered. As with the page tracking example we are including Moneyspyder javascript libraries:

<script src="/javascripts/ms_ga.js" type="text/javascript"></script>
<script src="/javascripts/ms_wo.js" type="text/javascript"></script>

ms_wo.js gives us three methods to use:


All three methods take the experiment id as a parameter 'k'. You can get this value from the supplied script snippets when you set up your test.

The control script normally sits at the top of your content - ms_wo_ctrl replaces this script and so, sits in the same place. Feed it the test id to setup the test. Directly beneath the ms_wo_ctrl script, call the ms_wo_tracking method. Feed it the test id and Website Optimiser ua account value to track the test view.

Now, normal test scripting applies for a moment. Wrap the content you are testing with your utmx section and noscript tags as normal. At Moneyspyder, we are considering implementing later versions of this script library with the ability to 'document.write' the utmx sections based on matching dom elements by id or class. We'd be interested to hear your thoughts on this. Less code is better, right?

So, assuming your test is set up you should now have a page that mirrors the format of

Viewing this page and inspecting the HTTP Headers output will reveal the following requests:

ga.js (Google analytics script library from Google)
siteopt.js (Website Optimiser script library from Google)
utm.gif requests

The request to siteopt.js will pass in values of your utmx and utmxx cookies if you have them so that you can see the same test variation you saw last time or, if you don't have the cookies, your test variation and utmx values will be set.

Having displayed the test variation content, your page will track the test view with a utm.gif request to the Website Optimiser UA account and the utmp value of the test id follwed by the string 'test':


The goal page follows a very similar format but just calls ms_wo_goal in the same way as ms_wo_tracking with the UA and k values:


And so the page is tracked as you will see by inspecting the HTTP Headers output for the utmp and utmac values.

Wrap up
So, we have seen how the javascript supplied by Google for page tracking, transaction tracking and website optimiser testing is totally 100% fit for purpose and great to use. But with a little thought we can afford ourselves a little more power, maintainability and ease of use. We have cleaner pages and can handle change a little better.

If these articles help you implement good quality Google product integrations then we have a success. If you want to take this work further for your own sites, great but remember it's good to share! If you want to challenge this work, feel free to leave comments or drop us a line at - we'd be happy to exchange ideas!

Google analytics: easier transaction tracking

In my previous posts I introduced the idea of externalised javascript libraries to abstract over Google Analytics page tracking.

This idea also transfers nicely into Google Analytics transaction tracking where, it seems, most people seem to come unstuck.

We'll try and get you stuck back together!

These articles assume you are at least familiar with the concept of javascript, Google Analytics tracking and the Live HTTP Headers plugin in FireFox.

As with the last posts - use these scripts at your own risk. Don't link to the script libraries directly, copy and tune to your own needs!

Simple transaction tracking made simpler

Take a peek at the transaction tracking example

Thanks for buying stuff! No, seriously, even though the page looks as unspectacular as the Page Tracking Example you have actually registered a (fake) transaction with Google Analytics for a t-shirt and an indoor frisbee.

Take a look at the page source. We're using ms_ga.js again. The method we are interested here is ms_ga_trans.

Notice the source does not track a page view! That'll be taken care of for us by the method.

ms_ga_trans takes three parameters: an array of UA accounts, a URL and a data structure representing the transaction.

The array of UA accounts enables us to track the transaction in any number of Google Analytics accounts. The URL is nullable so we can track the transaction page as a specific URI or just use the default. The transaction data structure mirrors the structure set out in the Google Analytics Transaction tracking documentation.

A transaction requires:

an order id
an affiliation
a shipping value
a tax value
a total value
a country, city and state

Clearly an order also requires one or more order items. Each item consists of:

the order id
a sku code
a name
optionally, a category (very useful)
a unit price (how much for one?!)
a quantity

Now, I'll stress this point about numerical values here. Do not include currency symbols. It is really important that when specifying a price or tax value or shipping value that you specify the value as a number to two decimal places. That is all. Not:






or similar.

Just go for the simplest option which is (for example),


and stick it in quotes - everything is a string. Simple. No fuss. No complexity. If something is free, list it as 0. Don't miss out fields. You'll miss the wrong field and the script will fall over. With abstracted/externalised scripts and method calls you can build in more error handling and checking - handy!

So, inside the guts os ms_ga_trans we see a similar format to ms_ga_pagetrack where we iterate through the array of UA account values to track against:

{"order_id": "666666", "shipping": "5.95", "web": "", "tax": "1.79", "total": "21.74", "country": "UK", "items": [
{"price": "6.00", "category": null, "name": "t-shirt", "sku": "t-1", "quantity": 1},
{"price": "8.00", "category": "home", "name": "indoor frisbee", "sku": "f-1", "quantity": 1}

We see that the page view is tracked here to - hence, we do not track the page separately. It is important to track the page view before recording the transaction.

The transaction is then added using the ga.js addTrans method. Each item in the transaction is then added and finally the transaction is tracked.

So, there isn't that much that is simplified here other than the order in which the steps happen and the opportunity to build in more error checking and handling. If you've got these basics right - well done. You want to know the transaction has registered though, right? Real time? Right, thought so.

Reload the page with our new best friend Live HTTP Headers looking over our shoulder so we can review what happened under the hood.

First of all, no surprises, ga.js loaded.

Then we track the pageview with utm.gif

Take note of the third section in the HTTP Headers output - there is a new utm value called utmtid and it has our transaction id, '666666'. Cool - transaction being tracked with expected values! Okay, so we can see the total in utmtto, the tax in utmtx, shipping in utmtsp etc.

Each follwing section details each order item. utmut=item, utmipn for the item name, utmiqt for the quantity. Real self explanatroy stuff when you know where to look and what to look for.

Never have a transaction fail to track ever again!

Thats should do for this article - next time we Optimiser our website with Google Website Optimiser - but simpler. ;-)

Google Analytics: easier page tracking

Google Analytics is great. It's free and super powerful but... there is always a but!

Sometimes the tracking tags can be tough to understand. They can be tricky to implement if your CMS doesn't directly support them. Debugging can be 'gnarly'. Mix in Google Website Optimiser tests and you might end up biting of more than you can chew.

Moneyspyder has written two small skeletal javascript libraries that you can copy and use to make Google Analytics page tracking, transaction tracking and Website Optimiser implementation a bit easier.

We're trying to lower the bar to entry. We're not saying YOU MUST DO IT THIS WAY but we think this is one good way to start doing simple tracking and testing and we want to share some techniques with you. We're not saying the existing Google code is wrong or bad but if you want slightly cleaner pages and to get some extra value by abstracting out javascript code then this might be useful and it might even make managing your site easier.

The next few articles will cover smarter:

Page Tracking
Transaction Tracking
Website Optimiser tagging
All three together

Feel free to take a copy of the scripts used in this article. Don't link to them - they will change over time and your tracking might break. Moneyspyder accepts no responsibility for harm to or loss of data if these scripts are used 'as is' or linked directly from the Moneyspyder server. You have been warned - so now let's inspire!

Simple smarter page tracking

Take a look at our first page - Page tracking example

Spectacular it is least at face value. View the source to see the interesting bits.

1. In the
section you will notice a javascript include

<script src="/javascripts/ms_ga.js" type="text/javascript"></script>

Take a look at the ms_ga.js source. The section that we are interested in is:



2. In the html, notice we are making two calls to ms_ga_pagetrack
The parameters that are expected are:

  • An array of one or more strings - 'UA-XXXXXXX-X'

  • An optional string to use as the page URI

The first parameter as an array enables you to track pageviews in multiple accounts without having to repeat the tracking code. The Google tracking method
can take a parameter to replace the tracked page url.


Additionally, if the Google ga.js javascript (notice the first two lines in ms_ga.js?) changes, you only change the ms_ga.js file and all your site pages remain untouched. This extra 'abstraction' layer has been helpful to Moneyspyder in the past.

Debugging Google Analytics page tracking can be a lengthy and frustrating process:

  • Try a tracking script

  • Hit a page (along with everyone else who uses your site

  • See if the page view appears in the GA reports

  • Fail? Sigh...Rinse and repeat

We prefer to do this in real time. Yup, results while you wait. Go and get the Live HTTP Headers Firefox plugin. Start it up (Tools menu in FireFox). Go to the 'Config' tab and click the 'filter URLs with regexp' checkbox. Then put this string in the corresponding text box:

So now the only values you will see in the HTTP headers output will be related to Google Analytics.

Reload The HTTP Headers output will contain 4 sections of similar format. The first section is the page including ga.js from Google:

GET /ga.js HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv: Gecko/20090824 Firefox/3.5.3 GTB5 (.NET CLR 3.5.30729)
Accept: */*
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
If-Modified-Since: Tue, 13 Oct 2009 18:39:01 GMT
Cache-Control: max-age=0

HTTP/1.x 304 Not Modified
Last-Modified: Tue, 13 Oct 2009 18:39:01 GMT
Date: Mon, 26 Oct 2009 12:14:29 GMT
Vary: Accept-Encoding
Cache-Control: max-age=604800, public
Server: Golfe
X-XSS-Protection: 0

This output tells me first of all, the nature of the request being made - we're asking for ga.js from Google. There is some http header info about the browser I am using, an HTTP response code and not a lot else of anything of interest.
The next section gets more interesting:

This request won't appear in the HTML source of the page. This is the output from _trackPageview. The data appended to this gif request is how Google Analytics gets the data into Google Analytics. Some interesting values here:


utmp is the page path - remember we set this using the url parameter in our own method call? This is where you see the page path that is being sent to GA. utmac is the GA account being used for reporting. We set two accounts to be used - 'ua-1' and 'UA-7862117-1'.

So, the first request we saw in the HTTP Headers output was the request for ga.js:

Second, we reported the pageview using /skeleton/tracking and ua-1:

Third, we reported the pageview using /skeleton/tracking and UA-7862117-1:

Fourth, we reported the pageview using /ms_page_tracking and ua-1:

There are quite a few name value pairs appended to the utm.gif. More than should be discussed right now. We'll use this same debugging technique for transactions and website optimiser tracking and tagging.

Next, we'll do some testing!

Tuesday 20 October 2009

new, enterprise class Google Analytics Features

We're really excited at Moneyspyder about the release today of the new features on Google Analytics.

In summary:

  • More goals

  • Intelligence (!)

  • Custom Alerts

  • Table filtering

  • Unique visitor metrics

  • Sharing custom segments and reports between profiles

  • Multiple custom variables

If this seems like Greek - we have to talk. Call us and we'll make sure you get value from Google Analytics.

More here from the Google Analytics blog:

Friday 16 October 2009

Moneyspyder at the Google Global GAAC Summit 2009

Doug Hall, Moneyspyder's CTO is currently 'recovering' from three fantastic, intense, entertaining and revealing days at the 2009 Google GAAC, WOAC Global Summit at Google's Crittenden Lane campus in San Francisco, California.

'Recovering', yes but not in a negative sense. The breadth and depth of subjects covered was breath taking. A summary of the highlights:

Day 1 - WOAC Day

  • Dan Siroker described how his team on Braka Obama's election campaign used data to help win the election

  • Website Optimiser - The current and future of WO and Google's complimentary products. (NDA prevents disclosure at this time)

  • Tim Ash presented his conversion Ninja;s toolbox

  • Cocktails and dinner @ Google

Day 2 - GAAC Day 1

  • The highlight of the day, keynote address by Avinash Kaushik. Blunt, insightful, worrying but overall, truly inspiring

  • The current state of the art of Google Analytics closely followed by what the (very exciting) future holds for GA

  • Fellow GAACs presented case studies for tools and techniques that they have pioneered and enabled them to deliver value to their clients. Moneyspyder will be presenting next year!

Day 3 - GAAC Day 2

  • Google's Chief Economist, Hal Varian described how Google's fantastic body of data can be married to statistical modelling techniques to provide forecasting mechanisms - utterly mind blowing. The equations were just sublime ;-)

  • Google's Partner Program team described the incredible growth of the GAAC and WOAC program. Moneyspyder has long been pat of these programs and can attest to the value that Google bring to their partners. A truly awesome effort and a well deserved 'honorary GAAC' award for Alan Wrafter!

  • The GA API subject is a crucial one. A presentation and a breakout session yielded magnificent value. The open forum breakout session was a refreshing change to the powerpoint/QA format and a lively discussion ensued.

Now, this summary is deliberately light on detail. In a short while we will be discussing more about the 2009 GAAC summit content on this blog - NDA prevents further detail but the wait will be worth it - F.A.C.T.

Watch this space!

Tuesday 11 August 2009

Moneyspyder blogs on the Google Conversion Room blog

Moneyspyder has contributed to the Google Conversion Room blog with an article describing our 'Opportunity Analysis' service. This service uses our new tool employing the Google Analytics API - 'The Prophet' - enabling data sensitivity and time series analysis of your bottom line figures in Google Analytics. Money and forecasting = Profit and Prophesy - geddit?

Take a look and get in touch if you'd like to know more!

Tuesday 28 July 2009

Google Analytics Event Tracking Advanced Segments

Further to one of our earlier posts about Event Tracking coolness with Google Analytics, Google have just enabled event ware advanced segments:

This is going to be really powerful when reporting on Website Optimiser Experiments.

Friday 24 July 2009

Twitter live search widget - suggested tweaks for tweeples...

Take a look at the left hand side of our blog and our 'About Us' page on our site. You'll see we have integrated the new Twitter Live Search Widget. It's quite neat but...the generated code doesn;t work too well. If you go with the standard code, it won't look quite like the example and you'll find the tweats heading of down the page and stomping all over your content.

If you want to use the Twitter Live Search Widget in blogger, add the following line in the head section of yout HTML template:

<link rel="stylesheet" type="text/css" href=""></link>

or as we have done on our site, just drop the css ref in with the generated script:

<div id="twtr-search-widget"></div>
<link rel="stylesheet" type="text/css" href="">
<script src=""></script>

Tweet on in safety Tweeples...

Okay - with the script generated in ie, matters improve slightly.

I maintain, IE is *very* sensitive about script. Perhaps it's a combination of the script & IE.

Proceed with caution.

The style sheet *is* needed though.

Wednesday 1 July 2009

Moneyspyder joins Google Conversion Professional Programme:

London July 1st 2009: Moneyspyder today announced that is one of the first companies in the UK to join the Google Conversion Professionals Programme. Launched today, Google Conversion Professionals are recognised by Google as experts in increasing conversion: driving qualified traffic to websites and ensuring visitors become customers.

Moneyspyder has completed a rigorous selection process, demonstrating expertise in key Google Products (Google Analytics, Google Website Optimiser & Google Adwords) and delivering high quality products and services to enhance ecommerce website effectiveness. Using Google Adwords, Google Analytics and Google Website Optimiser, Moneyspyder offers clients services and products to identify, prioritise and maximise the opportunities on their site.

James Aston, Managing Director of Moneyspyder said "We are delighted to be recognised by Google as one of the UK's leading consultancy companies in e-commerce conversion enhancement. Although we are well known for our hosted e-commerce platform, fewer people think of us first for improving the performance of their existing web sites. Google's accreditation process was rigorous and tough but getting through it gives us the recognition we think we deserve as the people to talk to if you want to make serious improvements in your e-commerce profitability."

Alan Wrafter, Google Conversion Programme Manager, says "We are delighted to offer our advertisers the services needed to really drive conversions and profitability. Google Conversion Professionals are industry leaders in achieving the best return on investment for online businesses. There is so much room for website improvement that I encourage websites of all sizes to consider a consultation with one of our experts."

About Moneyspyder's Consultancy Services
Moneyspyder offers a full range of e-commerce optimisation services covering acquisition, conversion and retention. Our conversion service vary from fast turn-around audits, based on web analytics and customer journey analysis (last month we identified £100,000/month revenue opportunities from a 2 day audit) through to ongoing, monthly continuous improvement services.

About Google Conversion Professionals Programme:

The ‘Google Conversion Professionals’ program is designed to connect under-performing online companies with tool-agnostic conversion specialists who offer an array of services including:

  • Marketing Effectiveness (landing page tuning and AdWords ROI improvement)

  • Tool Installation (custom implementation of analytics & testing tools)

  • Data driven insights (improving your website based on insights from analytics and testing data)

  • Systems Integration (merging of your content management systems with analytics data to improve RoI)

  • Product & Services Consulting (product, service and pricing recommendations)

Monday 22 June 2009

Enhanced Google Website Optimiser tracking using setVar and Event Tracking

Moneyspyder has been using Google Analytics and Website Optimiser for some considerable time now. As Google Analytics Authorised Consultants and Website Optimiser Authorised Consultants we are constantly looking for new opportunities for clients to improve the quality of their sites across all their KPIs.

When analysing Website Optimiser test data, we've identified a serious need for more fine grained data to get really crisp results. For example, Website Optimiser will tell you how many visits have occurred to each of your experiment variations and how many visits have converted. The nature of the conversion may change of course as might the secondary and tertiary effects of tests. How can we see whether a test of the on-site search functionality has increased ecommerce conversion? Can we see whether customers engage better with the site if they see more featured products? Website Optimiser data won't necessarily answer these questions out of the box. We've identified a couple of techniques that will help though.

The test(s) was about to conduct a couple of tests. I'll gloss over the tests here because this post is more about the how rather than the what'. In a nut shell - are the featured products adding value and can search or newsletter signup perform better sitting next to the logo?

Newsletter signup in the header with no featured products:

Search in the header with featured products:

The tests ran for a couple of weeks and the first result comes in:

No great surprise - search usage is improved by nearly 40%. The other test is still running though. So, were searchers buying more? Are featured products engaging customers? Are test subjects spending longer on the site? Are these changes adding value to the bottom line? We'll consider event tracking first of all:

Google Analytics Event Tracking

Event tracking is currently a beta feature. You'll need to request it to be added to your Google Analytics account. It's a much sweeter mechanism for recording single events than virtual page views especially if you don't want your content report data soiled.

First of all, get your test set up and running normally. Now, you want to record an event firing for each variation and potentially for each conversion. We'll cover variation tracking - goal tracking is a lot easier!

You'll need to find out your experiment number - you can find this in the WO control script provided (it's the variable k):

function utmx_section(){}function utmx(){}
(function(){var k='123456789123',......

Now, before you track your event, let the WO script do the first part of it's magic, then using the experiment number, you can interrogate the __utmx cookie to find out what variation is being served:

variation = '';
if(typeof(x) != 'undefined'){
variation = x.substring(x.length,x.length-1);

Before any further WO scripting - track the event (uacct is the GA account ref used for your given Ga profile):

var tracker = _gat._getTracker(uacct);
if(label != ''){
if(value != null){

Bingo - WO variation views are tracked as events, simples! So, how does this look in GA? Head over to your reports, go into Content -> Event Tracking:

In the overview you'll see something like this:

Not that interesting...drill into actions though and you start to see real data treasure. Here's the ecommerce tab:

Row 0 refers to the original, row 1 is the search box in the header and row 2 is the newsletter signup.

We can see that AOV is down - no big deal - not statistically significant. We can also see that conversion rate and overall revenue are up and highly significant. So, the test confirmed more searches were happening but beyond that, we know that searchers convert 2-3 times better than non-searchers so we would hypothesise that revenue and conversion would increase with search usage. This data confirms the hypothesis and tells us by how much!

Now we can drop this data out and run it through SPSS (enterprise scale stats tool) to run more numbers through at our leisure to gain further insights: not something you can do with WO reports.


User defined variables are a really neat and powerful segmentation mechanism that we can use to provide a facility that allows segmentation of data based on partiular events firing. For many cases, segmentation based on events will not be useful or interesting but coupling event tracking with WO tests does make segmentation worth while. Say I wanted to see on-site search usage stats, ecommerce performance and site engagement data in one custom report based on a user seeing a certain test variation - now segmentation becomes useful. You don't have to use event tracking with user defined variables - I did in order to explore the technique. Say for example you've extracted the variation number as in the event tracking example. Now we can use superSetVar from Lunamaterics to set a user defined value using a similar naming convention to the event tracking:

unSetVar('/featured-test','<%= ENV['ga_account'] %>');
superSetVar('/featured-test='+variation,'<%= ENV['ga_account'] %>');

As you can see, we are a Rails shop - feel free to substitute the syntax of your choice to get the right uAcct value in place.

Right now, Website Optimiser has not suggested as clear winner for the featured products test. I wonder how things are shaping up?

If we were to head over to Visitors -> User Defined and take a look at the ecommerce tab we would see the following interesting report:

'featured-test=0' is the original where feature products are shown. 'featured-test=1' is the test where featured products are not shown.

Now, create a custom segment:

And apply this to the report then go look at the ecommerce tab:

You can probably see how you can now look at any report in GA to see how your tests in WO are affecting metrics across your site.

Now, I have to say that these techniques are still in development - if you see any potential issues, it would be great to get your feedback. Likewise, if you use any techniques here, do so at your own risk. When trying out new techniques, do so in safe profiles - not your main data repositories!

I implemented an event tracker and a superSetvar call in a rather dumb way and ended up destroying a days worth of bounce rate data! Hopefully you have been interested by this missive, perhaps even inspired but certainly warned!

Moneyspyder - Agency Focus on

We've been featured on the SheerB2B Agency Focus.

Reads nicely and make interesting reading - especially James' top ten tips for successful ecommerce - Read more...

Some Background on and was launched in February 2007 to offer high-end online retailers the opportunity to reach a highly focused audience, namely those seeking to purchase the finest (although not always the priciest) goods online.

The B2C site has become the first port of call for online retailers wishing to communicate information concerning their luxury brands, products and designs to a highly relevant target audience of ABC1 women.

Following the success of SheerLuxe (click here for more information), the launch of SheerB2B complete the circle.

The site brings together an online community of niche / high end / independent etailers with the best B2B content on the web, a directory of recommended industry agencies, suppliers & experts as well as advice, tips, case studies and interviews to help them successfully grow their businesses.

Together SheerLuxe & SheerB2B aim to be the first port of call for etailers looking to both market and develop their businesses.

Monday 1 June 2009

Moneyspyder joins Website Optimiser Accredited Consultant Programme

This week, Moneyspyder became a Google Website Optimiser Authorised Consultant (WOAC), having proven both to our clients and to Google that we can make e-commerce sites work better and make more money.

Moneyspyder offers a full range of services introducing businesses to the power of on-line split testing all using Google's extremely powerful and free-to-use A/B & Multi-variate testing framework. These services, designed for companies of all sizes and technical abilities, aim to accelerate our clients from simple yet powerful one-off tests to strategic continuous-improvement-testing.

'Efficient sales and cost-effective growth are the key priorities for e-commerce companies, especially in these challenging economic times', suggests James Aston, Managing Director or Moneypsyder. 'For many people this means doing more with what you've already got, rather than buying up competitors or launching new sites, and this is where Google products come into a league of their own. Gaining insights from Google Analytics and then driving improvements through Website Optimiser can sustain growth in even the most stagnant market conditions'.

About Moneyspyder: Moneyspyder develops and hosts state-of-the-art ecommerce solutions and continuously improves the customer experience using web analytics, split-testing and regular site enhancements. Having qualified as Google Analytics Authorised Consultants at the start of 2009, we have continued to demonstrate high quality results using Google products. Now, having also recently added three Adwords Qualified Individuals, we are able to demonstrate consistently high ROI for multiple clients in customer acquisition as well as conversion and analytics.

About Google Website Optimiser:
Website Optimiser, Google’s free website testing and optimisation tool, allows you to increase the value of your existing websites and traffic without spending a penny. Using Website Optimiser to test and optimise site content and design, you can quickly and easily increase revenue and ROI, whether you’re new to marketing or an expert.

Friday 22 May 2009

Aggregation of marginal gains

@avinashkaushik: Why do otherwise intelligent people ignore the low hanging fruit and want to eat the whole tree first? - (via twitter of course)

I have no qualms at all about this shameless retweet/re post. The subject matter is something Moneyspyder is a great fan of - the aggregation of marginal gains. In a nutshell:

John Carlzon - "you cannot improve one thing by 1000% but you can improve 1000 little things by 1%"

Feel free to view the webinar below at your leisure. Whilst watching it bear in mind that whilst John Carlzon's quote is very profound and highly relevant, consider these questions:

  • How do you identify 1000 clearly improvable features on your site?
  • Having identified these 1000 candidates, what changes should you make?

  • Having decided what changes to make - how do you accurately and precisely measure the effects of the changes?

  • How do you translate the effects of the changes into a bottom line ROI?

Think on, watch, call Moneyspyder

Friday 15 May 2009

Keywords in snippets Google SEO research

Moneyspyder enjoys a high rate of success regarding Search Engine Optimisation of our client's sites. However, we are aware that success is never final. With the SEO arms race constantly moving forwards, we are always on the lookout for new research, techniques and methodologies to enable us to make sure our client's ecommerce businesses ranked as highly as possible in Google organic search results.

We read an interesting blog post recently regarding the impact of keywords in snippets with respect to clickthroughs in Google organic search results.

Have a read of Dr. Mike Baxter's 'Reflections from the River Bank' blog .

Monday 4 May 2009

Google Analytics - Can Moneyspyder coin a new term?

Haruspicy is prediction of the future by cutting open a goat...nice. Tephromancy is the art of divination by inspecting ashes. Cyclomancy is a divination technique using rotating objects.

At Moneyspyder, we prefer to use the science of Google Analytics as a business planning tool. When setup properly, your Google Analytics data will have sufficient precision and accuracy that reliance on entrails, ashes, or badly setup Google Analytics will seem like medieval practices.

Can we coin the phrase "Google-omancy"? Attempting to predict the future of your business using sub-optimal Google Analytics is difficult at best and more-than-likely dangerous in most cases.

Thursday 30 April 2009

Moneyspyder and Engineyard make sweet music

At Moneyspyder, we started developing our Ruby on Rails Ecommerce system nearly three years ago. As we progressed through the prototyping stage we recognised that we needed a serious hosting partner who had good Rails experience.

We know we are great when it comes to Ecommerce strategy and Ecommerce technology - our clients tell us! We didn't want to divert our attention away from our core business so we needed a fully outsourced infrastructure team. Someone who could support us. Someone who we could work with to grow our product and share in our success.

There was a clear winner in the market place: Engine Yard.

Read more about our partnership and how we grew as a company on the Engineyard Q & A section.

Saturday 4 April 2009

Google Analytics Consultants - why work with them?

Moneyspyder has been a Google Analytics Authorised Consultant (GAAC) for a while now. We have worked with a number of clients on Google Analytics, Google Adwords and Google Website Optimiser. We have met a few prospective clients who ask, quite rightly, 'Why do I need to bring Google Consultants in to improve my site?'. Here are a few points as to why you should think about Google Analytics Authorised Consultants as a value proposition rather than a cost...

Bill Hunt, CEO of Global Strategies International has been quoted as saying 'Eight out of 10 implementations of web analytics solutions are incorrectly set up.'

Google Analytics Consultants will know what a best practice Google Analytics implementation looks like. Being a Google Analytics Authorised Consultant requires up-to-date knowledge of what is best practice.

So, the first step is to get your Google Analytics implementation properly audited by Google Aanalytics Consultants. You can only rely on your Google Analytics data to make decisions if it is accurate and precise. Your data can only be as accurate and precise as the quality of your implementation.

I've blogged previously on the subject of keeping focused when using Google Analytics. This is true in terms of both setup and usage. You remain focused on your core business - play to your strengths. Let the Google Consultants play to their's in order to maximise your returns.

Consider the best practice Google Analytics implementation; you should not divert your focus away from your business, your site and your customer's experience in order to be a Google Analytics Expert. Let someone else develop the latest techniques for gathering and analysing Google Analytics data.

Similarly, you know your business better than the Google Consultant - you tell them what your primary goals are so that they can develop your business KPIs with you and then advise how to track them using Google Analytics.

Google Conultants are the right people to advise on the best custom reporting and segmentation techniques. Use them as guides in the vast arena of Google Analytics Reporting capabilities. Less really can be more when considering KPI reporting. The less time you spend searching for the answers to your key questions, the more time you have to reflect and act on those answers - think about the aggregation of marginal gains and how you might approach them one your own and with a Google Consultant.

Thursday 26 March 2009

Google Analytics Services - Calibration Techniques

Advanced Google Analytics Content Follows

We have been working with a number of clients who have quite complex goals and conversion funnels....and no staging/test environments. These clients are quite challenging when it comes to refining and testing their goals and filters. As is best practice we always create specific profiles for testing filters and goals. What
we have also done and what I'd like to share today, is our technique for goal and filter calibration.

Calibration Requirements and Challenges

Calibrating a goal or filter in a live environment whilst not impacting a client's GA data set is tricky - more so in high traffic environments. Knowing that a goal or filter works accurately is essential though. We have developed a simple filter based on the IP address exclusion filter most people use already to facilitate calibration. The 'Exclude all traffic from an IP address' filter is provided by default. What we want to do though, is to include data for traffic only from a specific IP address so that we can hit one page, follow one journey through the site or hit the site using a particular user agent and be certain only our traffic hits our profile. This way we know exactly what traffic the goals and filters based on those criteria are going to receive and we know what results to expect - easy calibration.

Setup a new profile to test this

Say we want to test a newsletter signup goal for a new client. First of all we create a new profile for the site in question called something like 'Signup Goal Calibration'.

Setup the filter

Having created the profile, the only traffic I want to appear in that profile is from my PC - let's say by going to or similar that my address is (randomly chosen as an example). I create a new filter called 'CALIBRATION - CAUTION'. The caution note should advise careful use
of this's potentially quite destructive.

Now, the calibration filter is a custom filter that includes traffic based on 'Visitor IP Address' and the filter pattern would be something like '83\.215\.34\.12'. Of course, a range could be used here but the tighter the range the better when calibrating exercise. So, the filter is applied to the profile and now only I can hit the site and have my traffic data appear in the calibration profile. I can hit the site once, leave - come back after x hours and expect to see 2 visits, 2 page views etc. etc. I would compare the traffic in my calibration profile to other profiles to be 100% certain that the traffic is only me. Perhaps even fabricate a set of UTM tags to fake a spurious traffic source that only I would come from. Basically be certain that your calibration filter is water tight. Now I can follow the newsletter signup user journey and wait for my goal results to appear. Hurrah, the goal works. Now I can try other goals and filters and test them scientifically.

Rinse and Repeat as they say...

Additional Techniques

Depending on your preferences and need for speed, you may also want to use setVar to set the user defined parameter to a unique value for you and segment the traffic based on that value. This neat alternative was pointed out to me by Robbin from Lunametrics - thanks!

Doug Hall
CTO Moneyspyder (Google Analytics Authorised Consultant)
Google Analytics Consultant

Tuesday 3 March 2009

Babyetc revamped got a face lift this morning.

  • Based on data gathered through Google Analytics and our own tracking we have redsigned the presentation of the navigation and Information Architecture.

  • The product page has been redesigned as part of a Google Webbsite Optimiser Split Test.

  • The basket has been enhanced to ease navigation.

  • The promotion engine has had some polish to enable better discounts on delivery methods

Of course there are some (major) behind the scenes updates to the backend regarding order processing and fulfillment. If you want to know more, give us a call!

Tuesday 24 February 2009

Moneyspyder has new offices

Last Friday we moved to swanky new offices!

The front:

We have more space and much nicer surroundings to reflect how we are growing:

As you walk in:

The view of the business:

The all important reverse angle:

We have yet to fit out the 'front office' so no pics till then but it will a comfortable 'break out' room. We'll have wireless support for friends and clients of Moneyspyder who would like to visit and need somewhere to do business in London.

The conference room is a good size and with kitchen and bath/shower room facilities we're wondering if we should get into the hotel business!

Wednesday 11 February 2009

Moneyspyder joins GAAC Programme

This week Moneyspyder became a Google Analytics Authorised Consultant. We have always subscribed to the fact that if you can't measure something, you can't improve it - especially in the context of online retail. Using Google Analytics to gather data from our clients' online retail sites has always been a key offering from Moneyspyder and is fundamental to our commitment to grow our clients' businesses.

Google have recognised our track record of providing the highest quality Google Analytics implementations coupled with industry leading insight and analysis techniques.

Moneyspyder is delighted to work in partnership with Google on Google Analytics projects. Together, we will raise awareness of the value that Google Analytics brings to online retailers. We will continue to grow our clients' online
businesses demonstrating the power of making business decisions based on web analytics data and analysis.

Thursday 5 February 2009

Making AdWords Cost Less And Earn More

Last week two clients came to us without anyone running their Pay Per Click (PPC) Campaigns. Their biggest problem wasn’t that they weren’t selling much. It was that without someone to look after their campaigns they were losing a lot of money. Our first job then was to put a bandage on the leaking Ad Groups.

If you are in the same boat then the good news is that you are only a couple of simple steps away from effective damage control that will show instant results.

First it is important to get a handle on the data. In the Reports section of your AdWords page you can create a report tailored to fit your needs. It is a simple way to look at the details of all your Ad Groups in one place.

Now, let’s say you are happy to spend 40% of the cost of your product on acquiring the customer. With this in mind it is a simple job to go through your campaign and switch off all the Ad Groups that exceed your margins. This weeding process ensures that only the profitable Ad Groups are left on.

This is all we did for our clients. So what were the results?

These are the results for one of our clients taken from the account snapshot. This first graph shows the Cost Per Click (CPC). We can see that from the 19th January when we turned off the least effective campaigns there was a marked reduction in CPC. And what’s more, when we got rid of all the campaigns with high Click Through Rates (CTR) and low conversion rates we saw the Conversion Rate leap up.

This was about more than reducing the scale of the campaign. This graph shows that the conversions have not been harmed by the dramatic reduction in number of active Ad Groups and reduction in spending.


By keeping track of your margins and keeping within them you can easily assess whether your Ad Campaign is worth it. Turn off Ad Groups that aren’t doing you any favours and whatever your budget you should see an immediate increase in efficiency.

You might have turned off some Ad Groups that bring you lots of business but at a high cost. The next step is to go through these and tweak them to make them more effective. A good example of this is in refining ad copy.

Some groups will have a high CTR and a low conversion rate which makes them a drain on your AdWords budget. In many cases this is because the copy does not match the landing page. People like what they see in the advert but not on the page. A common problem is that the price is too high when they get to the product page. A simple fix is to put the price in the copy. The result will be that conversion levels will stay the same while the CTR will drop off as people unwilling to pay your prices are put off.

Thursday 29 January 2009

Moneyspyder continues aggressive growth

This year has been incredibly busy so far. We are continuing are great relationships with existing clients by further growing their online businesses, launching new sites (3 so far this year -, and and growing our team:

Seyd Razavi has joined the development team to further increase our strength an depth in Ruby on Rails. Already a strong Rails ninja, Seyed is working on some really exciting additions to our product offering. These projects are a heady mixture of commercial and open source. We will be publishing more OSS this year.

As you can see on the left hand side we have a new Partnership with Google - more on this soon!

Marc Winn has joined Moneyspyder as a stakeholder. Already running a great online business ( with Moneyspyder was never enough for Marc. Marc joins the already strong Moneyspyder team bringing excellent insight and experience from over a decade in the online retail and catalogue industry.

Wednesday 28 January 2009

A quick intro into site search analytics

We really strongly encourage clients who have on site search to plugin Google Analytics site search tracking. The value that is yielded is huge. We've seen how crucial site search is to some clients in terms of the percentage of total revenue generated throuh site search. We've seen how seasonal product demand escalates at certain times of the year. We've seen myriad keywords that customers think of before clients do - great terms to bid on in paid search.

Take a look at this quick video to see some more great examples:

Having trouble hooking up your site search to Google Analytics? Give us a call.

Friday 9 January 2009

9 steps to becoming an Google Analytics God (not our definition but no far off)

Hmmm, it seems that according to Avinash Kaushik's latest blog post we are already Google Analytics Gods!

I think there is more that qualifies true god-like status though:

- Get the basics right first of all
- that means profiles and filters
- that means clean data in GA: precision is essential
- that means : understand what you need to know about your site performance before going deep into GA
- Regularly refine and refactor your KPIs
- Keep focused on what you need to know rather than what is 'cool'
- TEST TEST TEST! And log the test results in GA

Okay, so we do those things too...

Monday 5 January 2009

Finish a great year, start an awesome year!

I've just finished running through our uptime stats from last year and I'm really pleased to see over 99.9% uptime across all our clients - 99.92% to be exact.

There was some unplanned downtime in amongst the planned downtime. This was due to infrastructure issues that thankfully were resolved quickly. I can say with a high degree of certainty that EngineYard did not feature in this unplanned downtime.

Success, of course, is never final. How can we get closer to or achieve 100%? We will continue to use EngineYard and make sure any clients who are not yet EY users, become EY users.

We continue to refine our processes and procedures. The product matures as do all the technologies we use (Ruby on Rails, Sphinx, etc.). We make no room for compromise when it comes to the safety and reliability of our client's online businesses. Really it's quite simple: we strive not to be s**t!