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).
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.
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.
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.
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.
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
Further Reading
For more on how channel attribution works and why revenue attribution is harder to get right than visit or signup attribution:
