Sources, pages and countries
Where your traffic comes from, which pages it lands on, and how attribution is decided.
The Sources page (/projects/:id/sources) answers the question the Pulse only hints at: which channels bring people who actually do something.
It has three tables, each showing the top 20.
Sources
Columns: Source / Visitors / Converted / Rate % / First value %. The First value column only appears when you’ve configured a first-value event.
Rows are grouped by the actor’s first_source. This is first-touch attribution: whatever brought someone in the first time is the source they keep, frozen for the visitor’s 30-day lifetime. If a visitor arrives from Hacker News, leaves, and comes back a week later via Google, they still count as Hacker News.
An empty source is shown as direct.
Landing pages
Columns: Page / Visitors / Converted / Rate %.
This comes from the session landing page — the first page of the session, not the first page ever. An empty value is shown as /.
Countries
Resolved from GeoIP as an ISO-3166 alpha-2 code, and displayed as a flag emoji plus the localized country name. Unknown or invalid codes show as “Unknown”.
The insight callout
When a first-value event is configured and at least 2 sources have converters, a yellow panel appears above the tables with a line like:
{best} sends users {x}× more likely to reach first value than {worst}.
This is a rule-based comparison, not AI. It’s computed from your numbers with fixed arithmetic, so it’s deterministic and reproducible — the same data always produces the same sentence. Nothing is inferred, guessed, or generated. If the conditions aren’t met, no panel appears.
The same rule engine drives the Weekly Pulse digest.
How source classification works
Every event is classified in a fixed order. The first rule that matches wins.
1. UTM parameters. If utm_source is present, it becomes the source. utm_medium becomes the medium, falling back to campaign if there’s no medium.
2. Referrer. Otherwise, the referrer host becomes the source, with www. stripped. A referrer matching your own host is ignored — internal navigation isn’t a source. The medium is organic for google, bing, duckduckgo, yahoo, ecosia and brave, and referral for everything else.
3. Direct. Otherwise both source and medium are direct.
The captured UTM parameters are utm_source, utm_medium, utm_campaign, utm_content and utm_term.
If your own domain is showing up as a source, check your domains and referrers settings — the host list is what makes internal navigation get ignored.
First-touch vs session attribution
LaunchPulse stores two sets of attribution fields, and they answer different questions.
| Field group | Fields | Lifetime |
|---|---|---|
| First-touch | first_source, first_campaign, first_landing_page | Frozen for the visitor’s 30-day lifetime |
| Session | session_source, session_medium, session_campaign, session_landing_page | Refreshed on each new session |
A session rolls over after 30 minutes of inactivity.
The Sources table uses first-touch. It answers “what brought this person into my world?” — the right question for judging a channel, because the channel that gets credit is the one that did the introduction.
The Landing pages table uses the session landing page. It answers “what page did this visit start on?” — useful for spotting which specific posts or pages pull their weight, including for returning visitors.
You’ll see both fields in the events log row detail when you expand an event, so you can always check what a specific person was tagged with.
Reading the table honestly
Two habits will keep you out of trouble.
Watch the visitor count next to the rate. A source with 3 visitors and 1 converter shows a 33% rate. That’s noise. Rates only mean something once a source has enough volume to be stable, and the visitor column is right there to tell you.
Compare rate, not volume. The source with the most visitors is usually the least interesting one — it’s whatever’s biggest, and you already know it. The useful signal is a small source with a conversion or first-value rate well above the rest. That’s a channel worth more of your time.
Where this data comes from
Sources, landing pages and countries are cached for about 60 seconds. The cache key includes your project config, so changing your conversion or first-value event updates these tables immediately.
Where to go next
- The Pulse dashboard — the top 5 sources view and the rest of the funnel
- Events log — inspect individual events and their attribution fields
- Domains and referrers — stop your own host from counting as a source
- Data model — every field stored on an event