Google Website Optimiser Blog Posts

Successful Website Optimisation Part 2

Monday, April 18th, 2011

Google Website Optimiser

Welcome to Part Two of Successful Website Optimisation. To continue from last month’s blog, which you can read here, here are some more tools to choose the right pages and tests to run:

ClickTale

It is also important to understand how visitors use your chosen test page, so you can be more confident that you are testing changes to important elements.

We use ClickTale for in-page analytics before and during testing.  It tracks mouse movement and clicks, and reports this information for a large sample of visitors.  This gives very valuable information about the important elements of a page, and the unimportant.

You can see how far the average visitor scrolls down the page, which is very useful to know if there is important information below the fold.

The biggest benefit of ClickTale is simply its ability to add some meaning to the results that you see.  Pages that fail can be analysed and you can learn so much about why this happened, which is invaluable. (more…)

Successful Website Optimisation Part 1

Friday, March 18th, 2011

Google Website Optimiser

Website Optimisation is a fantastic process of increasing the value of visitors to your website.  For ecommerce sites, this essentially means increasing the likelihood of making a sale and/or the value of each sale.  For other websites, the goal may be different – increasing the likelihood a visitor will watch your video.

This is a very real, robust process regardless of how well your website already performs.  Amazon is the site it is today through this very process, which has seen it evolve slowly over years from a very basic ecommerce bookstore to a mega online retailer.  Google is always testing changes to all their products including the search page.  This alone should be enough to convince you it is worth investing in, but just in case, this document is an in-depth look at our process.

Before you start, you should answer these two questions:

  • What goal do I want my visitor to complete?
  • Which pages are involved in the process of a visitor completing this goal?

With the answers in mind, you should be able to name a few pages that are worth running tests on.  However, we don’t yet know what changes to test, or whether the test will be viable. (more…)

Why should I invest in an Omniture Test?

Wednesday, December 15th, 2010

Google Website Optimiser

A year ago, I was speaking at a Google event with three other website optimisation professionals, and we were asked to name our favourite platform for testing.  Three of us opted for Google Website Optimiser (not just because it seemed polite).  The rationale seemed to simply be:

Why pay for a website optimisation tool when you can use Google Website Optimizer for free? (more…)

GAAC Summit 2009

Tuesday, October 27th, 2009

Google, Google Analytics, Google Website Optimiser

logo

Two weeks ago, Google hosted their annual conference for Google Analytics Authorised Consultants (GAAC’s), to which Epiphany sent along 2 employees. This conference has been taking place for around 5 years now, and is typically a chance for leading authorities of Analytics to share ideas and practices. As well as dining all week at Google’s expense – attendees are
given exclusive previews of the latest developments to Google Analytics. (more…)

A/B Split Testing Across Multiple Domains and Sub-Domains in Google Website Optimizer

Friday, September 11th, 2009

Google, Google Website Optimiser

I recently had to implement A/B split testing across multiple domains and sub-domains for a client and upon researching a working set-up I found that there is very little out there about this. Google’s Website Optimiser help section is frankly appalling for anyone who wants to do something slightly advanced and any information that is out there is very contradictory.

So here is the WORKING example of how to implement it.

Firstly, its key to note you cannot A/B split test across multiple domains, you have to use a multivariate test.

In this example we are testing the homepage (www.mysite.com) and we have 2 conversion pages; one on secure.mysite.com and another on secure.example.com. (If you only have one conversion page you can obviously only show the code relating to your situation).

Let’s start with the homepage:

At the very top of the page code u need to add the control script, which will look something like with:

<script type="text/javascript">// <![CDATA[
 _udn = ".mysite.com"; _uhash = "0"; _ulink = "1"; function utmx_section(){}function utmx(){} (function(){var k='1234567890',d=document,l=d.location,c=d.cookie;function f(n){ if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j<0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+ 'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com' +'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime=' +new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+ '" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
// ]]></script>

To ensure our cookie can be passed and tracked across our multiple domains / sub-domains we need to add some additions to the control script (these are shown in bold above).

Immediately after the control script you need to add:

<!-- utmx section name="Test URL" -->
<script type="text/javascript">// <![CDATA[
 var b = utmx('variation_content', 'Test URL'); function filter(v) { var u = v[0].contents; if (b && u.substr(0,7) == 'http://' && b.substr(0, 7) != 'http://') { u = u.substr(7); } return u; } utmx('url', 'Test URL', 0, filter);
// ]]></script>

This will be used to load in our test page.

At the bottom of the homepage we then include the tracking script, but again we need to make some amendments to allow the cookie to be tracked.

<script type="text/javascript">// <![CDATA[
if(typeof(_gat)!='object')document.write('<sc'+'ript src="http'+ (document.location.protocol=='https:'?'s://ssl':'://www')+ '.google-analytics.com/ga.js"></sc'+'ript>')
// ]]></script>
<script type="text/javascript">// <![CDATA[
 try { var pageTracker=_gat._getTracker("UA-1234567-1"); pageTracker._setDomainName(".mysite.com"); pageTracker._setAllowHash(false); pageTracker._setAllowLinker(true); pageTracker._trackPageview("/1234567890/test"); }catch(err){}
// ]]></script>

On our test page (page B), we need to add the same above tracking code (not control or page section script, just the above piece of code). This records which page (A or B) has been seen by a user and can therefore record a conversion against it.

Because we are using multiple domains we MUST add the _link function to our code. This is placed on all links between www.mysite.com and the domain with the conversion page (in this example secure.example.com) – you don’t need this code for sub-domains.

On www.mysite.com any links to secure.example.com would look similar to:

<a onclick="pageTracker._link(this.href);" href="https://secure.example.com/purchase.php">Click Here</a>

Without this conversions on secure.example.com will not record.
We also need to ensure that these cookies are picked up on secure.example.com. So you must ensure your Google Analytics Tracking Script (GATC) is present on secure.example.com. Again the additions are in bold, one thing to note is the changing of the parameters passed to setDomainName this needs to be mirrored in your own implementation.

<script type="text/javascript">// <![CDATA[
if(typeof(_gat)!='object')document.write('<sc'+'ript src="http'+ (document.location.protocol=='https:'?'s://ssl':'://www')+ '.google-analytics.com/ga.js"></sc'+'ript>')
// ]]></script>
<script type="text/javascript">// <![CDATA[
 try { var pageTracker=_gat._getTracker("UA-1234567-1"); pageTracker._setDomainName(".example.com"); pageTracker._setAllowHash(false); pageTracker._setAllowLinker(true); pageTracker._trackPageview(); }catch(err){}
// ]]></script>

Moving on to the conversion pages:

Depending on how many you have and which site they reside on not all the following will apply to you.

The conversion page on secure.example.com contains the following code:

<script type="text/javascript">// <![CDATA[
if(typeof(_gat)!='object')document.write('<sc'+'ript src="http'+ (document.location.protocol=='https:'?'s://ssl':'://www')+ '.google-analytics.com/ga.js"></sc'+'ript>')
// ]]></script>
<script type="text/javascript">// <![CDATA[
 try { var pageTracker=_gat._getTracker("UA-1234567-1"); pageTracker._setDomainName(".example.com"); pageTracker._setAllowHash(false); pageTracker._setAllowLinker(true); pageTracker._trackPageview("/1234567890/goal"); }catch(err){}
// ]]></script>

The additions are in bold and the setDomainName call is again domain specific.

The conversion page on secure.mysite.com contains the following code:

<script type="text/javascript">// <![CDATA[
if(typeof(_gat)!='object')document.write('<sc'+'ript src="http'+ (document.location.protocol=='https:'?'s://ssl':'://www')+ '.google-analytics.com/ga.js"></sc'+'ript>')
// ]]></script>
<script type="text/javascript">// <![CDATA[
 try { var pageTracker=_gat._getTracker("UA-1234567-1"); pageTracker._setDomainName(".mysite.com"); pageTracker._setAllowHash(false); pageTracker._setAllowLinker(true); pageTracker._trackPageview("/1234567890/goal"); }catch(err){}
// ]]>
</script>

The difference in the 2 codes being the setDomainName call.

Now it’s time to do the online / offline validation, once thats done you need to create your variation.

Click to add a new one, enter a name (Test URL) for example. In the text box, enter the URL for page B (your test page) – single line, no whitespace. Save and preview.

You’re ready to launch

Should anyone have any questions or need some help with their set-ups I’d be more than happy to help – you can contact me via the comments.