Paste a read-only Stripe key (or plug in any of a dozen providers) and Datalenk ties every visit, campaign and page to real revenue and lifetime value, by channel. Stop optimizing traffic, start optimizing profit.
Your analytics knows where visitors come from. Your payment processor knows how much you made. Neither connects the two, so you cannot say which channel brings profitable customers. Datalenk closes that gap: connect your payments, and every visit is tied to what it is worth.
Datalenk attributes revenue and lifetime value to the exact source that produced each paying customer: the channel, the campaign, the page, the search query. "Reddit sent 4,000 visits" becomes "Reddit sent 4,000 visits and $6,200 in new MRR, at a cost of zero." Your reports stop measuring traffic and start measuring profit.
Concretely, you get:
The one thing worth knowing. If a visitor discovers you on Monday and pays on Thursday, cookieless stitching alone will not recognize them. Two honest options: switch on the Persistent layer (opt-in, consent required), or call datalenk.identify(email) at signup. One line, and the customer is welded to the channel that brought them, for life and across devices. Skip both and those payments land in an Unattributed bucket, visible and honest, because we would rather show you a payment we cannot place than silently guess a channel for it.
Native and live today: Stripe, LemonSqueezy, Paddle, Polar, RevenueCat, PayPal, Gumroad, Ko-fi, Buy Me a Coffee, HelloAsso, Eventbrite and WooCommerce, all through signed webhooks. Affiliate networks (Awin, CJ, Impact, Skimlinks) join on the SubID carried by the outbound click. Ad revenue comes from AdSense and Ezoic, or from an estimated page RPM. Anything else: one POST /api/v1/payment with your workspace token, or a CSV import (Amazon, any network, any export).
Not built, and we will not pretend otherwise: we do not pull ad spend from Google or Meta, so we show you revenue by campaign, never ROAS.
No revenue on-site? A goal with a dollar value works the same way: a booked call, a submitted form, a phone tap. Leads even carry a mutable value, so the estimate you set becomes the real number the day the deal closes, and the channel report updates itself.
GA4 can record a transaction value, but it measures the purchase event, loses 40 to 60% of sessions to ad blockers and refused consent, and never sees the customer's lifetime. The spreadsheet approach (export Stripe, export GA4, match on UTM) works exactly once, then becomes a monthly tax that quietly stops getting paid. Datalenk makes the connection permanent, so the profit view is always live.
The thinking behind this: ↗. The exact setup: ↗. Measuring lifetime by source: ↗.
See profit per channel, not just signups. 14-day trial, card required, cancel in two clicks. Start your trial.
What is revenue attribution? Tying revenue (and ideally lifetime value) back to the marketing source that produced each customer, so you judge channels on money rather than clicks or signups.
How does Datalenk connect to Stripe? You create a restricted, read-only key in your own Stripe dashboard and paste it in. It is read-only by construction: we can see charges, customers and subscriptions, and we cannot move a cent. Revoke it from Stripe at any time.
What if I use Paddle, PayPal, Gumroad, or something you have never heard of? The first two are native, and so are ten others. Anything else goes through one API call, or a CSV import. The attribution engine is the same for all of them.
Does this work for low volume? Especially at low volume: when every customer counts, knowing which channel actually pays is more valuable, not less.
Cookieless, EU-hosted analytics that ties every visit to the revenue it actually brought in. 14-day free trial.