← Back to Blog
revenue attributionmarketinganalytics tips

Which Marketing Channel Actually Drives Revenue? (Here's How to Find Out)

Traffic metrics don't tell you which channels make money. Here's how to connect your analytics to your payment processor and answer the question that actually matters.

EngageTrack Team··6 min read

You check your analytics every Monday. Organic search sent 2,400 visitors. Twitter sent 800. Your newsletter drove 1,100 clicks. A Hacker News post sent 600.

Here's the question your analytics tool almost certainly cannot answer: which of those channels made you money?

Not which sent the most visitors. Not which had the best bounce rate. Which one caused people to open their wallets.

For most founders, this is a complete blind spot — and it leads to some genuinely bad decisions.

The Traffic-Revenue Gap

The most common mistake in early-stage marketing is optimizing for traffic when you should be optimizing for revenue. It's not that traffic doesn't matter — it's that traffic is a proxy metric, and proxies mislead you.

Here's a realistic example. Suppose you run a SaaS product with this traffic breakdown over the last 30 days:

ChannelSessions
Organic Search4,800
Twitter/X2,200
Direct1,400
Newsletter900
Hacker News180

Looking at this, organic and Twitter seem like your strongest channels. So you invest more in SEO and keep posting on Twitter.

But here's what it looks like when you add revenue data:

ChannelSessionsConversionsRevenueRev / Session
Organic Search4,80019€950€0.20
Twitter/X2,2004€200€0.09
Direct1,40018€1,260€0.90
Newsletter90014€980€1.09
Hacker News1808€560€3.11

Your newsletter is generating 12x the revenue per visitor that Twitter is. Hacker News — which sent the fewest visitors by far — generated more total revenue than Twitter and almost as much as organic search.

If you're optimizing based on traffic alone, you are almost certainly deprioritising your best channels.

Why Most Analytics Tools Can't Answer This

The reason this data gap exists is structural: analytics tools track sessions, and payment processors track payments. They're separate systems with no connection between them.

When someone converts in Stripe, your Plausible or Fathom dashboard doesn't know about it. The Stripe dashboard knows the payment happened but has no idea which session on your website preceded it.

Google Analytics can bridge this gap with e-commerce tracking — but it requires significant setup, uses cookies (which gets blocked), and still falls apart for users who clear cookies or switch devices between visit and purchase.

The clean solution is a tool that receives payment webhooks and matches them directly to analytics sessions.

How Revenue Attribution Works

When attribution is set up properly, here's what happens:

  1. A visitor arrives on your site from Hacker News. The analytics tool records: session start, referrer = news.ycombinator.com, channel = referral, visitor ID = v_8a72kx.

  2. The visitor browses, reads your pricing page, starts a trial.

  3. Seven days later, they convert to paid — directly this time, so the referrer is empty.

  4. Stripe fires a payment_intent.succeeded webhook. If the visitor ID was passed in the payment metadata, the analytics tool reads v_8a72kx and links the €49 payment to the original Hacker News session.

  5. The Hacker News row in your dashboard gets +1 conversion and +€49 revenue.

Without the visitor ID in payment metadata, the tool falls back to same-session attribution (works for fast converters) or first-touch attribution (links the payment to the oldest known session for that visitor).

Setting Up Revenue Attribution in EngageTrack

Step 1: Connect your payment provider.

In EngageTrack's dashboard, go to Settings → Integrations. Connect Stripe, LemonSqueezy, Paddle, or Polar. For Stripe, it's an OAuth connection — about 30 seconds. For others, you paste in an API key and EngageTrack registers the webhooks automatically.

Step 2: (Recommended) Pass the visitor ID to your checkout.

For the most accurate attribution — especially for products with longer sales cycles — include the EngageTrack visitor ID in your payment metadata:

// In your checkout initiation code
const visitorId = engagetrack.getVisitorId();
 
const session = await stripe.checkout.sessions.create({
  // ... your usual params
  metadata: {
    engagetrack_visitor_id: visitorId,
  },
});

This creates a hard link between the payment and the originating session, regardless of how many days passed in between.

Step 3: Watch the revenue columns appear.

Within minutes of your next successful payment, your Traffic Sources table gains revenue columns: total revenue, conversion count, and revenue per session. Filter by date range, segment by device or country, and drill into individual visitor journeys.

What To Do With This Data

Once you can see revenue by channel, a few decisions become obvious:

Kill the channels with high traffic, low revenue. If a channel sends 2,000 visitors/month and €80 in revenue, it's costing you attention and possibly money (if you're paying for it). Cut or deprioritize it.

Double down on high-RPV channels. If newsletter subscribers convert at 10x the rate of Twitter visitors, write more emails. If Hacker News sends high-RPV visitors, show up there more consistently.

Use conversion rate to separate the traffic quality problem from the product problem. If every channel has low conversion rates, the issue might be your pricing page or onboarding — not the traffic source. If one channel has dramatically higher conversion rates, study what makes those visitors different.

Track LTV by acquisition channel. Revenue at first conversion is one thing. Lifetime value by channel is the real number. A channel that brings in customers who churn after one month is worse than one bringing fewer customers who stay for two years.

The Question Behind the Question

The reason revenue attribution matters isn't just about knowing which channels to invest in. It's about having a reliable feedback loop.

Most marketing feels like throwing things at a wall. You post on Twitter, you write a blog post, you run an ad campaign — and you watch aggregate metrics go up or down without knowing which thing caused what.

Revenue attribution replaces that fog with signal. When you can see that a specific post, campaign, or channel generated a specific amount of revenue, you can iterate on what works and stop repeating what doesn't.

That's the difference between marketing as guesswork and marketing as a process.


EngageTrack connects your analytics to Stripe, LemonSqueezy, Paddle, and Polar — so you can see revenue by channel in the same dashboard as your traffic data. Start your free 14-day trial — no credit card required.

Related Articles