Google Analytics can tell you 4,000 people visited from Twitter. It cannot tell you that three of them bought. That’s not a settings problem you can fix — it’s built into how the tool works.
The disconnect
Analytics lives in one system (your website traffic). Your money lives in another (Stripe, Gumroad, your store). Neither one knows the other exists. GA sees an anonymous session; Stripe sees an email and an amount. Nothing carries an identifier from the click all the way to the charge.
What actually closes it
You need a single identifier that rides along from the click, through your site, into the checkout, and back out on the payment webhook. Then you can join “this click” to “this sale.”
- A tracked link tags the click with an id.
- That id follows the visitor and lands on the Stripe checkout as client_reference_id.
- The payment webhook returns the id — now the sale has a source.
That join is exactly what a revenue-attribution tool does and GA doesn’t. seenpaid was built to be the wire between those two boxes — so “traffic from Twitter” becomes “$240 from Twitter.”