Connect Stripe revenue to the visit that created it
nogeek · Founder of webanalytics.run
A practical model for linking traffic, conversions, refunds and subscription revenue without pretending attribution is certainty.
Traffic becomes useful when it can be compared with a trusted business outcome. For a SaaS product, that usually means a registration, a paid subscription, a refund, or recurring revenue.
Two separate data paths
webanalytics.run keeps ordinary analytics events and trusted business facts in separate domains. A browser pageview can describe an acquisition touch, but it cannot declare that money was paid. Revenue is imported from Stripe through a read-only Restricted API Key and stored as provider-backed facts.
The first version uses hourly synchronization plus a daily reconciliation pass. It does not claim Stripe OAuth, an automatically installed webhook, or real-time revenue. Customers can revoke the key in Stripe, and disconnecting the adapter stops future synchronization.
Identity Link before attribution
A business system explicitly links its own user or customer to the current
analytics session. That link is the bridge between an anonymous acquisition
touch and a later Stripe customer. A conversion is trusted only when it comes
through the authenticated trusted-conversion path or the revenue adapter—not
because a browser sent an event named purchase.
First touch and last touch answer different questions
First touch asks which known acquisition source introduced the customer. Last touch asks which known source preceded the conversion under the configured window. Neither proves causality. Missing consent, another device, an expired window, or an absent Identity Link can leave revenue unattributed.
That is why the Revenue report keeps an explicit Unattributed amount and ratio. Hiding that number would make the attributed channels look more certain than the source data permits.
Refunds and subscriptions are not pageviews
Gross revenue, refunds, net revenue, MRR, and ARR are distinct measures. Refunds must reduce the appropriate totals; recurring metrics must come from current subscription facts rather than multiplying a checkout event. Daily reconciliation repairs missed polling windows and makes data health visible.
Attribution is a decision aid, not an accounting ledger. Stripe remains the payment source of truth, while webanalytics.run explains how known acquisition touches relate to those trusted facts.
nogeek · Founder of webanalytics.run