← Back to Blog
lemonsqueezyrevenue attributionanalytics tipsintegrations

LemonSqueezy Analytics: How to Track Revenue by Traffic Source

See which channels drive LemonSqueezy sales. Connect revenue to traffic sources without cookies.

EngageTrack Team··8 min read

LemonSqueezy analytics tells you how much money you made. It does not tell you where the buyers came from.

You can see that you sold 14 licenses this week for $840. You cannot see whether those buyers came from your Twitter thread, your blog post, your YouTube video, or a random Reddit comment. LemonSqueezy's dashboard shows sales data in isolation — revenue, refunds, subscription counts — but nothing about the traffic that preceded the purchase.

This is the acquisition gap that every digital product creator hits eventually. You know the money came in, but you have no idea which of your marketing efforts produced it. EngageTrack closes that gap by connecting LemonSqueezy payment events to your traffic sources, so every dollar of revenue is attributed to the channel that drove it.

Why Does LemonSqueezy's Built-In Analytics Fall Short?

LemonSqueezy is excellent at what it was built for: selling digital products without the complexity of Stripe. It handles checkout, licensing, subscriptions, tax compliance, and payouts. The analytics it provides are sales-side metrics: revenue over time, sales by product, subscription counts, and refund rates.

What LemonSqueezy does not have — and was never designed to have — is a tracking pixel on your website. It has no concept of sessions, referrers, UTM parameters, or traffic sources. It sees the checkout event, not anything that happened before the buyer clicked "Buy."

This means you can answer "how much did I make this month?" but not "what marketing activity produced that revenue?" Those are fundamentally different questions, and LemonSqueezy only answers the first one.

How Most Creators Handle Attribution Today

Without proper tooling, creators typically fall into one of three approaches:

1. Manual UTM spreadsheets. Create unique URLs for every channel, track clicks in a spreadsheet, and manually cross-reference with LemonSqueezy sales timestamps. This works for the first few sales. It breaks down completely at scale, misses organic traffic, and requires discipline that erodes over time.

2. Google Analytics e-commerce tracking. Set up GA4 with custom e-commerce events. This requires cookies, a consent banner, complex event configuration, and still does not give you a clean "revenue by channel" view without custom reports in Looker Studio. Most creators give up during setup.

3. No attribution (flying blind). The most common approach. Just keep creating content across all channels and hope something works. Occasionally check if sales correlate with a big marketing push, but never with any precision.

None of these approaches give you a reliable, automated answer to "which channel produced this revenue?"

ApproachSetup TimeAccuracyMaintenanceScales?
UTM spreadsheetsHoursLow — misses organic, breaks with link shortenersWeekly manual workNo
GA4 e-commerceHoursMedium — consent opt-outs lose 30-50% of dataOngoing config maintenanceSort of
No attributionNoneZeroNoneN/A
EngageTrack + LemonSqueezy5 minutesHigh — cookieless, no consent lossNoneYes

How EngageTrack Connects to LemonSqueezy

The setup takes about five minutes. Here is the complete process:

Step 1: Install the EngageTrack Tracking Script

Add the script tag to every page of your website — your marketing site, landing pages, and blog. One line in your <head>:

<script
  defer
  data-site-id="YOUR_SITE_ID"
  src="https://cdn.engagetrack.net/sdk.js"
></script>

The script is 3KB gzipped, loads asynchronously, and does not set any cookies. No consent banner needed.

Step 2: Connect LemonSqueezy in EngageTrack

Go to Settings > Integrations > LemonSqueezy in your EngageTrack dashboard. Paste your LemonSqueezy API key.

EngageTrack automatically registers the necessary webhooks in your LemonSqueezy account. You do not need to manually configure webhook URLs or select events. The integration handles order_created, subscription_created, subscription_payment_success, and order_refunded events automatically.

Step 3: (Optional) Pass Visitor ID for Maximum Accuracy

For the highest attribution accuracy — especially if buyers might visit your site today and purchase days later — pass the EngageTrack visitor ID in your checkout URL:

const visitorId = engagetrack.getVisitorId();
 
// When building your LemonSqueezy checkout URL
const checkoutUrl = `https://yourstore.lemonsqueezy.com/checkout/buy/your-product-id?checkout[custom][engagetrack_visitor_id]=${visitorId}`;

EngageTrack reads this from the webhook payload and creates a direct link between the payment and the originating session. Without this step, EngageTrack still attributes revenue using email matching and same-session attribution — but the visitor ID approach works across devices and long time gaps.

Step 4: Verify

Make a test purchase (LemonSqueezy has test mode). Within seconds, you should see the revenue appear in your EngageTrack dashboard attributed to the traffic source of your test visit.

What Revenue Attribution Looks Like for a Digital Product Creator

Here is a realistic example. Say you sell a UI component library for $79 (one-time) and a pro version for $19/month (subscription). After running EngageTrack for 30 days:

ChannelSessionsOne-Time SalesSubscriptionsRevenueRev / Session
Twitter/X4,20083$689$0.16
Blog (organic)2,800189$1,593$0.57
YouTube1,400126$1,062$0.76
Reddit68052$433$0.64
Product Hunt3,100224$1,814$0.59
Direct90063$531$0.59

The insight that changes your strategy: Twitter sends the most traffic by far but has the lowest revenue per session. YouTube sends a third of the traffic but produces more than twice the revenue per session. If you have limited time to create content, YouTube is the better investment.

Product Hunt had a great launch (high absolute revenue), but the traffic is one-time. Blog content keeps compounding. These are decisions you cannot make from LemonSqueezy's dashboard alone.

What About LemonSqueezy Subscriptions vs. One-Time Purchases?

EngageTrack handles both. One-time purchases from order_created webhooks are recorded at their full value. Subscription payments from subscription_payment_success are recorded each billing cycle.

For subscriptions, each monthly payment is attributed to the original acquisition source. If a customer found you through YouTube in January and pays $19/month through June, all six payments are attributed to YouTube. This gives you the true LTV by channel — not just the initial purchase.

Refunds are also captured and subtracted from the attributed channel's revenue total.

Going Beyond Revenue: Tracking the Full Funnel

Once the LemonSqueezy integration is live, you can set up the complete acquisition funnel in EngageTrack:

Goal: Landing page visit. Track visits to your product landing page as the top of funnel.

Goal: Checkout click. Fire a custom event when someone clicks your "Buy" button:

document.querySelector("#buy-button").addEventListener("click", () => {
  engagetrack.track("checkout_click", { product: "pro-license" });
});

Revenue: Payment completed. Automatically tracked via the LemonSqueezy webhook integration.

Now you have a three-step funnel: landing page > checkout click > payment. Filter by traffic source and you can see exactly where each channel drops off. Maybe Twitter visitors click "Buy" at the same rate as YouTube visitors but abandon checkout more often. That is a different problem than low traffic — and requires a different solution.

See the funnels documentation for setup details.

FAQ

Does it work with LemonSqueezy subscriptions?

Yes. EngageTrack captures both subscription_created and subscription_payment_success events. Each recurring payment is attributed to the traffic source that originally brought the customer. You get a true picture of recurring revenue by channel, not just first-purchase attribution.

What about one-time purchases?

One-time purchases via order_created are fully supported. The payment amount is attributed to the traffic source of the session where the buyer originally found your site. Refunds are automatically subtracted.

How long does setup take?

About five minutes. Install the tracking script (1 minute), paste your LemonSqueezy API key in EngageTrack settings (1 minute), and EngageTrack auto-registers the webhooks. Optional visitor ID passthrough in your checkout URL adds another 5 minutes if you want maximum accuracy for delayed purchases.

Do I need to configure webhooks in LemonSqueezy manually?

No. When you paste your API key, EngageTrack uses the LemonSqueezy API to automatically register the necessary webhook endpoints. You do not need to visit the LemonSqueezy webhook settings at all.

Can I see which specific product variants sell best from which channel?

EngageTrack records the product name and variant from the webhook payload. You can filter revenue data by product to see which channels drive sales for each product in your catalog.


LemonSqueezy tells you how much money you made. EngageTrack tells you where the buyers came from. Connect the two in five minutes and start making marketing decisions based on revenue, not guesswork. Start your free 14-day trial — no credit card required.

For integration details, see the LemonSqueezy setup guide and getting started docs.

Related Articles