?> User intent and the user journey | Snowplow
Snowplow ‘Outperforms’ GA4 in GigaOm Comparative Evaluation.
Read More
  1. Home
  2. Blog
  3. Data Insights
Data insights

Building better attribution models and mapping customer journeys with user intent

The term ‘user intent’ is thrown around a lot in the world of SEO and marketing attribution, but how much of a users’ intended outcome can our data actually show us?

What is user intent?

The purpose of a user can be broadly categorised into: navigational, informational, or transactional, and different content is designed for each category. A hard sales landing page – CLICK HERE NOW!! – is way different to an product explainer video or a descriptive blog post.

Once we’ve categorised our content, such as advert, blog or whitepaper by category, we need to get our data to the right format to reveal the user intent.

Packaged tools (GA, Adobe), which generally aggregate data to ‘sessions’ and ‘page views’, struggle to determine the intentions of a given user. What is needed is a user-level understanding of the data. 

‘User-level’ refers to the many sessions a particular user had, across marketing touchpoints like email, organic and paid, as well as their various devices. Once we’ve tracked these touchpoints, we can compare the original intention of a user, based on the first content interacted with, to the outcomes of these sessions – e.g. buy PS4.

At Snowplow, we are always talking about ‘granularity’, and while this sounds like just another abstract, technical brag, it is this granularity which allows us to fleixbly model the data to uncover hidden truths. Modeling, after all, is a question of perspective. 

Marketing and attribution models

In an event stream we can differentiate between marketing touchpoints and conversions – every line is one event – e.g. page views, transactions, with timestamps and referrer IDs.

Figure 1

We can build models to attribute transactions to specific marketing touchpoints.

Figure 2

Or we can use the event stream to identify different conversion paths – dividing credit among, for example, several different, associated touchpoints (that is, all the events that led to transaction).

Figure 3

Unpacking the user journey

If we unpack the data from Alice’s user journey, we see the following:

  • Alice does an organic search, then returns via a paid search page view, having clicked on an ad. She leaves the site and later revisits via an email she received.
  • Alice has had multiple interactions with the site before she finally purchases a video game. When she makes another purchase, a video game console, her conversion path is different. Essentially, though, these are what attribution paths look like.

Depending on your chosen attribution model, you assign different weights to the different touchpoints.

One of the simplest attribution models is the last touch model, shown in figure 2, which attributes the purchase to Alice’s last marketing interaction. 

If we know what channel drives people to buy something, and we know our marketing spend in that channel, we can compare spend versus revenue from that channel to find out if our marketing budget is balanced and we achieve a return on investment.

More sophisticated models share credit on conversion among different marketing touches, as in figure 3. This is a powerful tool for measuring and analyzing the efficiency of a marketing campaign, looking at how effective the different channels were.

How can user intent mess up your attribution models?

  • Discuss how user intent plays into attribution and attribution modeling:
    • What did the user have in their head when they came to the website? 
    • How can we measure this?

Where we run into some trouble, though, is in discovering user intent and how it fits into – and might mess up – your attribution models. 

We do not know what people want when they come to a website, and misinterpretation can mess up your attribution models/calculations. How can the measurements we employ go wrong?

Most attribution models are missing a key ingredient: user intent (figure 4).

Figure 4

What did the consumer have in their head when they came to the website in the first place? Sometimes this does not match up with what they actually do.

Figure 5

Let us assume that we know that Linda’s intent was to look at the PS4, and then the second time a game, the third time, a game console, then a game, and finally another visit for the video game console. We can see that they are not two separate conversion paths but three because she had three different intents when visiting the website. And this can throw all of our calculations out of whack (figure 5).

Capturing user intent and partitioning event streams

The conversion paths are not neatly partitioned, so we cannot determine that this is the conversion path for the first conversion and then the second. The conversion path consists of several marketing touches, interlaced with other conversion paths. 

Being able to capture user intent and use it to partition the event stream would give us a much more accurate picture of the correct conversion paths (figure 6).

Figure 6

Capturing user intent takes planning and discipline. It requires imposing structure on incoming data before we can determine user intent. We need to capture intent as data come in, that is, when the user clicks on a link in the website. We need some way to match that to actual transaction path – every page should have a tag that matches the intent a person had when they were going through the funnel. From there, we need to be able to match that intent to eventual conversions. In practice, this means that the imaginary ‘intent’ column in our dataset in figure 6 needs to become real in order to do the attribution correctly.

Filtering on intent

We want to be able to filter on intent for both marketing touches and conversions.

Figure 7

One way to do this filtering is decorating links with an ‘intent’ tag that appears on all the pages that will be part of the funnel to parse it out, meaning URLs and ads would likewise be decorated. Some data pipelines allow for parsing out of the custom values you’ve set to create and populate a new data column (i.e., creating the once imaginary ‘intent’ column in reality).

More about
the author

Dilyan Damyanov
Dilyan Damyanov

Dilyan is a Data Engineer at Snowplow.

View author

Ready to start creating rich, first-party data?

Image of the Snowplow app UI