The Ultimate Guide to Revenue Attribution

The Ultimate Guide to Revenue Attribution

The Problem Most (If Not All) eCommerce Marketers Face...

In a word, attribution.

However, there’s much more to the true problem than that.

Does this sound familiar?

Your task is to take all of the channels that your brand invests in and figure out how much revenue came from each channel and what the ROI of each channel is.

To start, you log into each vendor dashboard and download their revenue report. Everything looks great, but by the time you get to your third or fourth vendor report, you notice the revenue from each vendor that you’ve analyzed so far already exceeds the total revenue that the store generated as a whole in that timeframe. “What? How?!”

“Okay,” you think, “it must be the attribution model.”

So, you log into your analytics platform to get answers. Only problem is, the numbers STILL don’t even come close to making sense. None of the numbers match up between each of the platforms that you’re analyzing and the analytics software. Some of the channels that report significant revenue only report 1/10th of that revenue in the analytics software. Some channels report little revenue in their own dashboard but higher revenue in the analytics platform. Not to mention “direct” revenue, which is always a question mark.

So you’re left sitting with all kinds of reports, numbers, and dashboards -- much more data than you had access to 10 years ago(!) -- but fewer insights leading to MORE questions. You start to realize that the analytics platform might not indeed be showing you the numbers that you want to see. You start to doubt the reporting provided by your vendors’ dashboards. You start to wonder if you’re even using the correct attribution model!

Then, your boss comes and throws in a curveball: “We ran a pilot campaign with XYZ Software last month. How much incremental revenue did that campaign bring in?”

You’re more confused than ever but you’re responsible for answering these questions and, well,  you can’t deliver a spreadsheet full of question marks. So, you push all of these questions out of your mind, take a deep breath, and default to the numbers provided by the analytics software -- even though you have questions -- figuring that it’s the most trusted source and leaving the attribution issue that you’ve uncovered for another day.

Or, maybe you’re on the other side of the table. You’ve asked for a revenue attribution report and what was handed back to you doesn’t seem right. The numbers seem off. You and your team dive into the numbers and it quickly becomes apparent that there’s a lot more gray area than you expected. There’s many different ways to look at the same data and, at the end of the day, you’re left with more questions than answers and you’re not sure what numbers to trust.

Does that sound pretty close to the way marketing reporting goes at your company? Based on our conversations with hundreds of eCommerce teams, the scenario that we just described happens at about 90% of them, if not more.

Now, back to the problem.

If we analyze this scenario, we actually don’t have a problem at all…

We have THREE problems:

  1. Revenue Reconciliation

  2. Proper Revenue Attribution

  3. Revenue Incrementality

Once we start to decouple these three items, we can much better understand how each of the channels that we leverage affects our reporting.

The Solution

Here’s our guide to tackling the attribution issue.

Step 1. The Importance of Revenue Reconciliation

Most people think they’re getting stuck with revenue attribution, but it’s not actually attribution that’s tripping them up. Revenue reconciliation is actually what’s giving them trouble.

Think about the first part of the scenario we described above. The first thing that you wonder when analyzing a revenue report from a vendor is “did the amount of revenue that they report ACTUALLY flow through each campaign?”

For example, “Did 1,533 sales and $136,437 in revenue actually come after people interacted with that cart abandon modal? Or is the vendor inflating their numbers?”

The problem worsens because the next thing you do is check your analytics platform to see how much revenue they report from that campaign. Almost invariably, the revenue reported by the analytics platform is much lower.

The issue is this: You’re asking “did channel X really influence $Y in revenue” but your analytics platform is giving you the answer to a completely different question!

The question your analytics software is answering is: “given an attribution model and considering all of the channels and campaigns that we currently track, how much revenue ended up as attributed to channel X?”

If you’re wondering about more of the technical details, here’s an explanation: your siloed vendor reports track revenue, but the attribution model in these reports only consider orders that they touched. It’s only deduplicated by orders influenced by the same platform/channel. (Usually, it’s a last touch model. For example, if you click on two different Facebook ads, Facebook will give credit to the last ad you clicked on.) However, your analytics platform deduplicates all orders no matter what channels were interacted with.

Keep in mind that we DO indeed want the answer to the second question above. However, trying to answer it now is getting ahead of ourselves -- we’ll answer that in the Proper Revenue Attribution stage.

During Revenue Reconciliation, all we want to do is verify. This builds trust in the channels that you’re using. Here, all you want to see is the total amount of revenue that each channel/campaign touched (with NO attribution model -- yes, your orders will be duplicated here), just to make sure that the numbers match.

Channel Reconciliation Report

What to do: Generate a table with 3 columns: (1) Order ID, (2) Order Total, and (3) Channel Interaction Log. The Channel Interaction Log shows each marketing channel/campaign that the customer interacted with before placing the order. There’s no limit to the number of channels/campaigns that can be associated with each order (although you probably don’t want to duplicate campaigns for each order -- for example, if someone clicked on three Google ads, you’ll probably only want to track Google AdWords once for their order).


Next, for each channel that you’re interested in, filter out your table to grab only the orders where that channel shows up in the Channel Interaction Log. This gives you the total number of orders and revenue associated with that channel.

Now, we can finally answer the original question: “Did Channel X really drive $Y in revenue?”

Side note: This is a report that is made possible by the AddShoppers Customer Data Platform (CDP). Most other analytics tools can NOT give you this report...or if they can, you have to jump through numerous hoops to get it. For example, you can get this data in Google Analytics but you have to make a custom segment for every marketing campaign and run a report for every segment that you created. This is a huge hassle and you can’t pull these numbers into one report since you can only analyze up to 4 segments at a time.

Interested in seeing this report? Contact us to request a free 30-day true revenue reconciliation & attribution analysis using the AddShoppers CDP.

At this point, you’ll likely want to compare the numbers that you’re seeing in your report against the numbers in each of your vendor dashboards to see how well they match up. You shouldn’t expect them to match up 100%, but they should be fairly close. (See the sidebar below for the most common legitimate reasons that can cause your numbers to still not match up in this report.)

The most common factors that make certain revenue untrackable between analytics platforms and channel reporting include:

  • Cross-device reporting (common in Facebook Ads, for example)
  • Lost or altered tracking tags
  • Improper tagging
  • Difference in attribution windows or methodology
  • Sampled data (common in Google Analytics, for example)

Step 2. Proper Revenue Attribution

By separating revenue reconciliation and revenue attribution into two distinct steps and obtaining your revenue reconciliation report, you’re now ahead of the vast majority of the competition.

Now it’s finally time to tackle your original goal: properly attribute your revenue to each channel that you want to track.

At this point, it’s finally appropriate to discuss attribution models.

What is an Attribution Model?

Most people know what attribution models are and why we need them, but just to sure we’re on the same page, let’s define the term before we move on.

An attribution model takes all of the orders and revenue that your store generated in a given time frame and, according to what you value the most, distributes that revenue among your marketing channels according to their weighted contribution towards generating each order.

Choosing Your Attribution Model

Here are some of the most common attribution models:


Last Click: Gives 100% credit to the LAST channel that the customer interacted with prior to completing their purchase.

First Click: Gives 100% credit to the FIRST channel that the customer interacted with prior to completing their purchase.

Linear: Gives equal credit to every channel that the customer interacted with prior to completing their purchase.

Position Based: Gives more credit to the first and last channels that the customer interacted with prior to completing their purchase. Channels that the customer interacted with between the first and last get the remaining credit, shared equally.

Time Decay: The last channel that the customer interacted with prior to completing their purchase gets the most credit, and every other channel gets a weighted amount of credit based on proximity to the order.


These different attribution models can be a lot to get your head around, so here are a couple example of orders placed at a hypothetical store along with their pre-purchase campaign interaction:

Example #1

  1. Mark searches for “best headphones 2018” and clicks on a Google ad. (Channel interaction = Google)

  2. Mark enters his email on the site to get 5% off his first order. (Channel interaction = Onsite Marketing)

  3. Mark finds some headphones he’s interested in, but isn’t ready to buy so he closes the site.

  4. Two days later, Mark is emailed the products he looked at.

  5. Four days later, Mark’s current headphones stop working so he opens the last email from the store. He clicks through and completes a purchase for $100. (Channel interaction = Email)

Here’s a table showing how each attribution model treats Mark’s order:

Last Click

$0Onsite Marketing

First Click

$0Onsite Marketing


$33.33Onsite Marketing


$20Onsite Marketing

Time Decay

$35Onsite Marketing

Pretty simple, right? Let’s look at a much more complex (but perhaps more realistic!) example:

Example #2

  1. Brittany receives an e-mail from her friend to check out and get $10 off her first purchase. She clicks the link and finds a couple super cute shoes, but she doesn’t purchase anything yet. (Channel interaction = Refer-a-Friend)

  2. Three days later, she sees an ad on Facebook with those super cute shoes and clicks the ad to check them out again. (Channel interaction = Facebook Retargeting)

  3. She’s a little worried about the price, but luckily she got an offer to enter her email for a $15 off coupon, so she does that. (Channel interaction = Onsite Marketing)

  4. It’s time for class, so she checks her email to make sure the $15 coupon code is there so she’ll have that if she wants to come back and buy the shoes later.

  5. After class, she remembers those shoes so she goes back to to look some more. (Channel interaction = Direct)

  6. She decides she needs those shoes yesterday, so she goes back to her email to find the coupon code. She finds that $15 off code and clicks on the email to go back to the site. (Channel interaction = Email)

  7. Always the savvy couponer, Brittany knows that there might be a better coupon code out there. She searches Google for “ coupons” and sure enough, she finds a $20 off coupon code at a coupon code site. (Score one, Brittany. Score one, coupon affiliate. Score negative one, you.) (Channel interaction = Affiliate)

  8. Brittany completes her purchase for $85.

Here’s a table showing how each attribution model treats Brittany’s order:

Last Click

$0Facebook Retargeting
$0Onsite Marketing

First Click

$0Facebook Retargeting
$0Onsite Marketing


$14.17Facebook Retargeting
$14.17Onsite Marketing


$4.25Facebook Retargeting
$4.25Onsite Marketing

Time Decay

$5.95Facebook Retargeting
$8.50Onsite Marketing

See how different each attribution model is? See how complicated this gets really quickly?

Remember, we’re only looking at one order here! This gets increasingly more complicated the more orders you analyze. (And, we’re not even considering “invisible” offline sources like TV, radio, etc!)

However, you’ll have to choose one primary attribution model to work with, so carefully consider what you value the most when making a decision. You can also create a custom attribution model if necessary.

The good news is that at this point, you’re 99% done. The only thing you need to do is generate your report based on your chosen attribution model and you’re off to the races!

Want to make sure you’re getting an accurate revenue report? Contact us to request a free 30-day true revenue reconciliation & attribution analysis using the AddShoppers CDP.

Step 3. Revenue Incrementality

From one man shops to Fortune 500 companies, one question is inevitably asked:  

“How do I know if a customer would have placed an order without ____________?”

Where the blank is commonly filled with things like:

  • “Engaging with that cart abandon campaign”

  • “Viewing or clicking on that retargeting ad”

  • “Opening or clicking that triggered email”

  • “Using that coupon code”

  • Vendor XYZ

In other words, "what's incremental?"

Now, going into an in-depth discussion on incremental revenue is beyond the scope of this guide, however this is a very common question so we wanted to offer a few ideas to provoke some thinking.


The issue with many of the marketing strategies that we use today is that they don’t always introduce a customer to a brand (and those strategies that do can take a long time to actually result in a conversion). In the early days of digital marketing, just about everything we worked with was traffic generation. Campaigns were designed to drive traffic from an external site to your own site (most commonly using ads, of course).

Today, most brands use many marketing campaigns that don’t drive net new eyeballs to the website, but rather are interactions that happen after the shopper comes to your website. To borrow a term from Google, these interactions are frequently referred to as micro-moments. In eCommerce, popular marketing channels like email marketing, onsite marketing (modals, triggered offers, etc), and retargeting are all important because they drive micro-moments.

However, the metrics and tracking from the older days still persist today, which is why many marketers have a hard time understand how to measure the effectiveness of their non-traffic-driving campaigns (which then, in turn, makes measuring their traffic-driving difficult as well).

To illustrate it

In the early days, you compared (a) traffic sources to (b) orders and revenue. The website was considered a static object that didn’t vary (outside of some basic sitewide A/B testing).

Now, your task is to compare (a) traffic sources to (b) micro-moments to (c) orders and revenue.

That’s why we’re having more trouble with incremental revenue today -- there’s an extra variable that we have to deal with now: micro-moments!

View Through Conversions

The final piece to the puzzle is View Through Conversions. If you’ve ever run any kind of online ad campaign (which we’re guessing you have), you’re familiar with View Through Conversions (VTC). A VTC happens when someone views one of your ads, but does not click on it, and subsequently places an order on your website.

Most marketers place very little or no value on View Through Conversions because the number of VTCs is usually quite high (especially with retargeting ads). However, that decision generally stems from two factors:

  1. The lack of knowledge about the true value of a VTC.

  2. The lack of hard evidence proving that the ad assisted in the conversion. Clicks are much easier to prove assistance in the revenue path because the user shows intent with the ad by clicking on it.

If we challenge this thinking, it becomes easy to see where there are some holes in this practice.

For example, have you ever been reminded by an ad that you need to buy something (or complete your purchase online) but you don’t click on the ad and return to the site by another means? Let’s say that upon seeing the ad, you’re reminded of a $10 off coupon code that you have sitting in your email. So, you go back into your email to click back to the site rather than through the ad.

Or, maybe the ad reminds you that a friend was going to place an order at that site, so you message them to ask if they had ever placed their order.  They had completely forgot about it, so they then place it shortly after talking to you.

Or, yet another example: have you ever seen an ad which reminded you to buy something, but you couldn’t purchase it at the time? However, you then remember about it later and you type the brand name into Google (or just type their domain directly in), click through to the site, and then finish your purchase.

All of these situations describe a View Through Conversion. While no one would agree that the retargeting ad was solely responsible for generating the conversion, most people can agree that it was a micro-moment that played a part in bringing the customer back to complete their order.

The challenge isn’t in seeing the partial value in the VTC, it’s in measuring the value. (If you can’t measure the value, then it gets zero credit!)

While there are no perfect methods to measuring the value of VTCs, here is our favorite, written by Alex Czarto:

A/B Testing vs a Blank Ad To Calculate VTC Value



  1. Create 2 different but equal non-overlapping campaigns

  2. Campaign A will serve your “normal” ad and Campaign B will serve either a completely blank creative or a Public Service Announcement ad (in our case it was an ad for the SPCA)

  3. Run both campaigns for long enough to get statistically significant results

  4. Do the math:


Real Life Example

Let’s say you run this campaign and you get the following results:

Campaign A
[Default Ad]
Campaign B
[Blank Ad]
Impressions 99,467 97,412
View Through Conversions 329 261
View Through Revenue $37,910.67 $28,613.43

Valid VTCs = (329 – 261) / 329 = 20%

This means that only 1 in 5 View Throughs actually assisted with conversions — the other 80% had no effect and should be ignored. When you’re evaluating your retargeting results, you should only count 20% of the sales and revenue reported by the ad network. For example: if the network shows $100,000 in view-through revenue, you’ll only count $20,000.

Did you enjoy The Ultimate Guide to Revenue Attribution? Download the PDF version so you can keep it and pass it around to colleagues, friends, and anyone else that would find it interesting.