Advanced Attribution Modelling in Google Analytics

 

This post is a featured request from lot of subscribers of seotakeaways who have been asking me questions on advanced attribution modelling features provided by Google Analytics since I first wrote this post. So I thought of answering all of the questions through this blog post and provide much more details.

Here is what you are going to learn through this post:

1. How to use the ‘Model Comparison Tool’ to determine most effective marketing channels for investment

2. What really is ‘Data Driven Attribution model’ and how to use it

3. What is ‘Model Explorer’ and how to use it

4. What is ‘Custom Data Source’ and how to use it

5. How to import cost data into Google Analytics

6. How to do ‘ROI Analysis’ in Google Analytics

But before we move forward, I want to make sure that we all are on the same page.

I won’t be talking about the very basics of attribution modelling in this ‘advanced’ post.  If you are new to attribution modelling or at the intermediate level, I would strongly suggest you to read the following posts first (if you have not already read them):

  1. Beginners guide to Attribution Modelling
  2. 6 Keys to Digital Success in Attribution Modelling
  3. The Geek Guide to implementing Attribution Modelling

I know attribution modelling is an advanced topic in itself but this post has been developed to take this topic to a whole new level and to talk about things which are rarely discussed in great detail in the analytics world.

 

The Model Comparison Tool

As the name suggest, this attribution tool is used to compare different attribution models to each other.

An attribution model is a set of rules which is used to determine how credit for conversions should be attributed to different marketing channels.

Attribution models can be broadly classified into two categories:

  1. Baseline Attribution Models
  2. Custom Attribution Models

Baseline attribution models are the pre-built attribution models available in Google Analytics. Custom attribution models are user defined attribution models.

Following are the examples of baseline attribution models available in Google Analytics:

  1. First touch attribution model
  2. Last touch attribution model
  3. Linear attribution model
  4. Position based attribution model
  5. Time Decay attribution model
  6. Last Non Direct click attribution model
  7. Last Adwords Click attribution model
  8. Data Driven Attribution model

I won’t be explaining these attribution models (except data driven model) in detail in this post. If you want to learn more about these attribution models (including how to create custom attribution models), then please check out the following two posts:

  1. Google Analytics Attribution Modelling – Beginners Guide
  2. 6 Keys to Digital Success in Attribution Modelling

Through Model Comparison tool you can compare different baseline and custom attribution models to each other. This comparison is carried out to determine how a marketing channel can be valued from different perspective.

For example let us determine how organic search can be valued from different perspective.

Follow the steps below:

Step-1: Click on ‘Model Comparison Tool’ link (under Conversions > Attribution menu) in your Google Analytics View (or profile)

Step-2: Set date range to the last three months or more.

Step-3: Compare the ‘last interaction’ model with ‘last non-direct click’ and ‘time decay’ models.

model-comparison-tool

Step-4: Select ‘Conversions and Value’ from the drop down menu located in the middle of your ‘model comparison tool’ report:

conversion-value

 

Step-5: Check the column named ‘% change in conversion (from last interaction)’ in your ‘model comparison report’ for ‘organic search’:

percent-change-conversion

Form this report you can see that the % of change in conversion for organic search from last interaction model to ‘last non-direct click’ attribution model is 21.61%.

That means that if you use ‘last non-direct click’ attribution model (instead of last interaction model) to distribute credit for conversions to organic search then the ‘organic search’ deserve 21.61% more credit for conversions.

It also means that ‘organic search’ is undervalued by 21.61% under last click attribution model when this model is compared with ‘last non-direct click’ attribution model.

The upward green arrow next to 21.61% indicates positive change in conversions from last interaction model.

Google Analytics make an arrow colored when the change in conversions is 10% or more. If the change is positive and is 10% or more than the arrow gets green color. If the change is negative and 10% or more than the arrow gets red color.

Similarly,

The % of change in conversion for organic search from last interaction model to ‘time decay’ attribution model is 8.60%.

That means that if you use ‘time decay’ attribution model (instead of last interaction model) to distribute credit for conversions to organic search then the ‘organic search’ deserve 8.60% more credit for conversions.

It also means that ‘organic search’ is undervalued by 8.60% under last click attribution model when this model is compared with ‘time decay’ attribution model.

The upward arrow next to 8.60% indicates positive change in conversions from last interaction model. Since the change in conversions is less than 10%, Google Analytics has not made the arrow colored.

 

So what insight we have got from this analysis?

The insight is that overall organic search is undervalued by (21.61 + 8.60)/2 = 15.10%

You can now show this report to your client/boss and demand more budget for organic search campaign.

Note: Don’t take the value of 15.10% too seriously because after all it is just an average value and we all are committed to report and analyse above average.

Conversely, if overall organic search turned out to be overvalued by …%, you know that, your money would be better spend in investing in other marketing channels or finding a new SEO provider.

Similarly, through model comparison tool you can valuate other marketing channels like Paid Search, Email, Display, Social etc.

 

Now you may want to know why I picked these 3 particular attribution models for analysis: Last interaction, last non-direct click and time decay.

I selected last interaction model because this is the default model used in multi-channel funnel reports in Google Analytics.

I selected last non-direct click model because this is the default model used in non-multi-channel funnel reports in Google Analytics.

I selected ‘time decay’ model because it is less crappy than first click, linear, position based and last adwords click attribution models. To know more about why other attribution models are more crappy, please read the post: 6 Keys to Digital Success in Attribution Modelling

But if I have to use the model comparison tool, I would use ‘data driven attribution model’ instead of ‘time decay’ model. You would know the reason in just few minutes.

 

What is Data Driven Attribution Model and why it is incrementally better?

In short this model is somewhat a practical implementation of the attribution model I proposed back in 2011 called Proportional Multi Touch Attribution Model. It seems someone from the Google Analytics Attribution team might be reading my blog posts :)

distribution-credit-conversion

Just like ‘Proportional Multi Touch Model‘, the data driven attribution model assign credit for conversions to different marketing channels/touch points in proportion to their contribution in conversions.

The marketing channel/touch point which assists the most gets the maximum credit for conversion regardless of it being the first touch, last touch or middle touch. All other channels/touches would get credit in proportion to their contribution in the conversion.

Since the assignment of credit for conversions is decided on the basis of the present conversion data and not on the basis of the position of the touch points, the attribution is data driven and hence the model is known as data driven attribution model.

Note: Google used the word ‘impact’ instead of the word ‘contribution’ when it talks about data driven attribution model.

 

The really cool thing about data driven model is that, it automatically assign credit for conversions to different marketing channels/touch points based on your most recent conversion data and some algorithm used by Google. Which means there is no need to assign arbitrary credit for conversions to different channels/touch points any more.

Let us determine how organic search is valued under ‘Data driven attribution model’.

Follow the steps below:

Step-1: Click on ‘Model Comparison Tool’ link (under Conversions > Attribution menu) in your Google Analytics View (or profile)

Step-2: Set date range to the last three months or more

Step-3: Compare the ‘last interaction’ model with ‘last non-direct click’ and ‘data driven’ models.

select-data-driven

Step-4: Select ‘Conversions and Value’ from the drop down menu located in the middle of your ‘model comparison tool’ report.

Step-5: Check the column named ‘% change in conversion (from last interaction)’ in your ‘model comparison report’ for ‘organic search’:

percent-change-conversion2

Form this report you can see that the % of change in conversion for organic search from last interaction model to ‘Data driven’ attribution model is -1.04%.

That means that if you use ‘data driven’ attribution model (instead of last interaction model) to distribute credit for conversions to organic search then the ‘organic search’ deserve 1.04% less credit for conversions.

It also means that ‘organic search’ is overvalued by 1.04% under last click attribution model when this model is compared with ‘data driven’ attribution model.

So what insight we have got from this analysis?

The insight is that overall organic search is still undervalued but now by (21.61 -1.04)/2 = 10.28%

This percentage of 10.28% is much lower than the percentage of 15.10% we got when we didn’t use the ‘data driven model’.But luckily organic search is still undervalued and you can still demand more budget for your organic campaigns.

 

Model Explorer and its use

Mode explorer tool is used to determine how data driven attribution model is assigning credit for conversions to different marketing channels/touch points.

This tool is available under Conversions > Attribution menu:

model-explorer

model-explorer2

Through the report above we can see that data driven attribution model has assigned following credit for conversions to organic search:

Organic search has been assigned 19% credit for conversions when it is the first touch point before a conversion, 31% credit for conversions when it is the second touch point, 40% credit for conversions when it is the third touch point and 41% credit for conversions when it is the last touch point before a conversion

Also note that data driven attribution model is valid only for a particular time period as this model automatically changes with the change in the conversion data. This is the beauty of this attribution model. It is dynamic :)

You can download the data driven attribution model into excel by clicking on the ‘Download the full model’ button at the top right of the ‘Mode explorer tool’.

However the data I get doesn’t make much sense to me. If you however can find some useful insight from this data then please share in the comments below.

 

Introduction to Custom Data Sources and Importing Cost data into Google Analytics

The primary requirement to calculate ROI in Google Analytics is the availability of the cost data in Google Analytics reports.

The cost data is simply the cost of running your marketing campaigns.

For example if you spend £3500 per month on SEO, £1500 per month on Facebook, £1,500 on Affiliate marketing campaign, £2000 on Bing ads then your cost data can be represented by the following table:

cost-data

You need to upload this cost data into your Google Analytics profile so that Google Analytics can calculate ROI of these marketing channels.

If you don’t have cost data in your Google Analytics reports then you can’t calculate ROI of different marketing channels through Google Analytics.

So you have to upload cost data into your Google Analytics profile (or view).

However in order to upload cost data you need to create a custom data source(s) first in your GA profile(s).

Without creating custom data source, you can’t upload cost data into Google Analytics

A custom data source represents one or more external data sources in Google Analytics.

The external data source can be a non-google paid search campaign like Bing ads. The external data source can be Facebook, LinkedIn, twitter, affiliate website or any other data source.

You should create one custom data source for each external data source whose cost data you want to import into Google Analytics.

For example create one custom data source for Bing ads, one for affiliate websites, one for Facebook campaigns and so on.

custom-data-source1

When you create different custom data sources for different external data sources, it becomes easier to manage cost data among different Google Analytics profiles.

For example,

If you want to upload Bing ads cost data and Facebook campaigns cost data into your Google Analytics profile, then you should first create two different custom data sources in your GA profile, one custom data source for Bing ads and one custom data source for Facebook ads.

You can also create a single custom data source for both Bing ads and Facebook ads but then in that case if later you want to delete the Bing ads cost data, it would also cause the Facebook cost data to be deleted from your GA profile reports.

So the best practice is to create one custom data source for each external data source.

 

Each custom data source contains one or more ‘daily upload sources’. A daily upload source represents actual data for a particular date.

Once you create a custom data source, you then need to link it to 1 or more Google Analytics profiles where you want the uploaded cost data to appear.

The uploaded cost data will be available in only those GA profiles that are linked to the custom data source.

Following is the visual summary of custom data sources:

custom-data-source6

Follow the steps below to create a custom data source in your Google Analytics profile:

Step-1: Click on the ‘admin’ link in your Google Analytics profile.

Step-2: Select the ‘web property’ to which you want to upload the cost data.

Step-3: Click on the ‘Custom Data Sources’ link under ‘Custom Definitions’ tab:

custom-data-source2

 Step-4: Click on the ‘New Custom Data Source’ button:

custom-data-source3

 

Step-5: Enter the name for your new custom data source, enter a short description and then select the profiles to which you want to connect this custom data source.You can connect a custom data source to one or multiple Google Analytics profiles:

custom-data-source4

 

Step-6: Once you clicked on the ‘save’ button, you will see a new custom data source like this:

custom-data-source5

The UID is the unique identifier for a custom data source.

Each custom data source you will create will have its own unique UID and you need to use this UID later on to upload cost data into Google Analytics.

Note: You can create upto 25 custom data source for each web property.

Once you have created a custom data source, it can’t be deleted.

All you can do is unlink the custom data source from the GA profile(s) where you don’t want the uploaded cost data to appear.

 

Importing cost Data into Google Analytics

Creating custom data sources is only half the battle won. In order to completely win the battle, you need to actually upload the cost data into Google Analytics. This is the hard bit. You won’t find any ‘upload your cost data’ button in your Google Analytics profile.

In order to upload cost data you will either have to directly use the Google Analytics Management API or you can use a third party tool which would make it easy for you to access this API without any coding. I prefer the latter.

 Following are the third party tools which you can use to upload cost data into Google Analytics:

  1. https://www.gadatauploader.com/ (this is what I use and recommend)
  2. http://www.nextanalytics.com/google-analytics-data-upload/
  3. http://www.analyticscanvas.com/google-analytics-data-upload
  4. http://www.shufflepoint.com/in2ga/

But before you access the GA Management API, you first need to follow the steps below:

Step-1: Make sure that all of your campaigns have got campaign tracking parameters (utm_source, utm_medium, utm_campaign, utm_term, and utm_content). You can learn more about campaign tracking parameters from here.

Step-2: Retrieve cost data for each external data source and store it in a separate CSV file.

Step-3: Format your cost data for each external data source according to cost data import schema as described here.

For example Google Analytics uses ‘ga:source’ schema to identify campaign source, ‘ga:medium’ schema to identify campaign medium and so on.

Following is the example of Bing cost data first in unformatted form and then in formatted form:

formatted-data

As you can see from the screenshot, the formatting of the data is not that hard.

Step-4: Create custom data source for each external data source whose cost data you want to import into Google Analytics.

Step-5: Upload the CSV file for each external data source everyday by using the GA Management API either directly or via a third party tool.

As mentioned earlier, I used the ‘GA Data Uploader’ tool to upload cost data into Google Analytics.

I use this tool because it can automatically upload data from Bing ads every day and you don’t need to format your cost data for any external data source every time, before you upload it. This tool will automatically format the cost data for you. It is very easy to use and you don’t need to do any coding to use the GA Management API.

Note: I didn’t mention importing Google Adwords cost data anywhere in this post so far. This is because you don’t need to go through all this trouble of creating custom data sources and retrieving and formatting cost data in case of Google Adwords.

All you have to do is to link your Google Adwords account to your Google Analytics account, and the cost data will automatically get imported into GA.

 

ROI Analysis in Google Analytics

Once you have imported cost data into your Google Analytics profile, it will automatically get integrated with the website usage data (visits, bounce rate, pageviews, revenue etc), allowing you to do detailed ROI analysis for your marketing campaigns.

You can then see the imported cost data in the following two reports:

  1. Cost Analysis report (under Traffic Source menu)
  2. ROI Analysis report (under Conversions > Attribution menu)

cost-analysis-report

Through the ‘Cost Analysis’ report you can see the Cost Per Click, ROI and Margin of all marketing channels whose cost data you have imported into your Google Analytics profile.

That means you can determine the ROI of Bing ads, Facebook campaigns, Affiliate campaigns, Display campaigns, Email campaigns etc.

The downside of the ‘cost analysis’ report is that all the ROI data is calculated using only one attribution model called ‘Last Non-Direct Click’.

If you want to do ROI Analysis by using the attribution model which is most appropriate for your business then you need to use the ‘ROI Analysis’ report:

ROI-Analysis-Report

Through the ‘ROI Analysis’ report you can determine Cost Per Acquisition (CPA) and Return on Advertising Spend under different attribution models. So instead of just the regular CPA, you can actually determine:

  1. Last Interaction CPA
  2. Last non-direct click CPA
  3. Last Adwords click CPA
  4. First Interaction CPA
  5. Linear CPA
  6. Time Decay CPA
  7. Position Based CPA
  8. Data Driven CPA
  9. or CPA based on any custom attribution model

 ROI-Analysis-Report2

Similarly, you can determine

  1. Last Interaction ROAS
  2. Last non-direct click ROAS
  3. Last Adwords click ROAS
  4. First Interaction ROAS
  5. Linear ROAS
  6. Time Decay ROAS
  7. Position Based ROAS
  8. Data Driven ROAS
  9. or ROAS based on any custom attribution model

Last but not least, when we talk about attribution modelling and multi-channel marketing, we don’t say ‘conversions’, we say something like ‘last click conversions’, ‘first click conversions or ‘data driven conversions’ because that is how Google Analytics report conversions and that is how conversions should be reported.

types-of-conversions

There are around 8 different types of conversions available in Google Analytics reports and one different conversion type for each custom attribution model.

If you have any question or you would like to share your knowledge/expertise then please do so in the comment section below.

Other post you will find informative: How to use Agile Analytics to quickly solve your Conversion problems 

Join over 4000 subscribers!
Receive an update straight to your inbox every time I publish a new article.

 

About the Author:



My business thrives on referrals, so I really appreciate recommendations to people who would benefit from my help. Please feel free to endorse/forward my LinkedIn Profile to your clients, colleagues, friends and others you feel would benefit from SEO, PPC or Web Analytics.

 

 

  • Shyam

    It is really nice post Himanshu regarding Attribution modelling in GA Tool and it’s understandable the entire process with the help of screenshots provided here. Great work!

    • seohimanshu

      Glad you like it.

  • http://salecki.pl/ Mikołaj Salecki

    Hi Himanshu! First of all – great blog – very helpful insights. Sometimes, from somone else’s point of view, one sentence in a post is enough to completely change the way you think.

    Regards,
    Mikołaj Salecki

    • seohimanshu

      Thanks for the kind words.

  • Hadley G. Levat

    Excellent post Himanshu thank you

    • seohimanshu

      Thanks

  • Gerard Rathenau

    Thanks for the update.

    Question:

    I don’t see Model Explorer in my account. Is this function only for selected users?

    That’s why I can’t use the data drive attribution model!

    • seohimanshu

      Model explorer is available only in GA premium at the moment.

      • Gerard Rathenau

        I have a question:

        How can you schedule your external costs daily of weekle from the samen formatted file?

        • seohimanshu

          What do you mean by scheduling your external costs? Do you mean auto uploading cost data everyday? You can do this through API or third party tool.

  • http://sanjose.fortuneinnovations.com/ Steve Wampler

    Great stuff Himanshu.Thanks a lot for sharing this.

  • Hattie Biddlecombe

    I’ve been looking for an explanation like this for ages… so thank you!! :)

    • seohimanshu

      Glad you find it useful.

  • Zach Greenberger

    Great post! Any idea why custom imported cost data isn’t available in the Model Comparison Tool?