How to Set Up Growth: Revenue Attribution by Channel
Growth tracks a visitor from their first click, through their signup, to the real Stripe or Paddle revenue they generate - broken down automatically by marketing channel. This guide walks through installing the script tag, tracking signups, connecting billing, and reading the results.
1. Add the Growth Script Tag to Your Site
Copy the Growth script tag from your Chartsy dashboard and add it to your site's <head>. It's a single line - no build step, no package to install.
Once installed, it starts reading UTM parameters and classifying referrers into channels automatically - organic search, social, and known referral sources like Hacker News or Product Hunt - the same channel-grouping logic used by most standard analytics platforms. It also recognizes ad click IDs (gclid, msclkid), social click IDs (twclid, fbclid), and generic referral parameters (ref, via, aff).
For the snippet itself, where it goes on each kind of site, and how to confirm it is firing, see Set up website tracking - or Install tracking by platform for Webflow, Squarespace, Wix, WordPress, GTM and Framer.
The tag also sets first-touch and last-touch cookies, shared automatically across all of your subdomains - so a visitor who lands on your marketing site and later signs up on a separate app subdomain still gets attributed to their original channel. Both are cookies, so this holds for visitors Chartsy is allowed to store one for; a visitor it stores nothing for - an EEA/UK visitor on a site with no consent banner wired up, for instance - is attributed visit by visit instead, with no first touch carried forward.
2. Track the Signup Event
Growth needs to know the moment someone signs up, so it can tie that signup back to whichever channel drove their very first visit. There are two ways to set this up:
- Zero code: add a signup tracking attribute directly to your signup form - Growth detects the submission automatically.
- One line of code: fire the signup event manually at the point in your signup flow where an account is created, useful for custom or multi-step signup forms.
Either method links the new signup to the visitor's persistent, anonymous ID - the same ID used later to match against billing data.
Signups behind OAuth or social login need a server-side call instead, and linking revenue to the right visitor takes one extra field at checkout - both are covered in Set up website tracking.
3. Connect Your Stripe or Paddle Account
If you haven't already connected a data source, link your Stripe or Paddle account via read-only OAuth. Once connected, Growth automatically matches signups to real subscriptions and transactions - no export, no manual join.
This is what powers the revenue side of Growth: current MRR, lifetime revenue, subscription status, and churn, all rolled up by the channel each customer originally came from.
4. View Revenue by Channel
Open the Growth page in your Chartsy dashboard to see the full funnel by channel: visits, signups, current MRR, lifetime revenue, and churn. Every number updates automatically with every sync - there's nothing to refresh or recalculate manually.
Visits with no identifiable source are shown as direct rather than assigned to a channel, so the totals you see reflect real matched data rather than an inflated estimate.
Summary
Growth connects the three systems that usually stay disconnected - your site analytics, your signup flow, and your billing data - into one automatic pipeline. Install the script tag, track the signup event, connect Stripe or Paddle, and revenue by channel is ready in your dashboard with no manual joins required.
What's Next
Once data starts flowing in, head to Understanding the Growth Dashboard to learn the terminology and how to read the verdict banner, leaderboard, and every other chart on the overview page - or jump straight to Growth Source Detail to see how to drill into a single channel.
Frequently Asked Questions
Does setting up Growth require a developer?
Visit tracking is a single script tag with no build step. Signup tracking can be done with zero code via a form attribute, or with one line of code for custom signup flows.
Does Growth work across subdomains?
Yes. First-touch and last-touch attribution cookies are shared automatically across all of your subdomains, so a visitor who lands on your marketing site and signs up on a separate app subdomain still gets attributed correctly. Attribution is held in cookies, so this applies to visitors you are allowed to store cookies for; anyone else is attributed visit by visit.
What happens to visits Growth can't identify a channel for?
They're counted as direct rather than assigned to a channel. Growth doesn't force an unidentifiable visit into a channel bucket, so the numbers you see stay accurate rather than inflated.
Do I need Stripe or Paddle connected for Growth to work?
Visit and signup tracking work as soon as the script tag and signup event are installed. Revenue and churn by channel require a connected Stripe or Paddle account, since that's the data Growth matches signups against.
Related Help Articles
- Set Up Website Tracking: Script, Signups, Revenue and Consent
- Install Tracking by Platform: Webflow, Squarespace, Wix, WordPress, GTM, Framer
- Understanding the Growth Dashboard: Terms, Charts, and What They Mean
- Growth Source Detail: Deciding Whether to Scale, Adjust, or Stop a Channel
- How to Connect Your Stripe Account
- How to Connect Your Paddle Account
- How to Use Metadata Analytics
- How to Ask Questions About Your SaaS Data
Further Reading
For more on how channel attribution works and why revenue attribution is harder to get right than visit or signup attribution:


