Tracking Offline Interactions in Google Analytics


The trouble with web analytics is the possibility of it telling you lots about your website but nothing about your business. A browser is not the same thing as a customer, and yet we forget this in the data that we use to optimize our marketing efforts.

Using Google Analytics, part of the solution to this problem is User ID, which allows us to track users as they move between multiple browsers, as long as they log in along the way.

However, a lot of the most important interactions in a customer’s journey might not take place in a browser at all – instead they’ll take place in a shop, or over the phone, at an event, or in the customer’s inbox. In these cases, it might be that you can draw together these interactions with your existing Google Analytics data using Measurement Protocol.

Introduced with Universal Analytics, Measurement Protocol is an alternative way of sending data to Google Analytics that gives you far more control than traditional on-page code – allowing you to send custom hits associated with specific users, even if no web pages were involved.

In this guide, I’ll look to explain what can and cannot be done with Measurement Protocol and how to deploy it in practice. Primarily this will be focused on the use case of lead tracking, but the lessons here apply to any application of Measurement Protocol. I’ll also offer some tips and caveats from our experiences deploying Measurement Protocol solutions with our clients.

If you’re not already confident with Google Analytics, you might want to check out Google’s own Digital Analytics Fundamentals before you read further, or at least this guide to how sessions are calculated.

The importance of offline steps

Measurement Protocol stays within Google Analytics’ paradigm of hits, sessions, and users – it’s another way of sending a hit besides the more traditional JavaScript snippet approach.

Looking at our attribution reports in Google Analytics with a purely on-site implementation, we might get the impression that a user:

  • Discovered us when our great content was shared on social media
  • Came back via organic and decided to get in touch
  • Later signed up to attend one of our meetups

If this is a lead generation site, we’d probably be very pleased to see a journey like this, but there are two problems with it. Firstly, it doesn’t actually tell us whether this turned out to be a good lead or a bad lead – should we invest more in content, or does this content just bring in leads that turn up to an event then go dead? Secondly, we risk seriously misunderstanding what it is that turns a website visitor into a likely customer – simply by failing to record steps in the process that might not have taken place on the website.

The journey above might actually look more like this, with offline interactions shown in blue:

  • Discovered us when our great content was shared on social media
  • Came back via organic and decided to get in touch
  • Was called by the sales team, who brought up the topic of relevant upcoming events
  • Later signed up to attend one of our meetups
  • Spoke with the team at the event
  • Arranged a contract over phone and email

Adding in these offline interactions, we have a far fuller view of what this customer’s path to conversion actually looked like, and we can confirm that this was a “good” lead of the sort that we might want to attract more of – rather than just ending the funnel at lead generation.

Use cases

The example above is probably the most common use-case – lead generation. However, we can actually use Measurement Protocol in any situation that meets the following criteria:

  • Users making themselves uniquely identifiable to CRM, e.g.:
    • Customer number
    • Email address
    • Username
  • Non-website interactions that happen after this fact but where the CRM could be referenced, e.g.:
    • Phone call
    • Email
    • Live chat
    • In person (store / showroom / branch / event)

More broadly, you could use Measurement Protocol for any of the following:

  • Conversions that occur away from your website
  • Steps toward conversion that occur away from your website
  • Engagement with your brand that occurs away from your website

In each of these cases, what you’d want to send to Google Analytics is a little different. For example, if you want to record steps towards conversion, you probably want to give them a medium, whereas if you want to record the conversion itself, you want to attribute that to the medium of a previous session. Which brings us neatly to the setup process.

Attribution using measurement protocol

Measurement Protocol sends data to Google Analytics using a GET or POST request to a given URL. The parameters added to this URL are the data itself. There has to be a hit of some sort (such as a pageview, event or transaction), and the time of that hit cannot be overridden – for instance, you cannot place an additional hit into the middle of a session that occurred yesterday. Nonetheless, this facilitates accurate attribution of offline interactions, due to an oft-maligned quirk of Google Analytics – that it uses “last non-direct click” for everything, including the sources and mediums of sessions themselves. As Measurement Protocol hits are by default “direct”, “last non-direct click” attribution causes them to inherit attribution data from previous sessions.

Read rest of the article at: