Optimisation Beaconhttp://www.optimisationbeacon.com
Tips and tools for web analytics and conversion rate optimisation.Sat, 12 Jul 2014 00:22:08 +0000en-UShourly1http://wordpress.org/?v=3.9.137.49144.58http://creativecommons.org/licenses/by-sa/2.0/OptimisationBeaconhttps://feedburner.google.comA Guide to Measuring Split Tests in Google Analytics & Other Toolshttp://feedproxy.google.com/~r/OptimisationBeacon/~3/HxOintthLeQ/
http://www.optimisationbeacon.com/testing/the-guide-to-measuring-split-testing-results-in-google-analytics-other-tools/#commentsMon, 23 Sep 2013 12:47:46 +0000http://www.optimisationbeacon.com/?p=1779Dear readers – Long time, no see. For those of you who don’t know, I have recently become a freelance analytics and optimisation consultant. Fortunately I’ve been keeping busy :). Don’t you love working in digital right now? Today’s guide covers an activity I perform almost daily: Measuring A/B and MVT split tests within Analytics […]

Dear readers – Long time, no see. For those of you who don’t know, I have recently become a freelance analytics and optimisation consultant. Fortunately I’ve been keeping busy :). Don’t you love working in digital right now?

Today’s guide covers an activity I perform almost daily: Measuring A/B and MVT split tests within Analytics (and other tools). Since I’m still not a fan of Google Analytics’ Content Experiments, this guide is focused squarely on integrations with awesome tools like Optimizely, Visual Website Optimizer, Cohorts.js and Adobe’s Test & Target.

It does. But there are so many advantages to tracking tests in Google Analytics (or a second platform) that you mustn’t ignore it.

Here’s why…

Reason 1: All your reports, filters and tracking are pre-configured in Analytics

When you create tests in a particular split testing tool, you’ll need to configure it to exclude internal traffic, track specific goals and maybe even write code to track certain activities on the site (e.g. updating an on click event on a goal button). Hell – you might even have cross-domain tracking configured in GA and not in your split testing tool. I’m not even getting into all the really cool stuff you can analyse with GA either, such as linking ROI/CPA by Variations or tracking phone calls.

Managing this many IP filters in most testing tools is simply a nightmare.

With your Analytics, there’s no need to set these things up – it’s likely you maintain your Analytics setup much more closely than you maintain your split testing tools.

Reason 2: Get redundancy & retroactive reporting

Can you think of a time when, in the past, you were running an experiment and someone decides to change one of the goal URLs mid-test.

How I secretly feel when tracking breaks.

Or perhaps you wanted to know how the test affected. Maybe there was an issue with your Analytics setup (e.g. report sampling) and you needed to fall back onto your split testing tool.

Wither way, if you had tracked your experiment in Google Analytics, your data would be redundant and any reports you want to see- post testing can be set up retroactively.

Reason 3: Keep your split testing tool (or agency) honest

Sure, Google Analytics isn’t perfect but nor are the tracking capabilities of the various split testing platforms out there. I’ve had all sorts of problems relying on reports from split testing tools. And rather than wasting your time calibrating your tool with A/A testing, Google Analytics will keep your testing tool honest. I promise.

In fact if I were to invest significant amounts of money performing conversion rate optimisation with an agency or contractor, I would expect nothing less than to track the results in a second tool.

Unfortunately the methods some of these tools use to link with GA are a bit sloppy. For instance:

Visual Website Optimizer’s method set’s the test in a visitor level custom variable that sticks around after the experiment has finished.

Optimizely sets it for the session (and won’t tag them again in the test if they return to the site in another visit and convert) – one of my main gripes about Optimizely.

Custom integrations

If you’re unlucky enough that your split testing platform doesn’t link with GA or you’re unsatisfied with the implementation of their integration, just roll your own. Below are a few common analytics integrations I use – Just replace the following variables to get it working:

{{slot}} – this is the variable number in Google Analytics. 1-5 in GA standard, 1-20 in Universal Analytics.

{{test-name}} – this is the name of the test or the test ID in your split testing platform. E.g. Wave 3

{{variation}} – this is the name of the variation in your split testing platform. E.g. Variation 1

Standard Google Analytics (Asynchronous)

Simply run the following code before the call to _trackPageview or _trackEvent:

When custom variables are released in Snowplow, this will be a little bit more economical than sending and additional hit for visitors in a test.

Persist the test across sessions… but don’t set a visitor-level variable

In all cases you should assign that visitor to the test for the duration of the experiment – no more, no less. This is important because, believe it or not, visitors don’t always convert on the first visit (you don’t need to be called Avinash Kaushik to know that).

As an example – What happens if you create a page that delivers an amazing experience but it only translates to additional conversions on subsequent visits to the site (e.g. you develop email or blog subscriptions)? If you don’t persist the test across visits, you won’t be able to say how awesome you are.

On the other hand, you don’t set a visitor level variable is because the data will persist for the lifetime of that visitor, making your reports jumbled and confusing (thanks goes to Yehoshua Coren of Analytics Ninja for that tip).

A note on Google Analytics’ limitations
As you saw above, Google Analytics is not quite perfect when it comes to tracking experiments (yet another reason I prefer Cohorts.js + Snowplow Analytics). Let me explain:

Visitor arrives on your site and purchases something in their first visit.

Visitor returns in a subsequent visit, is exposed to the test and buys nothing

The conversion in the previous visit will be attributed to the – even though the visitor simply wasn’t influenced by the split test in any way. Crazy!

This is also true of visitors converting before they’re exposed to the test – within the same visit!

Using GA’s sequence segmentation feature, you can reliably determine the causal influence of the metric on unique visitors.

This is only necessary when you’re faced with deep conversion paths or when you’re monitoring micro-conversions which can be triggered before a user is exposed to the test.

Analysing the test data from GA

Once you’re collecting split test data in your preferred analytics tool, you should start to see the data shortly.

For our purposes, we want to view unique visitors to the test and how many converted. This is because the statistical methods used for significance testing relies on binomial data. In cave man speak it means:

Visitor doesn’t convert = 0 conversions

Visitor converted 1 time = 1 unique conversion

Visitor converted 3 times = 1 unique conversion

It’s non-trivial to get the data we’d need to make inferences about session-level metrics. And since Google Analytics’ reports are largely session based (unless you have some crazy sessionisation), you’ll want to use this custom report:

Download and follow the prompts to add it to your respective version of GA

Just apply two segments to the data – “All visits” and “Visits with conversions” (note, you could try anything here). Take the values and pop them into your favourite statistical significance calculator.

Unfortunately, to my knowledge, there is no way to get around report sampling in your experiments, other than to buy GA Premium (worth it if you have US$150,000 laying around – hey, who doesn’t?). Not even walking through the data a day at a time in the API can save you. If you recall, we’re using unique visitors – they are unique visitors to the day you’re looking at: therefore, if you look at three individual days, you may see 3 unique visitors as opposed to 1 unique vistor when you look at the three days cumulatively.

For clients who are in danger of report sampling for their experiments, I spend much more time ensuring the settings in the split testing tool are accurate. I’ve even begun tracking experiments in Snowplow Analytics (a spectacular open source analytics platform).

]]>http://www.optimisationbeacon.com/testing/the-guide-to-measuring-split-testing-results-in-google-analytics-other-tools/feed/3http://www.optimisationbeacon.com/testing/the-guide-to-measuring-split-testing-results-in-google-analytics-other-tools/Web Browsers Most Susceptible to Browser Fingerprintinghttp://feedproxy.google.com/~r/OptimisationBeacon/~3/IFiUHMggfkI/
http://www.optimisationbeacon.com/analytics/refining-or-avoiding-unique-browser-fingerprinting/#commentsMon, 29 Apr 2013 09:00:42 +0000http://www.optimisationbeacon.com/?p=1439Many believe unique browser fingerprinting is a silver bullet to single-handedly and anonymously identify users. Sadly or luckily (depending upon your perspective), browser fingerprints are far from unique. But as I’ll explore in this post, there are better ways to use browser fingerprinting to make it more unique/useful and there are also ways to hide […]

]]>Many believe unique browser fingerprinting is a silver bullet to single-handedly and anonymously identify users. Sadly or luckily (depending upon your perspective), browser fingerprints are far from unique. But as I’ll explore in this post, there are better ways to use browser fingerprinting to make it more unique/useful and there are also ways to hide amongst common fingerprints or at least make it difficult to be tracked (as a user).

This post tests which browsers are most susceptible to unique browser fingerprints and configurations you can hide behind.

First, let’s re-visit what a browser fingerprint is

Panopticlick and a number of other sites have discovered that by taking all of the information about a user’s browser (such as the web browser itself, operating system, installed plugins, screen resolution, bits per pixel, system fonts and other elements about their configuration), it is possible to generate a unique ID for a vast majority of browsers accessing their site. The idea behind it is that it can uniquely identify a browser (without the use of cookies) throughout the internet – whether or not a user clears their cookies or even has them enabled.

Test your browser’s uniqueness on Panopticlick’s website.

Browser fingerprints as I captured them, contain the following information which is then stored as an MD5 hash in Google Analytics (alongside no other unique IDs, except country, city and ISP/service name):

I then store it in Google Analytics as a custom variable and then I mash it together with IP information available in Google Analytics (hostname, city and country). So, given the following fingerprints, I count all three as being unique:

Again, it’s possible this visitor IS travelling between access points and cities (particularly for mobile users) but let’s save that for another day. With the methodology out of the way, now you know to take the data with a healthy dosage of salt.

But it’s not all that unique or reliable…

Certain configurations are simply too common to be able to accurately pin down (e.g. iPhone). Secondly, so many factors can alter your browser fingerprint that it’s simply unfeasible to use alone as a method to reliably and uniquely identify users to your site. For instance, the following things can alter your browser fingerprint:

Updating your browser to the latest version

Installing new plugins

Using multiple browsers (sorry porn browsers, incognito/private mode is not a different browser)

Changing your screen resolution (or using a laptop to plug and play monitors all day)

Enabling and disabling cookies or other browser functionality

Disabling JavaScript

Switching timezones (including daylight savings)

Every time Chrome updates, your fingerprint will change

Just look at how often Google releases new versions of Chrome! Thanks to Andre Mafei for this excellent visualization of Chrome updates:

Each one of these blips indicates a new version – and with each new version comes a new fingerprint.

Browser uniqueness

Browser fingerprints for browsers are surprisingly unique for desktop based browsers. For mobile devices, particularly those on iOS (thanks to Apple’s iron grip), are not very unique when you look at the variety of browser fingerprints. Don’t get too giddy Apple users, as you will soon see this doesn’t matter much at all:

Look what happens wen you mash it together with IP information…
Boom! Unfortunately (or fortunately for that matter), mashing fingerprints together with geo IP and network information available in GA (network domain, city, country) paints a very different picture:

All browsers that were once considered relatively anonymous are now >99% uniquely identifiable.

Operating system uniqueness

No surprises here that you have virtual anonymity when using an iOS based device.

Now let’s add a dash of IP related information into the mix
Muahaha… Once more, the moment you pass in IP information, the playing field is leveled:

One application: Plausible solution for cookie-less tracking

One of the more prominent web analytics vendors, Adobe has introduced cookieless identification of unique browsers which it achieves through a combination of browser fingerprints and a user’s IP address. I’m not certain how they perform this, but I would imagine they use something similar. Even if it’s not 100% accurate across sessions, it should give marketers a clear picture 90% of the time. And this is OK – remember, no web analytics tool is ever going to be completely accurate.

I would also be surprised if Google and other big ad networks WERE NOT testing or using fingerprinting to track visitors throughout the web.

Future exploration of fingerprinting

There are a number of things which I would really like to explore further in the realm of browser fingerprinting, even though I have essentially sidelined it as a useless dimension.

Using data in GA to develop your own fingerprints
I haven’t tried, but it may be possible to use GA data to generate fingerprints. E.g. combine all the browser configuration information and count the unique instances.

Tracking it alongside Google Analytics visitor IDs
This would allow you to see if visitors are clearing cookies and what proportion of them do this. Alternatively it may provide insight into how unique fingerprints actually are.

Tracking IP address and Browser Fingerprint together
Even more granular than network domain in GA is the specific IP address. Unfortunately even though this is more granular, it’s susceptible to dynamic IPs which will add to the volatility of your fingerprints.

Adding Adobe Flash into the mix
As Panopticlick data shows, one of the most uniquely identifying bits of information – fonts installed – can be accessed through Adobe Flash. This will greatly improve the uniqueness of fingerprints.

Perhaps this was Adobe’s evil master plan for analytics domination.

How users can avoid being uniquely fingerprinted

Use a common browser configuration (e.g. get the most popular phone in your region and use the default browser)

Avoid using Adobe Flash (Flash allows access to reading system fonts installed – one of the most uniquely identifying sources of information)

Use a different IP address regularly (e.g. proxies)

Update your browser and other software regularly

Disable JavaScript (to avoid any probing scripts)

Fake your user agent (personally I like to browse sites with IE 5 on WIndows 3.1 just for shits and giggles)

How browser fingerprinting can be augmented

Never use it alone – always tie it back to a user’s cookie, IP address, customer ID or all of the above

Rather than taking a hash of the user agent and a host of other identifying features, collect all the pieces of identifying information individually and account for small updates here and there.

Anyway, I hope you found this analysis on browser fingerprinting useful. Obviously there’s a lot more to it than what I have covered above but it may help answer some questions explored on sites like Reddit, Github and Stack Overflow.

]]>http://www.optimisationbeacon.com/analytics/refining-or-avoiding-unique-browser-fingerprinting/feed/4http://www.optimisationbeacon.com/analytics/refining-or-avoiding-unique-browser-fingerprinting/Cohorts.js: Open Source JavaScript MVT Split Testing Frameworkhttp://feedproxy.google.com/~r/OptimisationBeacon/~3/FJWIkN8nC-Q/
http://www.optimisationbeacon.com/testing/using-cohorts-js-an-open-source-javascript-ab-mvt-library/#commentsMon, 11 Mar 2013 08:00:10 +0000http://www.optimisationbeacon.com/?p=1584Warning: This is a fairly technical post (not for the faint of “technical heart”). I was exploring creating my own split testing JavaScript the other week until I stumbled onto this amazing piece of work by James Yu, called Cohorts.js. With a couple of updates, I’m excited to start using this on my own sites […]

]]>Warning: This is a fairly technical post (not for the faint of “technical heart”).

I was exploring creating my own split testing JavaScript the other week until I stumbled onto this amazing piece of work by James Yu, called Cohorts.js. With a couple of updates, I’m excited to start using this on my own sites and clients’ sites with a low budget.

To sum it up, this post details how to implement a poor man’s Optimizely.

First, how do JavaScript split testing tools work?

Breaking it down, a split testing tool must handle a bunch of jobs:

Determine which visitors see which variation

Randomly assign a sample of visitors to view each treatment/variation

Have they been previously allocated?

Serve the correct variation to visitors across different pages and different visit sessions

Track the results in an analytical tool

If you’re like me, you especially want to measure the experiments in Google Analytics, SnowPlow Analytics or Site Catalyst.

When you think about the various split testing tools out there, such as Optimizely, Visual Website Optimizer, Webtrends Optimize, Adobe Test & Target and so on, they’re all JavaScript based. It’s just an easy and effective way of running split tests.

How Cohorts.js works at a high level

Essentially it allows you to configure A/B or multivariate split tests with a pure JavaScript framework. To get it up and running, you may need the help of a developer or someone with a bit of technical clout.

For best results you can serve this code from a speedy CDN like Amazon S3 and Cloudfront. Though, keep in mind this code is already very lean and once it’s minified and gzipped, it should come to a kilobyte or two in weight.

2. All you need to write is a few lines of JavaScript to set a test up:

…and it will tell you auto-magically, if you have a winner or not. Clearly, I need to keep running this experiment for a statistically significant result.

Pro tips to make the most of it

Serve the script from a CDN, like Amazon Cloudfront and S3 to ensure minimal page load time impact (not that you should be concerned given its tiny footprint)

Set the expires headers for cohorts.js to a small value, so that you can quickly pause the test

If you want to preview the script in a production environment simply set the sample variable in the test object to 0

Beware that you can only fit so much text in the custom variable, so keep your test and cohort names short yet meaningful

This tool is like a swiss-army knife when you’re using jQuery – I highly recommend learning even just a little bit of this

Make sure you’re not overwriting existing custom variable slots in GA – remember, there are just 5 slots

Serve all your experiments from the cohorts.js file, and use domain.location.pathname to determine which URLs you want to run your experiments on

The verdict

In summary, it’s a very clean and simple tool. What it lack in bells and whistles, it compensates for it in speed, control and price. Of course, it goes without saying that you need some development clout to make the most of this simple tool.

Kudos once more to James Yu for writing an excellent framework. I hope my post brings this tool to light and spurs on future development work. There’s tons of features that can be added that will make this tool exceptionally powerful.

Benefits of Cohorts.js over other tools

100% control over how the code works & any integrations

Leaner than various other split testing scripts

Able to be self-hosted, making it even speedier

Completely and utterly… Free

Cons of Cohorts.js (at this stage)

Need to perform your own analysis

Not built for marketers (though that may be easy to change)

Doesn’t offer the same rich feature-sets offered by paid tools

To do

I think a number of things would really help improve this tool and boost its adoption. Here’s a list of things which I think would really add value to this tool:

Easy to use test setup (similar to what Optimizely and Visual Website Optimizer Offer)

Page targeting script – i.e. simply use regex to determine which pages a test should initialize on

Any savvy developers out there should try contributing to James’ project. In the meantime, you can simply fork cohorts.js from me and I’d be more than happy to pull requests that help with the above goals. Be sure to reach out to me on Github.

]]>http://www.optimisationbeacon.com/testing/using-cohorts-js-an-open-source-javascript-ab-mvt-library/feed/1http://www.optimisationbeacon.com/testing/using-cohorts-js-an-open-source-javascript-ab-mvt-library/10 Sources of Direct Traffic & How To Track Direct Shareshttp://feedproxy.google.com/~r/OptimisationBeacon/~3/dc8_248mufg/
http://www.optimisationbeacon.com/analytics/where-direct-traffic-comes-from-how-to-track-it/#commentsMon, 04 Feb 2013 08:00:54 +0000http://www.optimisationbeacon.com/?p=1462Whenever people attempt to explain the meaning of direct visits, I always feel like it’s misleading or incomplete in some shape or form. You were probably told: “Oh, it’s those people who type in your domain name. Yeah that’s it.” Or: “Umm… they’re the people who bookmarked your website.” Sure they’re two possible sources of […]

]]>
Whenever people attempt to explain the meaning of direct visits, I always feel like it’s misleading or incomplete in some shape or form. You were probably told:

“Oh, it’s those people who type in your domain name. Yeah that’s it.”

Or:

“Umm… they’re the people who bookmarked your website.”

Sure they’re two possible sources of direct visits but as I’ll explore in this article, they aren’t always. This is kind of a shame because direct traffic usually has a strong intent which you’ll see in terms of behaviour and conversions. Unfortunately most people just don’t know the definition of a direct visit in GA.

The true definition of a direct visit is any visit that lands on your site without a referrer. A direct visits will not override an existing campaign (search, referral or others).

Therefore, Direct is not always Direct in GA or Site Catalyst

Even if someone visits your site directly, they’re not always going to count as a direct visit. Confused? You should be (it confused the bejesus out of me when I first encountered this). Take this situation for example:

Johnny visits your site through an AdWords campaign and returns a week later directly through a bookmark (aka. while the _utmz cookie still exists). In this case, both visits will be attributed to AdWords.

Anyway, here are a few different sources which you may not have considered. Is this list exhaustive, Rob? Nope… but it covers most bases.

1. Type-in Traffic

These are usually your existing customers, loyal readers or people that simply heard about you through some offline channel.

2. Links sent through instant messaging

Whether it’s SMS, Whats App, MSN Messenger, AIM, Yahoo Messenger, Skype, Kakao Talk or Google Talk – all of these instant messaging programs will not provide a referrer, and show up as direct. The exception to this is web-based chats which are not done over HTTPS or running through Java/Flash/Silverlight etc.

Whether your visitors are sharing links with their buddies or you send out an email without any URL tagging on it, visitors coming from secure web mail or desktop email clients (Outlook or Thunderbird) will also show as direct visits. Fortunately, quite a number of people don’t enable HTTPS for their web-email clients, so you may see GMail, Yahoo Mail and Hotmail showing up under your referrers section.

This traffic can show as direct – especially when untagged emails are sent

4. Opening a link in “Incognito Mode”, “In-Private” or similar

Potentially a big source for those… ahem… dubious websites, could be “Open link in (incognito|In Private) window” – of course visitors . If you were to open a link in a new tab or in a regular new window, however, the referrer will still be passed (at least under Google Chrome).

This is potentially a bigger issue for sites with dubious content within the site – think “18+ sections.”

Opening in a new window will provide a referrer, but not opening in incognito mode

5. Bookmarks

Typically if you’ve bookmarked a site, chances are you’ve been there before. This means that if your previous campaign is still available in your cookies, this won’t result in a direct visit. If it’s been 6 months since you last visited the site, you’ve cleared your cookies or you’ve imported your bookmarks from another browser, you will certainly show as a direct visit.

Opening bookmarks do not provide a referrer – and therefore can lead to direct traffic

6. Use of rel=”noreferrer” in the previous link

The HTML5 specification includes rel=”noreferrer” which basically means that anyone following a link with this attribute and value will land on the following URL without a referrer. Don’t expect this to be a huge source of direct traffic, however.

Coming in HTML5, rel=”noreferrer” will also be a source of direct visits (arguably very few though)

7. Visitors from HTTPS websites

Part of the HTTP specification recommends that browsers do not pass along a referrer to non-HTTPS sites. The wording of this is slightly vague, as it reads, “should not” rather than, “must not”. This is certainly an odd point as it sometimes does provide a referrer.

For instance, searching from SSL Google.com will result in a referrer on the URL you land on. So this isn’t a hard and fast rule, but it’s generally the case.

8. Links within mobile and desktop apps

Lastly, if you’re still scratching your head about a huge number of direct visits, could they be arriving through links within your mobile/desktop application?

EDIT: A note about iOS6 and other mobile operating systems, thanks to Alistair Lattimore in the comments section below. Many apps use the Safari browser and links will therefore pass a referrer to your site. Analytics distinguishes this traffic under the browser “Safari (in-app)”. This is also the case with other devices, however I’m unsure how in-app browsers show up in GA though.

9. Browser homepage set to your website

If you’ve got a large enough company that sets its browser homepages to default to your website, then this will surely influence your direct visits as well.

10. Hacks/extensions to hide referrers

A very small number of visitors will intentionally hide their referrers using extensions like this one for Chrome and others for Firefox.

Also, some browsers will not carry a referrer from some JavaScript initiated links.

A (very) subjective guess on the liklihood of direct sources

This is just my subjective view on how likely you are to receive visits from particular direct traffic sources.

As good as direct traffic is, if you’re not tagging all of your campaigns, it’s going to be polluted. At least now you can.

“…but Rooooob. I really want to track direct shares.”

You can! Well, kind of…

If you’re familiar with the concept of dark social (that is links shared through email, instant messaging and whatnot which would otherwise show up in your GA as direct), then you can kind of track this. In the case of The Atlantic’s article, dark social accounts for a large majority of social on the web.

Well, yes. And it can be surprisingly simple to do. Here are two ways:

Tracking direct shares of URLs using advanced segments
Realistically, you’re not going to type in a long link such as “http://www.optimisationbeacon.com/analytics/using-brower-fingerprinting-in-google-analytics/” directly into your browser. Therefore, you can assume that anyone landing on a page other than your homepage is coming through dark social. Here’s an advanced segment I cooked up earlier:

This works by adding URL tagging to the end of the link after the page has loaded. When a visitor copies the link, the URL tagging will go along with it, carrying “ctrl-c share”.

…and Bob’s your uncle – you’d probably be tracking direct shares of your URLs in GA. Beware, as I haven’t tried this yet. Let me know in the comments if you get around to trying this one out. I would love to get in touch with you.

]]>http://www.optimisationbeacon.com/analytics/where-direct-traffic-comes-from-how-to-track-it/feed/7http://www.optimisationbeacon.com/analytics/where-direct-traffic-comes-from-how-to-track-it/Track What Visitors Copy From Your Site in Google Analyticshttp://feedproxy.google.com/~r/OptimisationBeacon/~3/N24mE_caMiM/
http://www.optimisationbeacon.com/analytics/use-google-analytics-to-track-what-content-your-visitors-copy/#commentsMon, 28 Jan 2013 08:30:20 +0000http://www.optimisationbeacon.com/?p=1440As you might be able to tell, it’s important for me to know if people are copying scripts from my site. To me, if a high proportion of visitors are copying my code, I know I’ve done my job. It’s simply a fancy way for me to determine engagement… but it’s not a typical behaviour […]

]]>As you might be able to tell, it’s important for me to know if people are copying scripts from my site. To me, if a high proportion of visitors are copying my code, I know I’ve done my job. It’s simply a fancy way for me to determine engagement… but it’s not a typical behaviour to track – especially not in GA.

This tracks copying from anywhere on the page, including line breaks and up to 500 characters of text. There’s room to copy much more (the POST to __utm.gif supports up to 8,192 bytes per request), but I figured, 500 chars should suit most purposes.

Hey, you can always bump this up, yourself.

There you have it! Easy as one, two three. Here’s what it’ll look like in the Google Analytics interface:

Whether they copied, cut or pasted is captured in the event action alongside the URL path.

Contents of the clipboard are captured in the event label.

Under event value you will find how many characters were copied at once.

… and for the sake of organisation, copy/paste/cut events will be filed under “clipboard”.

Just for the hell of it, here’s an example of the content people have copied from my site. No surprises, here – it’s code!

]]>http://www.optimisationbeacon.com/analytics/use-google-analytics-to-track-what-content-your-visitors-copy/feed/15http://www.optimisationbeacon.com/analytics/use-google-analytics-to-track-what-content-your-visitors-copy/Track How Far Your Users Scroll in Google Analyticshttp://feedproxy.google.com/~r/OptimisationBeacon/~3/jSio2WZgdQg/
http://www.optimisationbeacon.com/analytics/track-how-far-your-users-scroll-in-google-analytics/#commentsTue, 08 Jan 2013 06:00:16 +0000http://www.optimisationbeacon.com/?p=1360Update 09/01/13: Improved script to exclude MSIE 5-8 as they don’t play nice with the jQuery viewport stuff I’m using to calculate scroll depth. At least it’s possible to filter these out of your reports if you do get dodgy browsers with scroll depth >100%. One of the most useful reports in tools like Mouseflow, […]

Update 09/01/13: Improved script to exclude MSIE 5-8 as they don’t play nice with the jQuery viewport stuff I’m using to calculate scroll depth. At least it’s possible to filter these out of your reports if you do get dodgy browsers with scroll depth >100%.

One of the most useful reports in tools like Mouseflow, ClickTale, Crazy Egg (?) and the like is the “Scroll Reach” report.

It tracks how far people scroll down a page – fancy that! As simple and useful as this metric is, it’s a forlorn metric as far as Google Analytics is concerned … but I hope I can cheer you up.

I popped together a little script which gives us a rough idea about the scroll depth of visitors as well as the height of their browser viewport in pixels. It’s free, easy to install and you can access all data from your cosy little Google Analytics account.

Win, win and win.

How it works

It’s a little different to other scroll depth trackers – such as Justin Cutroni’s excellent engagement tracking script (I highly recommend checking it out). When the page loads, the window view port size is calculated and as a visitor scrolls down the page, it calculates the lowest point that you can see on the page and stores a cookie. When they navigate to the next page, the scroll reach is transmitted to GA using Events Tracking.

Given how far down the scroll bar is in this example, the scroll reach would be 29%.

You will see a percentage of how far someone has scrolled on a particular page in the event tracking section.

Sure it’s not perfect. For one, it’s doesn’t take into account exit pages (just like the time on site metric) and tabbed browsing is still iffy. Luckily, it will give you an accurate enough indication of scroll reach by page (particularly for eCommerce sites or other sites with low exit rates).

Perhaps other platforms, like SnowPlow Analytics or Piwik, with heartbeat tracking could implement something to work around GA’s 500 hits per session limitation.

In an ideal world

We would be able to generate a heatmap overlay with the data. i.e. for each percentage point of the page, we could colour it based on how many visitors saw a particular part of the page. This would make my day. There’s also no telling how it works with those people who open 50 tabs on your site.

We would also be able to implement this (or something similar) into a platform with a heartbeat on the page that tracks away every 15 seconds or so, whilst the user is active. Too bad that it would chew through all of your calls to __utm.gif, faster than the cookie monster could devour a Mrs. Crockett’s factory.

Regardless, these can be developed later. It’s WTFPL licensed, so you can do what you want with it (except for Scott Andrew’s portion of the code). It’s also on Github, so…

…fork it on Github

You can follow it, fork it and add your own modifications. Take a peep through the link below, if you’d like to see the fully commented version of the script.

Insights from scroll reach tracking

Identifying poor performing posts
My two posts about how to buildconversion rate heatmaps, were very popular when they were posted but suddenly – due to the old API expiring – both methods broke and visitors became disengaged. Because of this, I noticed visitors were just not scrolling – so (along with my readers’ encouragement) I immediately fixed the issue and scroll rates have improved.

Your ideas here…

How will you use this script?

I’d love to hear some of the creative uses for this script. Any interesting ideas etc will get featured in the section above along with recognition in the form of a link.

]]>Over the past 4-5 months or so, I’ve been watching SnowPlow Analytics develop into a sexy analytics platform. They’ve been sharing innovative ideas to make their platform as powerful as possible. Anyhow, something in particular caught my attention – track browser fingerprints in SnowPlow – and so, I decided to track this in Google Analytics.

WTH is a browser fingerprint?

Using information available from your browser configuration (through JavaScript and sometimes through Flash), we can get all sorts of interesting information, such as your user agent, fonts, browser plugins and other settings. There is so much information about your configuration that, when combined, creates a fingerprint that is unique to your browser (or in theory that’s how it works).

What can it be used for?

While “privacy advocates” would scream bloody murder over browser fingerprinting, there isn’t much reason for concern. Because, what can you do with a fingerprint? Not a hell of a lot but here are a few possible uses:

Tracking sessions that traverse multiple domains/properties/brands (where cross domain tracking is not setup or is not an ideal solution)

Stitching sessions together where a user may have deleted their cookies or opened an incognito window

OK, so maybe the last one is a bit iffy as far as privacy concerns go, but as far as uses for browser fingerprints, there’s not a whole lot to them. Unless they’re placed in the right (or wrong, for that matter) hands, of course.

Note that when your browser upgrades or gets a new plugin, your fingerprint also changes.

Notes

You can increase the uniqueness of your fingerprints by opting including fonts as provided by goodwink on Github. Your mileage may vary depending on the volume of traffic etc. Here is an example of the fingerprint that the script above will generate:

]]>http://www.optimisationbeacon.com/analytics/using-brower-fingerprinting-in-google-analytics/feed/3http://www.optimisationbeacon.com/analytics/using-brower-fingerprinting-in-google-analytics/Find Backlinks to Your Site With Google Analyticshttp://feedproxy.google.com/~r/OptimisationBeacon/~3/PrPxk1u93lo/
http://www.optimisationbeacon.com/analytics/finding-backlinks-to-your-site-using-google-analytics/#commentsTue, 04 Sep 2012 10:00:34 +0000http://www.optimisationbeacon.com/?p=1203With the demise of Yahoo Site Explorer at the end of 2011, it’s not all doom and gloom for SEOs around the world. There are still plenty of great ways to find backlinks without breaking the bank or compromising on the quality of your data (at least when it comes to your own site, that is). SEO […]

]]>With the demise of Yahoo Site Explorer at the end of 2011, it’s not all doom and gloom for SEOs around the world. There are still plenty of great ways to find backlinks without breaking the bank or compromising on the quality of your data (at least when it comes to your own site, that is).

SEO tools are great for competitive benchmarking and general analysis of backlink profiles: Open Site Explorer, Google Webmaster Tools, Bing Webmaster Tools, ahrefs and Majestic SEO. But they only offer a snapshot of where your links are coming from.

Mining your web server logs can give you a pretty complete list of backlinks too, as some crawlers and most visitors will report the referrer to your HTTP server – even if they aren’t running JavaScript. But this is practically impossible for most people to do, so best to steer clear of it.

Google Analytics can also show you a fairly comprehensive list of backlinks along with visitor metrics. If you subscribe to the view that well trafficked links generally have higher value, then visits and user engagement are good metrics to help judge link value. Sure it won’t tell you how many of those links still exist, what anchor text they use or how many are rel=”nofollow” but that’s why you use tools like Niels Bosma’s SEO Tools for Excel once you have the data.

Best of all, the GA method, takes you no time to pull the reports you need. “How long, Rob?” you ask. Just 5 minutes or about “…………….” yay long.

The problem with Google Analytics

Typically SEOs shy away from using backlink data out of Google Analytics. Most SEOs may know about Analytics’ ability to show referrers, but they don’t use it because out of the box, the data sucks.

You simply can’t get a full URL out of the “Full Referrer” dimension (of all places)… Just look at this:

OK – Look away, dear reader. Let’s look at how we can fix this up.

Don’t worry, you can apply a simple, yet crafty, filter to fix this in a couple of minutes.

Step 1. Setup the Full Referrer Profile Filter

Here’s how:

1. Create a new profile or use an existing one if you have the bollocks (remember, apply profile filters permanently alter your reports data, there’s no “undo button” if you mess up your main profile).

2. When you’re in the profile, follow these links, “Admin” in the top right > “Filters” in the profile tab > “+ New Filter”

3. Create a filter , with the settings I’ve used in my example below:

This profile filter will add full referral URLs into your user defined value in Analytics.

Optionally, you may want to create filters to remove certain parameters from the Full Referrer such as utm_source and other popular ones.

Step 2: Loading up the Custom Report in Analytics

Simply open this custom report with a decently large date range, including the date range from when you setup the filter. And ensure you’re looking at the profile for which you setup your filter.

Comparison of using GA to other tools

Unfortunately I haven’t got a lot of retroactive data with this filter which I applied for my own site (it’s a bit of a case of the gardener’s garden), so I have reverted to using the inferior full referrer dimension. Even then, it demonstrates that Analytics is capable of finding a healthy number of links.

Google Analytics doesn’t show the highest number of backlinks, but it does show a reasonable number of them alongside useful metrics.

Google Analytics (without full referrer hack above): 501

ahrefs: 372

Open Site Explorer: 283

Majestic SEO: 1698

Google Webmaster Tools: 1211

Bing Webmaster Tools: 160

Server logs: Did not measure – I should have, could have, would have but I didn’t.

Pro tip #1: Track a rolling total of links or new backlinks created Month-on-Month

Google Analytics V5 allows you to bookmark and share URLs to access unique reports. If you want a rolling count of the number of backlinks, simply change the date range in the URL (formatted as YYYYMMDD) to a far off future date and bookmark the URL.

Simply change the date in the URL of this custom report to something well into the future. In this example, I have it set to 31 August, 2019.

Likewise tracking new backlinks each month can be done very easily by the following formula:

Pro tip #2: Use Google Analytics’ Built-in Social Activities Report

Another option you can take, as detailed by Daniel Waisberg is to use Google Analytics’ own social backlinks report which combines shares and links in the same report.

]]>http://www.optimisationbeacon.com/analytics/finding-backlinks-to-your-site-using-google-analytics/feed/10http://www.optimisationbeacon.com/analytics/finding-backlinks-to-your-site-using-google-analytics/Build a Conversion Rate Heatmap by Hour & Day of Week in Google Docshttp://feedproxy.google.com/~r/OptimisationBeacon/~3/w4dhJoQw5BA/
http://www.optimisationbeacon.com/analytics/build-a-conversion-rate-heatmap-by-hour-day-of-week-in-google-docs/#commentsFri, 22 Jun 2012 06:09:02 +0000http://www.optimisationbeacon.com/?p=1161Update 5th January 2013: Regretfully, Google discontinued the API that Mikael’s excellent script is based upon – and therefore this approach is broken. You can still do it manually – it’s just as fast! Read my original post on how to create a heatmaps of analytics data here. Thanks to a smart Finn called Mikael […]

]]>Update 5th January 2013:Regretfully, Google discontinued the API that Mikael’s excellent script is based upon – and therefore this approach is broken. You can still do it manually – it’s just as fast!

How to do it

Watch the instructional video below (I’m a YouTube newbie, so you may have to bear with it) or follow the steps outlined afterwards.

Step 1:Load the template from Google Docs and save a copy to your Google Account (ensure only you have access to this as your password will be stored in the spreadsheet).

Pointing out all the little bits and pieces in the spreadsheet.

Step 2: Pop in your username and password, into the fields on the “Data” spreadsheet tab. Feel free to hide your password in the spreadsheet.

Step 3: Grab your Profile ID (Note that this is not your UA number!) from the URL in your Google Analytics interface and pop it into the corresponding cell in the template. You’re looking for the number in the URL which looks like this:

]]>http://www.optimisationbeacon.com/analytics/build-a-conversion-rate-heatmap-by-hour-day-of-week-in-google-docs/feed/36http://www.optimisationbeacon.com/analytics/build-a-conversion-rate-heatmap-by-hour-day-of-week-in-google-docs/Ethnio Review: How I Used it to Interview My Visitorshttp://feedproxy.google.com/~r/OptimisationBeacon/~3/C2PxMG_9UdM/
http://www.optimisationbeacon.com/marketing/ethnio-review-hey-visitor-whats-up/#commentsWed, 14 Mar 2012 12:29:09 +0000http://www.optimisationbeacon.com/?p=1090Web analytics tools often only give you a limited understanding of your visitors. So when I recently ran a trial of Ethnio on my site to recruit people like you to interview, I was amazed with how much insight I gained. What is Ethnio? It’s a service that uses your website to recruit users for research […]

]]>Web analytics tools often only give you a limited understanding of your visitors. So when I recently ran a trial of Ethnio on my site to recruit people like you to interview, I was amazed with how much insight I gained.

What is Ethnio?

It’s a service that uses your website to recruit users for research purposes. Decide which visitors you want to target, prompt your users to participate in research for an incentive, screen out the ones you don’t want… and boom. You’ll be recruiting quality participants in next to no time.

Following is how I used it recently on Optimisation Beacon to conduct interviews. Read on for how I used Ethnio (and its features) in excruciating detail ;)…

1. The Opportunity & Objectives

I knew very little about my website visitors and was concerned that whatever I was going to write about was going to alienate some of my readers. I had little understanding about what kept bringing loyal visitors back to my site (outside of top landing pages for return visitors) and I wanted to learn what new visitors thought of my site. On top of that I really wanted to know what people found useful, struggles they face in their jobs and what would encourage them to subscribe and share my content.

2. The Methodology

With little knowledge of my visitors, I opted for exploratory research involving simple unstructured interviews with my website visitors. Sure, I could try to go out and contact subscribers, or write a blog post about it, but I would only reach already-loyal subscribers, so I chose to recruit via my website.

My budget for the study was a mere shoestring (90% the costs I incurred went straight to the respondents and the rest were overseas phone call charges – note to self, “Do not call Israel.“) so choosing Ethnio’s free package was a no-brainer for me.

3. Setup

The simplicity of Ethnio cannot be understated – it was dead simple. Right from the get go, I was able to create a custom screener that would allow me to phone up and interview loyal readers and new visitors. Here’s how easy it was:

Choose the design of your screener modal dialoge

When you create a new screener, you can jump in and select the screener type. Choose from pop-over modal dialogues to a little message that sits in the bottom corner of the users’ screens.

Select the screener design you want Ethnio to use.

Specify where you’re recruiting from and for how many respondents

Simply pop the URL in here that you’d like to preview your screener on and let Ethnio know how many respondents you need for your study.

Specify where you're recruiting participants from and how many you need.

Add your company logo

Customise your screener with your company’s logo, so visitors know the research is being conducted for your site.

Add your logo to the screener form.

Position the screener on your site so it pops up where you want it to

Ensure the screener pops up where you want it to and make sure it’s not covering anything up, that you don’t want it to.

Position the Ethnio screener to sit on the page.

Customise your screener text and set the incentive

Here’s your chance to set the incentive and customise your screener’s text. This part is particularly important. You have two options here: offer a universally valuable incentive (e.g. cash) or give away something cheaper albeit with niche appeal (e.g. download an eBook). I think it’s important to give an incentive of universal appeal, as this will ensure your study appeals to everyone whilst your screener weeds out the people you don’t want.

Set the text and incentive to be shown in the screener dialogue.

Create the screener questions

Perhaps I asked a few too many questions here (you can’t blame me for being curious, can you?). This allowed me to learn more about my respondents and be picky with who I chose to interview.

Provide questions to screen out users you don't want to have participating in your research.

Customise your thank you message

A little thank you page to show visitors once they’ve completed your screener.

By default, Ethnio will recruit people and wait for you to screen them in, when you login to the interface. Branching logic allows you to automatically screen in respondents based on their answers.

I didn’t use the branching logic in this project, but if you’re recruiting for usability testing or online surveys for example, you can link screened respondents directly into the study, so you get your data as fast as possible.

Publish your screener via your site, Twitter or a public link

Once you’re done, Ethnio allows you to share your screener with a link provided or setup the screener to show on your site. I can see this being popular with any businesses who have massive social media presences.

You can share the screener through your site or tweet it out to your social media profiles.

4. Data collection

After just over a month, and a poor response rate to my $40 Amazon gift voucher incentive, I had a number of candidates which I could choose to interview over the phone. Obviously in the below instance, I hid the responses, so you can’t see my visitors’ phone numbers…

Here you can collect and manage your respondents in an easy to use interface.

The interviews

All I had to do was setup a time in which the interviewee and I could sit down for a quick chat and call them up. In this regard I was a little under-prepared. I basically called up with a rough set of questions and let the respondents tell me a bit about themselves. The calls were recorded for my future reference, all the while I took notes.

5. What I learned

The main points I learned from the interviews were as follows:

Visitors to Optimisation Beacon sit roughly within one of two segments: Developers or Analysts

Whilst analysts may not necessarily have the technical know-how, developers struggle with the marketing/business application know-how (though some have the best of both worlds)

The tools I have developed encourage visitors to come back to the site on a regular basis (particularly the split test calculator)

Developers, whilst being more interested in code are also interested in learning about website optimisation, but more introductory-level posts whereas analysts are looking for more advanced posts

6. Actions

Obviously, it’s great to learn lots of interesting stuff, but it’s even better if you can do something about it. Here’s what I’m working on now and for the future for Optimisation Beacon:

Post meatier, authoritative articles/resources that help (and engage) analysts and web developers do their jobs

Develop more conversion and maths related tools

Post more consistently (OK, perhaps I failed a bit there) and develop my instinct on what my readers will respond to best

The Verdict: 9/10

Pros

It’s freemium! And because of this, I’m now a paying user at work.

Setup is lightning fast and beyond easy.

They’ve covered just about everything with the service, including incentives, full customisation of the text and screener questions.

The interface is sleek and quirky, without getting in your way of setting up your screener or recruiting respondents.

Use Ethnio to pay incentives to users (for a 15% cut)

Cons

The screeners’ branching logic is a little inflexible as you can’t send different respondents into different studies based on their answers.

If you go premium, the cost is a little on the high side. If it were slightly lower, I could see this tool as being one of our permanent tools. Perhaps in the future they may provide discounted annual accounts or agency deals.

Doesn’t show you abandonment metrics for the screener (say if you ask some really personal stuff – occupation, name, email, phone etc – you want to know if it’s affecting the response rate)

OK, so you know I love this tool but should you use it? Well, if you’ve never had personal contact with your customers (or your clients’ customers) and want to understand them, I highly recommend you check out Ethnio to recruit for interviews. If you’re looking to recruit for another remote study (e.g. usability testing), I can’t quite say, as I haven’t used it for that purpose yet.