What is marketing attribution?
Marketing attribution is the practice of assigning credit for a conversion to the channels, campaigns, and touchpoints that brought a user in, so a team can see which sources actually drive signups and revenue instead of guessing. It answers one question: of everything we spent time and money on, what worked?
What is first-touch vs last-touch attribution?
Attribution starts with a model, a rule for who gets the credit when a user finally converts. The two you hear first are opposites: one credits the source that started the journey, the other credits the source that finished it.
Neither is the whole truth, they answer different questions. First-touch tells you where to spend to find new people; last-touch tells you what seals the deal. smolanalytics uses first-touch, because for most small teams the honest, hard question is which channel is worth showing up on at all.
What are UTM parameters?
You cannot attribute a conversion to a channel unless you know where the visit came from, and the standard way to record that is UTM parameters: tags you append to a link that ride along in the URL. A tagged link looks like ?utm_source=twitter&utm_medium=social&utm_campaign=launch, and when someone clicks it, your analytics reads those tags and records the source.
The five standard tags are utm_source (where, like twitter or newsletter), utm_medium (the type, like social or email), utm_campaign (the specific push), and the optional utm_content and utm_term. Tag every link you control, from ad clicks to newsletter buttons to a link in your bio, and traffic that would otherwise land as anonymous "direct" instead shows up as the channel it really came from. Building those links by hand is error-prone, so a UTM builder keeps the naming consistent, which matters because attribution is only as clean as the tags feeding it.
What is channel attribution?
A raw source list is a mess: a hundred referrer domains, a dozen UTM values, and a big pile of direct. Channel attribution groups all of that into a short list of buckets, search, social, referral, direct, paid, so you have something you can actually make decisions about. Instead of "t.co sent 40 and reddit.com sent 12", you see "social sent 52".
The part that matters is what you layer on top. Raw traffic per channel is a vanity read: the channel that sends the most visitors is often not the one that sends the most converters. Attach a conversion rate to each channel, the share of its visitors who complete the action that counts, and the picture flips. A channel sending a tenth of the traffic at five times the conversion rate is where you should be spending your next hour. That is the whole question worth asking: which channel converts best?
Why does revenue attribution matter?
Conversions are a better signal than traffic, but they still lie by omission, because not all conversions are worth the same. A channel can send users who sign up on the free plan and never pay, while another sends fewer users who all upgrade. Counting signups, you would pick the wrong one.
Revenue attribution closes that gap by tying actual dollars to each source. When a purchase or upgrade carries the amount as a property, you can roll revenue up by channel and see which sources bring paying users, not just users. This is what turns attribution from a marketing report into a business one: it tells you where the money comes from, so you spend your limited time and budget on the channels that fund the company instead of the ones that merely look busy.
How smolanalytics does attribution
smolanalytics does first-touch channel attribution from one snippet or one endpoint, alongside web and product analytics. It is deliberately not a full multi-touch modeling suite; it answers the question a small team actually has. Three choices define how you get the answer:
- 1First-touch, per-source conversion. It captures UTMs and referrers on the first visit, groups sources into channels, and computes a conversion rate for each, so it answers "which channel converts best?" instead of just "which channel is loudest?". Revenue rides in as a property on your events, so it can attribute dollars, not only signups.
- 2Ask in plain English. Type "which channel converts best?" or "where did our paying users come from?" into a dashboard bar, or into your own Cursor / Claude Code over MCP (47 tools, 13 prompts), using your own AI model so the AI part is free. Every answer is computed from the deterministic report, never written by an LLM, and a CI agreement test fails the build if the AI answer ever differs from the dashboard.
- 3One binary, cookieless. It is a single MIT-licensed Go binary, stdlib only, roughly 7 bytes per event, no Kafka, ClickHouse, or Postgres to run, and it can run in cookieless mode with no consent banner. Self-host it free forever, or use the hosted cloud.
Attribution rides on the same events as everything else, so it pairs with event tracking. See every feature, or build clean tagged links with the UTM builder.