Most analytics tools will tell you how many visitors you got from each marketing channel. What they won't tell you is how much money each channel made you.
Those are very different numbers. A channel that sends 5,000 visitors and 2 conversions is worse than one sending 200 visitors and 15 conversions. If you're optimizing for traffic, you're optimizing for the wrong thing. EngageTrack solves this by connecting your payment processor directly to your analytics — so every dollar of revenue is attributed to the channel that earned it.
This post breaks down how marketing attribution actually works, why most setups get it wrong, and what you need in place to make decisions based on revenue — not pageviews.
What Is Marketing Attribution?
Attribution is the process of assigning credit for a conversion (a sale, a signup, a subscription) to the marketing channels that influenced it.
Simple in theory. Complicated in practice, because almost no customer converts on their first interaction. They might find you through Google, leave, see a tweet three days later, click through, sign up for a trial, and then convert a week after that. Which channel gets the credit?
The answer depends on your attribution model.
Which Attribution Model Should You Use?
1. First-Touch Attribution
All credit goes to the first channel that brought the visitor to your site.
Best for: Understanding where awareness comes from — which channels introduce people to your product for the first time.
Problem: Completely ignores everything that happened between discovery and purchase. A visitor who found you through organic search in January and converted after seeing your newsletter in March would credit organic search 100%.
2. Last-Touch Attribution
All credit goes to the last channel the visitor interacted with before converting.
Best for: Understanding what closes deals — what's the final nudge before someone buys.
Problem: Systematically undervalues top-of-funnel channels. Your blog post that drives 80% of your awareness gets zero credit because most readers come back later through a direct visit or branded search.
3. Linear (Multi-Touch) Attribution
Credit is split equally across every touchpoint in the journey.
Best for: Getting a fairer picture across the full funnel. No single channel gets all the glory or all the blame.
Problem: Treats all touchpoints as equally valuable, which they almost certainly aren't. A Twitter impression and a pricing page visit aren't the same kind of signal.
4. Data-Driven Attribution
Credit is distributed based on which touchpoints statistically correlate with conversion. Requires large datasets and often a dedicated analytics platform.
Best for: Enterprise marketing teams with thousands of conversions per month.
Problem: Overkill for most SaaS founders and indie hackers — and a black box you can't inspect.
What Do Most Founders Actually Need?
For most early-stage products, first-touch + last-touch together gives you 90% of the insight you need without any statistical complexity:
- First-touch tells you where to invest for growth (what brings new people in)
- Last-touch tells you what closes (what tips people over the edge)
The gap between the two is where your nurture and re-engagement content lives.
Why Is Your Analytics Tool Missing Revenue Data?
Standard cookie-free analytics tools (Plausible, Fathom, Simple Analytics) track sessions and referrers — but they have no connection to your payment processor. So when someone converts in Stripe, those tools have no idea which session led to it.
Here's what that looks like in practice:
| Tool | What You See | What You're Missing |
|---|---|---|
| Plausible / Fathom | Sessions by source, bounce rate, pageviews | Which sources drove actual purchases |
| Google Analytics (GA4) | Everything — but requires complex e-commerce setup | Revenue data if you haven't set up GA4 e-commerce correctly |
| Stripe Dashboard | Revenue, MRR, churn | Where those customers came from |
| EngageTrack | Sessions, sources, goals, funnels, AND revenue | Nothing — revenue attribution is built in |
The revenue data lives in Stripe. The traffic data lives in your analytics tool. They never talk to each other — unless you build the bridge. EngageTrack is that bridge.
How Does Revenue Attribution Work in EngageTrack?
When a visitor lands on your site, EngageTrack assigns them a session with a visitor ID and records the referrer, UTM parameters, and channel.
When they complete a checkout (Stripe, LemonSqueezy, Paddle, or Polar), EngageTrack matches the payment event back to the originating session using one of four methods, in priority order:
- Visitor ID match — the most accurate. If the checkout process includes the visitor ID in payment metadata, it's a direct link.
- Customer email match — if the email used at checkout matches an identified visitor, attribution follows.
- Same-session attribution — if checkout happens in the same browser session as the visit, it's attributed to that session's source.
- First-touch fallback — if none of the above apply, EngageTrack attributes the conversion to the visitor's first recorded session.
The result looks like this in your dashboard:
| Channel | Sessions | Conversions | Revenue | Revenue per Session |
|---|---|---|---|---|
| Organic Search | 4,210 | 38 | €2,140 | €0.51 |
| Direct | 1,890 | 22 | €1,560 | €0.83 |
| Twitter/X | 820 | 6 | €420 | €0.51 |
| Hacker News | 340 | 11 | €770 | €2.26 |
| Paid (Google) | 1,100 | 4 | €200 | €0.18 |
This table would completely change where you invest your time and money. Hacker News drives 5x the revenue per session of paid Google ads, despite sending far fewer visitors. You'd never know that from a standard analytics dashboard.
How Do You Set Up Revenue Attribution?
Step 1: Install the tracking script. One <script> tag in your <head>. See the getting started guide for framework-specific examples.
Step 2: Connect your payment provider. EngageTrack connects to Stripe, LemonSqueezy, Paddle, and Polar via webhooks. The integration takes about 5 minutes — you paste in an API key and EngageTrack handles the rest. For Stripe-specific details, see the Stripe Checkout integration docs.
Step 3: (Optional) Pass the visitor ID in checkout metadata. For the most accurate attribution, add the EngageTrack visitor ID to your payment metadata before checkout:
const visitorId = engagetrack.getVisitorId();
// Stripe example — pass to your backend before creating a PaymentIntent
const paymentIntent = await stripe.paymentIntents.create({
amount: 500,
currency: "eur",
metadata: {
engagetrack_visitor_id: visitorId,
},
});That's it. You'll start seeing revenue columns populate in your analytics dashboard within minutes of your first successful payment.
What Is the One Number That Should Drive Every Marketing Decision?
Once you have revenue attribution working, the most important number on your dashboard is Revenue per Visitor (RPV) — the average amount of revenue generated per visitor from a given channel.
RPV tells you, at a glance, which channels are worth scaling and which are consuming time and money for little return. A channel with high traffic and low RPV is a vanity metric trap. A channel with modest traffic and high RPV is where you should double down.
Frequently Asked Questions
What payment providers does EngageTrack support for revenue attribution?
EngageTrack supports Stripe, LemonSqueezy, Paddle, and Polar. All four can be connected simultaneously, and revenue from all providers appears in a single unified dashboard attributed to the same traffic sources.
Do I need to modify my checkout code to use EngageTrack?
No. EngageTrack works out of the box with basic session-based attribution. For maximum accuracy on longer sales cycles, you can optionally pass the EngageTrack visitor ID in your payment metadata — a single line of code. This is recommended but not required.
How is EngageTrack different from GA4's e-commerce tracking?
EngageTrack receives payment data directly from your payment provider via webhooks. There is no client-side e-commerce event setup, no cookie dependency, and no data loss from consent opt-outs. GA4 requires you to fire purchase events from the browser, which means revenue data is subject to cookie consent rates and ad blockers.
Can EngageTrack attribute revenue for trial-to-paid conversions?
Yes. When a visitor starts a trial and converts to paid days or weeks later, EngageTrack links the payment back to the original session using visitor ID matching, email matching, or first-touch fallback. The revenue is attributed at actual payment time, not at trial start.
Does revenue attribution work without cookies?
Yes. EngageTrack does not set any cookies. Attribution is handled entirely server-side through webhook matching. This means attribution accuracy is not affected by cookie consent banners, ad blockers, or browser privacy settings.
Want to see which channels are actually driving revenue for your product? Start your free 14-day trial at engagetrack.net/register — no credit card required, and Stripe integration takes 5 minutes.