Most founders know how many visitors they get. Far fewer know which of those visitors pay. Yet that's the only number that tells you where to spend your next hour or your next dollar. This guide explains how revenue attribution works, which model to pick, and how to set it up in an afternoon.
Traffic is not the goal
Imagine two channels. Your SEO blog sends 4,000 visitors a month; a small newsletter sponsorship sends 300. On a traffic chart, SEO wins by a mile. But if the blog brings 2 customers and the newsletter brings 6, the story flips. Without revenue next to traffic, you would double down on the wrong channel.
What attribution actually means
Attribution connects a payment to the marketing touchpoints that led to it. In practice you need three things:
- A visitor id that survives across pages and sessions (a first-party cookie).
- The source of each visit: referrer, UTM parameters, landing page.
- A link between the payment and that visitor id, usually checkout metadata.
Pick an attribution model
First touch credits the channel that brought the visitor the very first time. It answers "where do my customers discover me?" and is the best default for small startups, where most buyers convert within a few visits.
Last touch credits the final visit before the purchase. It tends to over-credit "Direct" and branded search, because people often come back by typing your URL when they're ready to buy.
Multi-touch models spread the credit. They're useful with long sales cycles and big budgets, but they're hard to reason about. Start simple; look at the full customer journey when you need the nuance.
Set it up in three steps
- Track visits. Install a script that stores a visitor id and records referrers and UTM parameters. With DataEasy that's one script tag.
- Pass the visitor id to checkout. When you create a Stripe, LemonSqueezy or Polar checkout, read the
dataeasy_visitor_idcookie on your server and add it to the metadata (Stripe example). - Receive payments by webhook. Your payment provider notifies your analytics tool when a payment succeeds, renews or is refunded, and it's matched to the visitor.
Reading the results
Once payments flow in, look at three numbers per channel, not one:
- Revenue: the absolute money. Good for deciding what to protect.
- Conversion rate: the share of visitors who pay. Good for judging traffic quality.
- Revenue per visitor: revenue divided by visitors. The fairest way to compare a huge channel with a tiny one (more on this metric).
Tag every campaign link with UTM parameters so paid ads, newsletters and partnerships don't blend into "Direct". Our UTM guide has a naming convention you can copy.
Common pitfalls
- Forgetting renewals: attribute subscription renewals to the original visitor, or your best channels look weaker over time.
- Ignoring refunds: a channel that brings buyers who refund isn't a good channel.
- Judging too early: wait for a few dozen conversions per channel before cutting one.