← All posts

Revenue · Attribution · Growth

Revenue attribution: how to see which traffic source actually makes you money

Pageviews tell you who showed up. Revenue attribution tells you who paid. A plain guide to tying every sale back to the channel, campaign and page that brought it.

NoirTrack team · · 4 min read

Traffic sources flowing into a revenue chart, with one source glowing brighter than the rest

Most analytics dashboards answer one question well: how many people visited. That is useful, but it is not the question that keeps a business alive. The question that matters is which visitors paid you, and where did they come from?

That is what revenue attribution answers. It connects each sale to the visit that led to it, so you can rank your traffic sources by money instead of by clicks.

Why visits are a misleading number

Imagine two channels. Reddit sends you 4,000 visitors a month. A small newsletter sends you 300. On a normal dashboard, Reddit looks like the winner by a mile.

Now add revenue. The Reddit visitors bought 6 times for $180. The newsletter readers bought 22 times for $1,540. The newsletter is worth eight times more, from a fraction of the traffic.

Without attribution you would double down on Reddit and quietly starve the channel that pays your bills. This happens all the time, because visitor counts reward whatever is loud, not whatever converts.

How revenue attribution works

The idea is simple. You need two things to meet:

  1. The visit: where the person came from (a search engine, a post, an ad, a newsletter link), which pages they saw, and when.
  2. The payment: the sale from your payment provider, with the amount and the customer.

Attribution links them by recognising that the person who paid is the same person who visited. Once that link exists, every report you already use (sources, campaigns, countries, pages) can show money next to visitors.

Matching a sale to a visitor

There are three ways to make the match, from most to least precise:

  • Pass the visitor id at checkout. The tracking script gives each visitor an id. Send it with the checkout (for example in Stripe metadata) and the sale is tied to that exact visitor.
  • Match by email. If the buyer's email was seen earlier (a signup form, for example), the sale is matched to that visitor.
  • Count it as unknown. If neither works, the sale still counts toward your revenue, filed under Direct / Unknown, so totals stay correct even when the source is missing.

In NoirTrack you connect your payment provider once (Stripe, Paddle, Polar, Lemon Squeezy, Dodo Payments or Creem) and sales sync on their own. For anything else there is a Payment API. The full setup is in How revenue tracking works.

First touch, last touch, and why it matters

A customer might find you through a Google search, leave, come back a week later from your newsletter, and then buy. Which channel gets the credit?

  • First touch credits the channel that introduced them (Google here). It tells you what brings new people in.
  • Last touch credits the channel right before the sale (the newsletter). It tells you what closes.

Neither is wrong. They answer different questions. For small teams, first touch is usually the more useful default, because the hardest and most expensive part of growth is getting discovered at all. NoirTrack attributes revenue to the first touch, and the visitor profile shows every later visit if you want the full story.

What to do with the numbers

Once revenue sits next to traffic, a few decisions become obvious:

  1. Rank sources by revenue, not visitors. Sort your sources by money. The top three are where your next hour of effort should go.
  2. Check revenue per visitor. A source with fewer visitors but higher revenue per visitor is cheaper to grow. Double what works before chasing what is big.
  3. Cut what never converts. A campaign with lots of clicks and no sales after a month is telling you something. Stop paying for it.
  4. Tag every link you share. Untagged links all blur into Direct or a generic referrer. UTM parameters keep each post, email and ad separate.

Common mistakes

  • Looking only at the last 7 days. Many customers take weeks to decide. Look at 30 or 90 days before judging a channel.
  • Forgetting refunds. A channel that sells a lot and refunds a lot is not a good channel. Make sure refunds subtract from revenue.
  • Letting bots into the denominator. If 40% of your "visitors" are bots, every conversion rate you calculate is wrong. More on that in why bot traffic is lying in your analytics.

Frequently asked questions

What is revenue attribution?

Revenue attribution connects each sale to the visit that led to it, so you can see how much money every traffic source, campaign and page brought in, not just how many visitors it sent.

Do I need to change my checkout to track revenue?

No. Connecting your payment provider is enough, and sales are matched by email when possible. Passing the visitor id at checkout makes the match exact, which is worth doing if you can.

What is the difference between first touch and last touch attribution?

First touch credits the channel that first brought the customer to your site. Last touch credits the channel they used right before buying. First touch shows what drives discovery, last touch shows what closes the sale.

Does revenue attribution work without cookies?

Yes, with a trade off. In cookieless mode a returning visitor is counted as new each day, so a sale made on a later day is matched by email or counted as unknown instead of being tied to the first visit.