<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Search Engine Land &#187; Will Critchlow</title>
	<atom:link href="http://searchengineland.com/author/willcritchlow/feed" rel="self" type="application/rss+xml" />
	<link>http://searchengineland.com</link>
	<description>Search Engine Land: News On Search Engines, Search Engine Optimization (SEO) &#38; Search Engine Marketing (SEM)</description>
	<lastBuildDate>Fri, 17 May 2013 21:49:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Customized Google Analytics: Migrating From setVar To setCustomVar</title>
		<link>http://searchengineland.com/customized-google-analytics-migrating-from-setvar-to-setcustomvar-36280</link>
		<comments>http://searchengineland.com/customized-google-analytics-migrating-from-setvar-to-setcustomvar-36280#comments</comments>
		<pubDate>Wed, 17 Feb 2010 12:00:44 +0000</pubDate>
		<dc:creator>Will Critchlow</dc:creator>
				<category><![CDATA[Channel: Analytics]]></category>
		<category><![CDATA[Search & Conversion]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[Google: Analytics]]></category>
		<category><![CDATA[setcustomvar]]></category>
		<category><![CDATA[setvar]]></category>

		<guid isPermaLink="false">http://searchengineland.com/?p=36280</guid>
		<description><![CDATA[Many tactics for improving conversion rates rely on accurate data about what is currently happening with visitors to your site. As a result, customizing analytics tracking is a core part of any optimizer&#8217;s job. At the end of last year, Google announced a bunch of new features including multiple custom variables accessed via the _setCustomVar [...]]]></description>
				<content:encoded><![CDATA[<p>Many tactics for improving conversion rates rely on accurate data about <i>what is currently happening</i> with visitors to your site. As a result, customizing analytics tracking is a core part of any optimizer&#8217;s job. At the end of last year, Google <a href="http://analytics.blogspot.com/2009/10/google-analytics-now-more-powerful.html">announced a bunch of new features</a> including multiple custom variables accessed via the <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html#_gat.GA_Tracker_._setCustomVar">_setCustomVar</a> function. This replaces the (now deprecated) <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html#_gat.GA_Tracker_._setVar">_setVar</a>.</p>
<p>Custom variables are useful for all kinds of segmentation tasks as well as for adding information to your Google Analytics profile not normally captured by the tracking code. If you have customized your analytics install, there is a fair chance that you are using _setVar. It would be tempting, from reading the announcement to think that _setCustomVar is simply an improvement to _setVar that allows you to set the scope and manage more variables.</p>
<p>It is important, however, to realize that there is a crucial limitation to _setCustomVar that was not there for _setVar:</p>
<p><code>_setCustomVar(index, name, value, opt_scope)</code></p>
<p>From Google&#8217;s <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html">documentation on setCustomVar</a>:</p>
<blockquote>&#8220;There is a 64-byte character limit for the name and value combined&#8230;&#8221;</blockquote>
<p>This throws up a number of a challenges for migrating from _setVar to _setCustomVar. There is the obvious one of not being able to store as much data which is annoying, but subject to persuading the Google team to reverse a design decision there&#8217;s nothing you can do about it (what&#8217;s the problem guys? Not enough server space to store a few more bytes in that string?). What&#8217;s more tiresome is that it&#8217;s non-trivial to tell how long your string is because <i>Google URL encodes the string on the way into the system</i>, changing its length! (Note that this is not in the documentation&#8230;).</p>
<p>Don&#8217;t panic, though! I have a work-around that will hopefully save you from some of the <a href="http://twitter.com/willcritchlow/status/9138454799">heartache I have been experiencing</a> over the last few days.</p>
<p>The best way I have found to solve the problem is to:</p>
<ul>
<li>Give your variable names that are as short as possible&mdash;preferably only one character (comment the code to remember what you meant by variable &#8220;p&#8221; later!)</li>
<li>Take the string you want to insert into a custom variable and encode it (using the JavaScript function <code>encodeURIComponent</code>)</li>
<li>Truncate the encoded string to 64 characters minus the length of your variable name</li>
<li>Decode the string (using the JavaScript function <code>decodeURIComponent</code>)</li>
<li>Pass this string to Google Analytics, where it will be URL encoded again on the way in.</li>
</ul>
<p>Or, you could simply use my function <code>distilledTruncate(myString)</code> assuming you are using 1-character variable names after including this JavaScript file above your analytics customization code:</p>
<p><code>&lt;script type="text/javascript"  src=<a href="http://attributiontrackingga.googlecode.com/svn/trunk/distilled.FirstTouch.js">"http://attributiontrackingga.googlecode.com/svn/trunk/distilled.FirstTouch.js"</a>&gt;&lt;/script&gt;</code></p>
<p>Note that this JavaScript file also gives you a couple of other functions to help set up <a href="http://www.distilled.co.uk/blog/seo/first-touch-tracking-in-google-analytics">first touch tracking in Google Analytics</a>&mdash;something I have written about more on our own site. I am undoubtedly going to improve this code, but if you would like to avoid the possibility of me including something malicious in there, you can link to a static version:</p>
<p><code>&lt;script type="text/javascript"  src=<a href="http://attributiontrackingga.googlecode.com/svn-history/r3/trunk/distilled.FirstTouch.js">"http://attributiontrackingga.googlecode.com/svn-history/r3/trunk/distilled.FirstTouch.js"</a>&gt;&lt;/script&gt;</code></p>
<p>It is important that you perform this kind of truncation to avoid passing a string that ends up longer than the limit as _setCustomVar itself <i>will not truncate the input</i> for you&mdash;it will simply fail to record a value and return false. It is very likely that this will simply result in missing data in your analytics profile. This kind of relatively silent failure is quite dangerous on an upgrade path like this in my opinion.</p>
<p>If you have any suggestions for improvements to my JavaScript, I have released it under a GPL license and you can <a href="http://code.google.com/p/attributiontrackingga/issues/list">report issues here</a>. Feel free to let me know any &#8220;gotchas&#8221; you have found in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://searchengineland.com/customized-google-analytics-migrating-from-setvar-to-setcustomvar-36280/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Segment Google Website Optimizer Tests</title>
		<link>http://searchengineland.com/how-to-segment-google-website-optimizer-tests-33341</link>
		<comments>http://searchengineland.com/how-to-segment-google-website-optimizer-tests-33341#comments</comments>
		<pubDate>Wed, 20 Jan 2010 11:00:57 +0000</pubDate>
		<dc:creator>Will Critchlow</dc:creator>
				<category><![CDATA[Channel: Analytics]]></category>
		<category><![CDATA[Google: Analytics]]></category>
		<category><![CDATA[Google: Website Optimizer]]></category>
		<category><![CDATA[Search & Conversion]]></category>

		<guid isPermaLink="false">http://searchengineland.com/?p=33341</guid>
		<description><![CDATA[It can be important to segement your conversion rate tests to see how they perform for different kinds of users of your site. I'm going to show you a few ways of gathering GWO data in Google Analytics in order to bring the full power of the GA platform to your GWO testing.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.google.com/websiteoptimizer">Google Website Optimizer</a> (GWO) is a great tool for getting started with conversion rate testing. We use it extensively and love the way that it abstracts a lot of the really complicated stuff and avoids the need to know and understand some pretty tricky statistics. One downside of the simple platform is that it can make it hard to do some slightly difficult (but very desirable) things.</p>
<p>The example I want to discuss today is segmenting your tests to see how they perform for different kinds of users of your site. I&#8217;m going to show you a few ways of gathering GWO data in Google Analytics (GA) to bring the full power of the GA platform to your GWO testing.</p>
<p>A classic example is testing the impact of changes to the call-to-action for new vs. returning users. These two segments of users often have very different requirements and we can see why they might react differently to different enticements. For someone who knows your brand and is familiar with your offer, a discount could be supremely effective while a new visitor might respond better to long copy explaining the benefits (this is pure speculation and is designed only to serve as an example). For sites that get high numbers of returning visits (e.g. eBay), returning visitors are a self-selected set of people who understand how to use the control and/or have struggled through the learning curve. They may be resistant to change and prefer the control despite there being room for improvement for new visitors who haven&#8217;t gone through that learning curve.</p>
<p>Other useful segmentations during conversion rate tests include:</p>
<ul>
<li>Traffic source (e.g. organic search vs. paid search vs. referral traffic)</li>
<li>Country/location</li>
<li>Whether a user has visited a specific page on the site or in the conversion funnel</li>
<li>And a whole load of other things</li>
</ul>
<p>There are three basic steps to getting the data you need:</p>
<ol>
<li>Ensure that you are able to track GWO variables in GA</li>
<li>Set up appropriate filters and avoid contaminating your existing profiles and data</li>
<li>Analyse the data</li>
</ol>
<p><strong>#1 Track GWO Variables</strong></p>
<p>Google Analytics has a (relatively little known) function called <i>utmx</i> to return basic information about a GWO test to analytics. By tracking pageviews that include information in the URL about the test and variant being run, you can set up a profile within GA that has an understanding of conversion rate tests. There is more information on how to do that in this <a href="http://code.google.com/p/wso-hacks/wiki/TrackingExperimentsInGoogleAnalyticsUsingAdvancedSegmentation">quite technical guide</a>. It may also be useful to read this alternative approach from ROI Revolution that uses a <a href="http://www.roirevolution.com/blog/2008/05/using-website-optimizer-with-google-analytics-new.html">custom ga.js file</a>.</p>
<p>Tracking a pageview such as <tt>/my/page.html?gwo_exp=1234567890&amp;gwo_var=0</tt> gives all the information needed to create a profile that stores the variant of the test in a custom variable.</p>
<p><strong>#2 Avoid contaminating your main profile</strong></p>
<p>I suggest implementing the tracking of GWO variables in a new profile. In your core profile, you will probably want to strip out this information so that you can see all visitors of a single page concept together (i.e. not splitting out by which variant they saw).</p>
<p>In this example, you would want a filter such as (from the <a href="http://code.google.com/p/wso-hacks/wiki/TrackingExperimentsInGoogleAnalyticsUsingAdvancedSegmentation">guide referenced above</a>):</p>
<ul>
<li><a name="2._Add_a_filter_to_your_base_profile(s)_to_remove_GWO_tracking.">In &#8220;Field A -&gt; Extract A&#8221;, select Request URI and <tt>(^.*)(.gwo_exp.*)</tt> </a></li>
<li><a name="2._Add_a_filter_to_your_base_profile(s)_to_remove_GWO_tracking.">In &#8220;Output To -&gt; Constructor&#8221;, select Request URI and <tt>$A1</tt></a></li>
</ul>
<p><strong>#3 Analyse the output</strong></p>
<p>One of the nicest things about GWO is its ability to abstract away the maths behind determining winners. While that functionality is obviously still available for the aggregate test (on the whole set of users) there is an additional step required to work out whether you are seeing statistically-significant results on segments of your users.</p>
<p>Although learning the statistics behind these calculations is fun(warning: your experience may differ), we are primarily looking to get to the answer here. For this I recommend using an <a href="http://abtester.com/calculator/">online sample size calculator</a>. In order to analyse, for example, whether your test has reached statistical significance on new users only, you would segment the data to show only new users and find the number of users in this segment who had seen each variant and the number of each of those who had converted (for whatever conversion goal you are seeking).</p>
<p>With this data in hand, you can fill in the fields in your chosen calculator and, see the relative conversion rates. For most tests, you would seek a 95% confidence that a variant was better than the control. Consider the following data:</p>
<table border="0">
<tbody>
<tr>
<th>Type</th>
<th>Users</th>
<th>Conversions</th>
</tr>
<tr>
<td>Control</td>
<td>1000</td>
<td>30</td>
</tr>
<tr>
<td>Variant A</td>
<td>1055</td>
<td>32</td>
</tr>
<tr>
<td>Variant B</td>
<td>903</td>
<td>43</td>
</tr>
<tr>
<td>Variant C</td>
<td>1100</td>
<td>25</td>
</tr>
</tbody>
</table>
<p>These results suggest that you would be happy declaring variant B better than the control (confidence &gt; 97%) but even though variant A has a higher conversion rate than the control at present, you would not be confident declaring it better yet.</p>
<p>What I&#8217;d like to have shown is real-world examples of the ways that tests can show misleading things when you look at the average data when digging into the segmentation reveals insights about different classes of user. Unfortunately, I don&#8217;t have any public examples. If anyone has real-world examples they can share in the comments, I&#8217;m sure the SEL community would love to discuss them.</p>
]]></content:encoded>
			<wfw:commentRss>http://searchengineland.com/how-to-segment-google-website-optimizer-tests-33341/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
