BI For Experts

Multi-touch attribution: An implementation guide

Think back to the last time you purchased something online. Maybe you were introduced to the product through an ad on Facebook or via a Google search. This "first touch" introduced you to the brand and the product but how many touches did it take before you made the purchase? Most businesses look at either the first or last touch only. A multi-touch attribution model looks at multiple touches.

A multi-touch attribution model divides up the value of a conversation among the different channels which helped drive the conversion. The reason this model is popular, especially among complex marketing teams is that each channel can get a slice of the attribution that is fair based on their role in driving conversion.

Implementing a multi-touch attribution model is a complex and difficult process. In this post I'm going to help walk you through the exact steps needed to implement such a model in your own organization.

How to implement a multi-touch attribution model?

Defining the problem

Before we jump into the solution it's important to understand what exactly we are trying to achieve.

Most companies attribute their revenues to their marketing team as a whole or use a highly simplified attribution model (like first or last-touch only). The issue with this approach is that the head of marketing doesn't know which of his teams are driving revenue. The more complex the marketing department, the bigger the problem. Should the head of marketing double down on paid media, or hire another business development person? Should he fire his SEO guy or give him budget to grow his own team? Without knowing how much each element of his department is contributing to the bottom line, it's impossible to make smart decisions on growth and optimization.

Our goal is moving from a blended to a segmented attribution of revenues using the best model available, a multi-touch attribution model.

moving from mixed to multi-touch

The components of a multi-touch attribution model

Now that we understand our main goal, the next step is to break revenue down into measurable "building blocks". Revenue as a whole is made up of multiple "deals". Ideally a deal is an actual transaction but in many B2B companies it could represent a contract or promise of payment. Using contractual income as your revenue number is good enough as long as you don't have a lot of variance in your payment collection rate.

A deal or transaction will typically be connected to a single individual. This may be the user of the service, the admin among a team of individuals or in the case of an eCommerce business, the individual that made the purchase. In the case of a B2B business, it is usually a safe bet to go with the first individual connected to the business that you record in your CRM, as the individual associated with the deal. Trying to build a multi-touch attribution model around multiple contacts per deal significantly complicates things.

revenue to lead

The diagram above was created using Lucidchart

Good work, we've managed to break down revenue by deal and then primary contact. The next step is to make sure we are collecting the different touch points and can tie them to the actual individuals.

In the example below we see that John visited our site 3 times before becoming a lead. The first touch can be attributed to a Google Search, the second to a tweet on Twitter and the third to a webinar run by a partner.

It isn't enough to know that we had three visits from three different sources. We have to be able to tie these visits to an individual, in this case John.

Lead touch points

A multi-touch attribution model can't be implemented without event-based data tied to individuals

The main reason that most businesses can't implement a multi-touch attribution model is because they aren't tracking different touch points and connecting them to an individual.

In order to track these different touch points and connect them to an individual, you'll need to go beyond Google Analytics. My solution of choice for this kind of tracking is Segment.

Segment will allow you to replace Google Analytics and tie every visit (and any other event you want to track) to an individual. The best part about Segment is that all this event data can be pushed into a data warehouse like BigQuery or Redshift and leveraged by your analysts and R&D.

With Segment, every individual that hits your site will be assigned a cookie. This cookie helps you track the different visits by this individual (it's done on the device level). Every visitor is assigned an anonymous id which is automatically generated by Segment. This id acts as the fingerprint of the visitor (as long as he doesn't change device, more on this scenario later).

Once the individual becomes a lead or user in your system, you'll need to push this id into a database you control, this can be either your CRM (SalesForce, HubSpot for example) or your production database (less common).

At this point we have a lead in our system which we can tie to any future deals, and to all the relevant engagement performed up until that point. You should be able to build a timeline like the one I created for our contact, John.

Connecting each touch point to a department

Now that the data of each visit to your site is flowing into your data warehouse, you need to start mapping the source, medium and campaign data to your different departments. This step is the most labor intensive and it might make sense to use R&D to help develop some mapping tables in the data warehouse to reduce the need for long, complex queries. If you're using BigQuery you could use Google Sheets and import them into BigQuery.

Building our multi-touch attribution model

At this point you should have the following in place:

  • A CRM system which allows us to connect deals to primary contacts. If you can afford it go with SalesForce.
  • Ideally the data stored in this CRM is being pushed into a data warehouse.
  • Segment installed on all your web assets and page view data is flowing into your data warehouse.

The next step is to come up with a model which makes the most sense based on the type of organization, customer journey and product offering.

The biggest decision that needs to be made is how exactly we want to attribute the revenue across the different touch points. Since all your touch points and any other relevant data point you may want to leverage exist in your data warehouse, you can go wild.

Some options for you to consider:

  • 50% first touch, 30% last touch, 20% other touch points - The most common model is one which puts more weight on the first and last touches. This makes a lot of sense since the first touch introduced the brand and product to the contact, while the last touch greatly influenced the conversion.
  • Divided equally across all touch points (less common and less accurate in my opinion)
  • 100% if X happened - You may have certain channels or certain actions, like signing up to a program or downloading an eBook which has such an impact on conversion that 100% of the attribution goes towards that channel even if there were multiple touches. This approach is also rare.

One you've decided on your model, you'll need a senior analyst or data engineer to help you implement it. This could be done using SQL, assuming you are using a world-class data warehouse, or even in a tool like Tableau.

This process involves the following steps:

  1. Joining deal to primary contact (typically a lead in a CRM)
  2. Joining the primary contact to an anonymous id or set of anonymous ids
  3. Isolating the visits of the anonymous id. It is good enough to go with first page view per day and looking at the referrer and utm fields to determine the source. I would do this step as a separate view or table in the data warehouse.
  4. Isolate any other events or flags that you want to use in your model on either the primary contact or anonymous id level.
  5. Map the source of each event to it's respective team. source = belongs to Social media team, for example.
  6. Join the revenue to the event data of the anonymous id and distribute according to your model. You'll need to add helper columns to indicate which events are 1st, last and additional touches in the visitor journey.

At this stage you can sum up revenue by the different teams and this will give you your revenue distribution based on a multi-touch attribution model.


Frequently asked questions on multi-touch attribution

What about renewals and secondary purchases?

Multi-touch attribution is complicated enough. Secondary purchases and renewals are driven almost entirely by the value the product or service provides the consumer. Marketing's job is to bring new business, not retain existing.

The multi-touch attribution model should only use revenue from first-time purchases.

How long will it take my company to implement a multi-touch attribution model?

This is a tough question to answer without knowing the state of your operations, available resources and organization structure.

I recommend that you only consider implementing a multi-touch attribution model once you're in the growth stage and have significant resources to back such a transition. This includes at least 1 senior analyst on staff, a multi-channel marketing department, and a functioning CRM and data warehouse.

My company uses SDRs to generate cold leads. How does this affect a multi-touch attribution model?

If your company has an outbound sales team which is separate from the marketing department, it will complicate the multi-touch attribution model. The way to handle this scenario is to involve the head of the sales department since he will want to attribute part of the revenue to his team. Both the head of marketing and the head of sales will need to sign off on the model before it is built out by the analysts or data engineers. Since the SDR team is making calls and sending out emails, you'll need to tie in these events into your model. This won't be possible unless you're moving your raw data out of the CRM into a database of some kind, ideally a data warehouse like BigQuery.

How often should we update the multi-touch attribution model?

You should try and avoid changing the model unless it doesn't make sense to keep the model as is. Changing the model will take expensive resources and has the potential of creating friction within the organization. As a rule of thumb, the model shouldn't be changed more than twice a year.

We get a ton of visits from source "direct", who should these touch points be attributed to?

Unfortunately web tracking is not a perfect science and if you spend enough time looking through raw Segment event data, you'll see all kinds of things which don't add up. The multi-touch attribution model is a significantly better model than other available models but is isn't perfect. It is important that everyone understands this.

Each organization will need to decide what it does with the "left over" attribution. The attribution you can't directly connect to a team or individual in the department. In many cases this attribution goes to the content or SEO team since a large percentage of direct is actually search traffic that has been masked. In other cases it goes to the social media team since more and more social media traffic is being hidden from javascript-based tracking solutions.

If this amount is significant then you should audit your activities and try and improve your tracking. This means better usage of utm tags in email campaigns, asking partners to use utms and making sure you don't have any gaps in your tracking infrastructure.

What should I do if I have additional questions on multi-touch attribution?

You're more than welcome to ask your questions in the comments section below or in our Facebook community group.