Web analytics in practice

Analytics in the real world

    • 1
      7 May 2012

      I'm hiring: Online data analyst

      • Edit
      • Delete
      • Tags
      • Autopost

      I'm hiring for an analyst in my team at Vodafone. We're an Omniture installation with some big advantages:

      • A mandate to push through big improvements.
      • Supportive, data-focussed management hierarchy.
      • One of the cleanest, most consistent Omniture implementations I've seen.
      • And, of course, you get to report to a smart boss who initimately understands web analytics.

      This role will initially be a bit of a report monkey job, but we'd love to automate away all the repetitive pieces so we can all focus on the more interesting work.

      Check out the job description and apply on the Vodafone careers page.

      • views
      • Tweet
    • 0
      19 Apr 2012

      Yes, this blog is back!

      • Edit
      • Delete
      • Tags
      • Autopost

      And yes, by the way, I'm back posting on my web analytics blog. I took a break for a while when working for Datalicious, as all my thoughts on web analytics went to the company blog. Now I'm again able to share my thoughts here.

      I'm also planning to get Web Analytics Wednesday happening regularly in Sydney.If you'd like to sponsor it, please get in touch.

      • views
      • Tweet
    • 0
      19 Apr 2012

      What's missing from Google Analytics?

      • Edit
      • Delete
      • Tags
      • Autopost

      While looking at the pricing of our analytics service, my boss asked why we couldn't use Google Analytics and I've had a bit of a think about it. On the surface there's not a huge amount between the two really. Google Analytics has a great user interface, is well understood by developers and does almost everything right. But there's this one thing that is a show stopper for most of the places I've ever worked.

      The problem is to do with how Google Analytics sets the cookies that identify visitors. Most web analytics tools set this in the HTTP header of the response from the data collection server. In the diagram below we see a company that has two domains. The cookie is set in the ".BigCompany.com" domain as a third-party cookie in the response the first time the visitor sends a data collection beacon. The upshot is that when the visitor goes to the "BigCompanyShop.com", that cookie identifying the visitor is also sent to the data collection server.

      Third-party_cookie_example

      By contrast, the way Google Analytics works is to set a first-party cookie in JavaScript on the current domain. That means when a visitor goes to another domain, that cookie isn't available and so the visitor identifier is different, as you see below.

      First-party_cookie_example

      Yes, Google and third parties provide a few workarounds for this. They either don't work in all browsers or rely on the visitor going between the domains by clicking a URL that embeds the visitor identifier. If you want to see the overlap between two only-slightly related domains, this approach just isn't going to work. And if you're unable to pass the user through via an HTTP GET instead of a POST, you're out of luck for the most used browsers.

      This is a really strange limitation in GA. The only reason I can imagine for it is that it makes the data collection servers much simpler and thus more easily deployed in the Google server architecture. To collect data the way Omniture, WebTrends et al do it, they'd need to be setting and refreshing unique identifiers on every data collection. Not ridiculously complicated, but a specialised data collection server which I understand is hard to get deployed in the core Google infrastructure.

      The scale of this problem is huge. I haven't worked for a single company doing web analytics where the company has only one web site. You end up having extra domains for historical reasons of someone working around the domain names gatekeepers, or extra brands the company owns or acquires, and all kinds of reasons. This even happens in relatively small companies.

      It's a big deal and until Google fixes it, it's going to continue to be a major limitation of Google Analytics.
      • views
      • Tweet
    • 0
      17 May 2011

      How widespread is IPv6?

      • Edit
      • Delete
      • Tags
      • Autopost

      I've recently been asked about our tool vendor, Omniture, and their support for IPv6. It seems they currently don't support it, but are working towards it.

      Does anyone know the current proportion of mainstream traffic coming through IPv6?

      There's a bunch of data you'd lose with people coming from IPv6 endpoints. Most critically would be any Geo-IP mapping you're doing. If you're using IP addresses for visitor identification (and please don't!) you'll also have problems.
      • views
      • Tweet
    • 0
      10 May 2011

      Omniture: execute plugin code only on page views

      • Edit
      • Delete
      • Tags
      • Autopost

      Omniture uses the term "plugin" to refer to a few different things. In this example, I'm talking about the plugins placed in the s_doPlugins function in your s_code.js file. This area is run whenever Omniture code is called, whether it by an s.t() page view call, an s.tl() link call or an something like ClickMap.

      My problem was that I wanted to trigger some code to run only when there's a page view and not in any other circumstances. Useful, for example, if you want to fire off something to another analytics system only for page views, or you've got some code that only makes sense for pages.

      The trick is to test for the value of s.eo, which contains the object associated with the link. So when you do an s.tl() and pass in the linked item (usually with "this") it'll become the value on s.eo. Page views don't have this link, and items that don't define it end up with a value of "0". That means this is an effective test to see if the current call is a page view.

      Anyone know a better way to do this? Perhaps a way to definitively differentiate between the different types of call?

       

      function s_doPlugins(s) {
              // Only run this code on page views
              if (s.eo === undefined) {
                      // Your code goes here
              }
      }

       

      • views
      • Tweet
    • 0
      21 Apr 2011

      Video performance reporting

      • Edit
      • Delete
      • Tags
      • Autopost
      We were asked if there was some way to provide a way to measure how users were experiencing video playback. That is, how long to people spend buffering and how often does the player run out of video and have to rebuffer. We're using Omniture SiteCatalyst for this, and already do the standard video reporting.
      It's important to get this kind of information from the client side. We can do server-side reporting, but all we'll know from that is how many times the files were requested. The approach we took gives us information direct from our customers, so we can quantify what they actually experience.
      I started out by creating an eVar (conversion variable) for the video identifier and another for the video player. Handily this is also what we'll need to do to start using the SiteCatalyst 15 video solution, which saves us one task there. Another eVar captures the buffer time. I also created four new custom events to captur
      e the different steps in video playback. These events are recorded alongside the eVars and so we can report by video identifier (and its classifications) or player.
      When the user first requests the video, we send the "Video request" event. When the video has finished buffering, we send the "Video first frame" event, alongside the number of milliseconds spent buffering, rounded to the nearest 100 milliseconds.
      If, during playback, the player runs out of video and has to start buffering, we send the "Buffer underrun" event. Again when the video starts playing again, the "Buffer underrun first frame" event is sent, alongside the rounded buffering time.
      Videoperformanceevents

      So now we've got our eVars for video ID, video play
      er and buffer time, alongside these video events. We can report on any of these events happening with those eVars.
      A simple report looks something like this using a simple "buffer underruns / first frame" calculated metric to show us the videos that people are finding most problematic.
      Outliers

      The problem is that the "worst" videos according to this report are viewed by a miniscule number of people. Some poor sucker has been desperately trying to watch VOD:37367 on his dialup connection, with 521 buffer underruns. That doesn't sound like much fun, but it doesn't really help us optimise our service for the majority of people.
      So I came up with some simple calculated metrics that insert a modifier to show us poorly performing videos, but weighted towards ones where the poor performance is widespread.

      Scoring

      So now we can see there's a few videos that are problematic, and for a reasonably number of people. We can start optimising and seeing if we can improve this experience.

      That calculated metric:
      [Video buffer underrun] / [Video first frame] * ( [Video first frame] / [Total Video first frame] ) * 1000
      • views
      • Tweet
    • Search

    • Sites I Like

      • My personal blog
      • My home page
      • My LinkedIn
    • Tags

      • omniture
      • code
      • cookies
      • google analytics
      • ipv6
      • video
    • Archive

      • 2012 (4)
        • May (1)
        • April (3)
      • 2011 (6)
        • May (4)
        • April (2)
    • Contributors

      Simon Rumble
    • Obox Design
  • Web analytics in practice

    I decided to create a separate blog specifically dealing with web analytics. I often come up with cool little hacks, or interesting approaches, during the course of my work and they're likely to be of interest to other practitioners.

    Most examples of web analytics implementations presented by vendors portray a perfect world where you have everything under your control, changes happen without problems, developers can actually read whole sentences. Here in the real world, things are more complicated...

    524 Views
  • Get Updates

    Subscribe via RSS
    TwitterLinkedIn