Sources, campaigns, launches and instances

Growth answers one question - which marketing channels produce revenue that lasts - and it uses four nested words to do it. They are easy to mix up, so this page defines each one and says what it is actually for.

The four levels

Source
A traffic origin: product_hunt, google, twitter. Taken from UTM parameters or referrer data on each visit and signup. This is the broadest useful unit and the one the leaderboard is built on.
Campaign
An optional sub-label under a source, for splitting one channel into more specific efforts - two different Google Ads campaigns, two separate newsletters. A source works perfectly well with no campaigns at all.
Launch
An optionally pre-registered record that gives a source/campaign pair a friendlier display name and a cost figure. It is purely cosmetic plus cost tracking - not registering one loses you nothing except the nicer label.
Instance
One occurrence of a repeated channel under the same source and campaign - a single Product Hunt attempt, one email batch. This is what lets you compare your second launch against your first rather than blending them into one average.

How a visit gets a source

The Growth script tag classifies each visit automatically, in roughly this order of preference:

  1. Explicit UTM parameters - utm_source, utm_campaign and friends, if present.
  2. Click IDs - ad IDs (gclid, msclkid) and social IDs (twclid, fbclid).
  3. Referral parameters - ref, via, aff.
  4. The referrer - grouped into channels like organic search, social, and known referral sources such as Hacker News or Product Hunt.

Classification happens per visit, not per visitor. If someone lands organically and then clicks a link carrying a different source a few minutes later, that new source records a second visit rather than overwriting the first - so both channels are credited for the click each actually drove. It is the source that has to change, not the campaign: a later link with the same utm_source and a different utm_campaign stays part of the same visit, and so does a direct hit part-way through. See Events for what that means for your usage count.

Unidentifiable visits are called direct, not guessed

When none of the above yields a channel, the visit is counted as direct. Growth deliberately does not force it into a bucket - a slightly larger direct number is more honest than a channel figure inflated with visits that may not belong to it.

First touch vs. last touch

Last touch
The source credited with the visit that immediately preceded the action. It answers "what brought them back this time?"
First touch
The very first source ever recorded for that visitor. It answers "what made them aware of us at all?"

Growth records both, and shows them side by side, because either one alone misleads. Last touch over-credits channels that sit close to the decision - direct visits and branded search - and under-credits the content or social post that did the discovery work weeks earlier. Reading the two together tells you which channels start relationships and which close them.

Both cookies are shared across your subdomains, so someone who lands on your marketing site and signs up on a separate app subdomain keeps their original attribution instead of appearing as an internal referral.

Both are cookies, though, so both depend on Chartsy being 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 - there is no first touch to carry forward, and every visit they make is classified on its own.

What attribution needs to work

Three things, in order: the script tag for visits, signup tracking to tie a person to a channel, and a connected Stripe or Paddle account to tie that person to money. The first two both record events - visits and signups each count toward your usage; connecting billing does not. With the first two only, you get traffic and signups by channel; every revenue figure stays empty rather than being estimated until billing is connected.

Related articles

Chartsy Team

Written by

Chartsy Team

The Chartsy Team writes guides, product updates, and resources to help SaaS and eCommerce founders make sense of their metrics, without SQL or spreadsheets.

Chartsy
Ministry of Economy and Innovation
Startup Albania

The Chartsy program is realized with the financial support of the Albanian Government through the Ministry of Economy and Innovation, under the Grant 2026 scheme, and is implemented by the Innovation4Albania Agency.