Tracking & Attribution

How to Know Which Attribution Channel to Scale

One attribution number can't tell you where to scale. See the same purchases through first-touch, last-touch and a resolved model — and where they disagree.

Quick answer

You can't decide from a single attribution number. Deciding which channel to scale requires seeing the same purchases through first-touch, last-touch, and a resolved model at once — because where those models disagree is exactly where your budget decision lives. You also need to see which channels assist without closing, how long the journey actually takes, and how much revenue your reporting failed to match at all.

Tell us what's broken. We'll fix your tracking — free.

Describe the tracking/attribution problem you're stuck on and we'll map it to a fix: server-side conversions to Meta, Google, TikTok and Pinterest, plus first-party tracking that survives Safari. No code required.

You can’t decide from a single attribution number. Deciding which channel to scale requires seeing the same purchases through first-touch, last-touch, and a resolved model at once — because where those three disagree is exactly where your budget decision lives. You also need to see which channels assist without ever closing, how long the journey really takes, and how much revenue your reporting failed to match to anything at all.

Most attribution tooling is built to produce a number. The harder and more useful job is producing a decision. This article covers why channel-level clarity is so rare, what a decision-ready attribution report actually contains, and the single distortion — traffic collapsing into “Direct” — that quietly misprices more budget than any other.


Why can’t you tell which channel to scale?

Because every platform reports its own victory, and nothing reconciles them.

Meta’s dashboard says Meta drove the sale. Google’s dashboard says Google did. Both are describing the same purchase, both are using their own attribution window and their own view of the journey, and neither knows the other exists. Add them together and you get more conversions than you had customers. This isn’t dishonesty — each platform can only see the part of the journey it participated in.

So teams reach for a single blended number instead: one tool, one model, one truth. That fixes the double-counting and creates a subtler problem — it hides the disagreement, and the disagreement is the information.

Consider a purchase that begins with an organic search, passes through a paid ad, and closes on a direct visit a week later. Under first-touch, organic gets the credit. Under last-touch, direct does. Under a model that resolves the whole journey, the paid ad in the middle may be the piece that actually moved the buyer. Each model is arithmetically correct and each implies a different budget decision. A tool that surfaces only one has quietly made the decision for you, using an assumption you probably didn’t choose.

There’s a third failure that’s less discussed: the purchases that never get attributed at all. They sit in a bucket labelled Direct, or Unmatched, or simply don’t appear — and because they’re absent rather than wrong, nobody investigates. Every dollar of revenue in that bucket is budget you can’t allocate.


What should a decision-ready attribution report show?

Six things. Most reports show one or two.

1. The same purchases under multiple models, side by side. First-touch, last-touch, and a resolved model that reconciles the full journey — displayed together, each with its own purchase count and channel split. When all three agree, you can scale with confidence. When they diverge, that divergence tells you whether a channel is opening relationships or closing them, which are different jobs deserving different budgets.

2. What was recovered, and by which mechanism. Recovery claims are easy to make and hard to trust. A report that says “we recovered revenue your pixel missed” should itemise how — ad clicks re-linked after iOS stripped them, sessions with no campaign tag that a classifier resolved to a real channel, buyers matched to a session that never completed a form. Named mechanisms with counts attached are auditable; a single “recovered” total is a claim.

3. Assists, not just closers. Some channels rarely close and consistently appear earlier in winning journeys. Under last-touch they look worthless and get cut — which is how teams accidentally defund the top of their own funnel. An assists view shows how often a channel participates in journeys it doesn’t finish, and what revenue those journeys produced.

4. How long the journey actually takes. Two distributions, not one: touches-per-purchase (how many interactions before buying) and days-to-purchase (how long the decision takes). If most purchases are same-day single-touch, your attribution window barely matters and your creative does. If a meaningful share take weeks and four-plus touches, short attribution windows are silently discarding your best-performing campaigns.

5. First-touch versus last-touch timing, separately. The gap between when someone first encountered you and when they converted measures the whole journey. The gap on the converting visit measures the decision. Long journeys with short final visits mean your remarketing is doing the persuading. Short journeys with long final visits mean the landing page is where the thinking happens. Different problems, different fixes.

6. What the report failed to match. The most honest number in any attribution tool: what share of revenue couldn’t be tied to a session at all. If that figure is missing from your reporting, it isn’t zero — it’s just invisible. A report that shows matched versus unmatched revenue is telling you the size of its own blind spot, which is the prerequisite for trusting anything else on the page.


Why does “Direct” eat your attribution?

Because “Direct” is not a traffic source. It’s the bucket everything falls into when the campaign tag is missing.

A visitor arrives with no utm_source and no click ID and gets filed as Direct. But almost none of those people typed your URL from memory. They came from a link in an email client that stripped the parameters, a messaging app, a browser that removed tracking parameters for privacy, a redirect chain that dropped the query string, an iOS environment that limited what could be passed along — or from a genuine ad click whose identifier didn’t survive the trip.

When Direct is one of your largest revenue “channels,” that’s rarely brand strength. It’s a measurement failure wearing a channel’s name. And it’s expensive in a specific way: that revenue isn’t missing, it’s misfiled — sitting in a bucket you can’t scale, subtracted from channels you could have.

The fix isn’t a better guess. It’s resolving what the session actually was from the signals that did survive — the referrer, the landing page, the click identifiers present elsewhere in the visitor’s history, and prior sessions belonging to the same person. A session with no campaign tag that arrived from a search engine and shares an identity with an earlier ad-click session isn’t Direct. It’s that ad click, finishing.

In practice this reclassification is usually the largest single source of recovered attribution — bigger than iOS rescue, bigger than partial-lead recovery. Reclaiming it moves real revenue out of the unscalable bucket and back onto the channels that earned it.

Traffic from many real sources collapsing into a single unattributed Direct bucket


How does PartialLeads make attribution decidable?

The Attribution Report is built around a single idea: show the operator enough to make a budget decision, including the parts that are uncomfortable.

Three models, side by side, always. First-touch, last-touch, and PartialLeads’ resolved model appear together, each with its own purchase count and per-channel split. You are never handed one number and asked to trust it — you see where the models agree (scale confidently) and where they diverge (investigate before moving budget). The resolved model can legitimately show more purchases than first- or last-touch, because it recovers journeys the simpler models lose entirely.

Recovery is itemised by mechanism, not asserted as a total. The report breaks recovered revenue into named causes — ad clicks re-linked after being lost, sessions reclassified by the session classifier when no campaign tag existed, and revenue from buyers whose session never completed a form — each with its own purchase count and affected channels. You can audit the claim rather than accept it.

Channels carry the numbers a media buyer actually decides on. Revenue, purchases, AOV, average lag from touch to purchase, visitors, visitor-to-lead rate, and ROAS — with the same first/last/resolved toggle applied, and paid channels expandable to their individual campaigns. Scale decisions get made at campaign level, so that’s where the report lets you look.

Assists are separated from closes. The paths view shows real journey sequences and how often each occurs, alongside an assisting-channels table that credits participation distinctly from closing. Channels that quietly open journeys stop looking like dead weight.

Journey shape is explicit. Touches-per-purchase and days-to-purchase distributions sit alongside a first-touch-versus-last-touch timing comparison, so you can see whether your buyers decide in minutes or deliberate for weeks — and whether your attribution windows are long enough to contain them.

The blind spot is on the page. A match-quality breakdown shows revenue split across partial-captured, submit-completed, and unmatched — the report telling you, in its own numbers, how much it couldn’t tie to a session. Paired with a match-rate KPI compared against the prior period, the reliability of the report is itself a visible metric.

And the journey is visible on every lead — without opening anything. This is the part that changes daily behaviour rather than quarterly reporting. In the leads list itself, each person carries a small journey ribbon: one badge per touch, left to right, in the channel’s own brand mark. A grey dot marks a session whose source couldn’t be determined. A green square marks the conversion. Visual weight reflects how confident the attribution is, so a strongly-tagged campaign click looks different from a weak signal at a glance.

The practical effect is that a row reads like a sentence. Six Google touches, then converted. Meta, then a gap, then Meta again, then bought. Direct, unmatched — the honest version, rather than a channel name invented to fill the space. You can scan fifty leads and see the shape of your demand without clicking into a single record, and the same row carries the status, the revenue, and which conversion APIs that lead was dispatched to.

That matters because aggregate reports and individual records get used by different people for different decisions. The attribution report tells a media buyer which channel to scale. The journey ribbon lets a salesperson see that the lead they’re about to call has been back six times — or settles an argument about whether a specific customer really came from paid.

One detail worth noticing: AI assistants now appear as first-class traffic sources in the channels table, converting alongside search and paid social. As buying research shifts into AI answer engines, that traffic shows up as a measurable, scalable channel rather than disappearing into Direct.

A leads list where each row shows a journey ribbon of channel badges ending in a conversion marker

Honest boundaries. No attribution system sees everything. Purchases with no recoverable identity stay unmatched — which is precisely why the unmatched figure is displayed rather than hidden. Resolved attribution is a model, not a metaphysical truth: it’s a reasoned reconstruction from captured signals, shown next to the simpler models so you can judge it rather than inherit it. And some conversion metrics need a warm-up period after a fresh install before visitor-level rates are meaningful.

Deciding where to scale, in one view:

The decision you’re making What the report shows What it tells you
Is this channel opening or closing sales? First-touch vs last-touch split, side by side Divergence means different jobs — fund both accordingly
Is a low-credit channel actually worthless? Assisting channels: assists, assisted revenue, closes Participation without closing is still contribution
Is my attribution window long enough? Days-to-purchase and touches-per-purchase distributions Long tails outside the window are invisible conversions
Is “Direct” really direct? Recovered attribution, itemised by mechanism Reclassified sessions return revenue to real channels
Can I trust this report at all? Match rate + matched vs unmatched revenue The report’s own blind spot, quantified
Which campaign specifically? Paid channels expanded to campaign level, with ROAS The grain scale decisions are actually made at

Setup is one tag. The free tier includes the Attribution Report, so you can see your own channel splits — and your own unmatched number — before paying anything.


Tell us what's broken. We'll fix your tracking — free.

Describe the tracking/attribution problem you're stuck on and we'll map it to a fix: server-side conversions to Meta, Google, TikTok and Pinterest, plus first-party tracking that survives Safari. No code required.

Sources

  1. Google Analytics Help — Attribution models overview: https://support.google.com/analytics/answer/10596866
  2. Meta Business Help — About attribution settings: https://www.facebook.com/business/help/2198119873776795
  3. Google Ads Help — About attribution models: https://support.google.com/google-ads/answer/6259715
  4. Google Analytics Help — Direct traffic and unassigned sessions: https://support.google.com/analytics/answer/6205762

Frequently asked questions

QShould I use first-touch or last-touch attribution?
Neither alone — look at both, plus a resolved model, and treat their disagreement as the signal. First-touch reveals which channels introduce customers; last-touch reveals which close them. A channel that scores high on first-touch and low on last-touch isn't underperforming, it's doing a different job. Picking a single model in advance means deciding the answer before seeing the data, which is why serious media buyers keep multiple models visible and reconcile them per decision.
QWhy is "Direct" one of my biggest revenue channels?
Almost certainly a measurement artefact, not brand strength. Direct is where sessions land when no campaign tag survived the journey — parameters stripped by an email client or messaging app, removed by a privacy-focused browser, lost in a redirect chain, or limited by iOS restrictions. Very few of those people typed your URL from memory. Treat a large Direct bucket as misfiled revenue rather than organic demand, and look for a report that reclassifies those sessions using referrer, landing page, and prior identity signals.
QWhat's the difference between an assist and a conversion in attribution?
A conversion is the touch credited with closing the sale; an assist is a touch that appeared in a winning journey without closing it. Under last-touch attribution assists are invisible, which is how upper-funnel channels get defunded — they consistently participate in successful journeys and rarely finish them. An assists view shows participation counts, the revenue of journeys a channel assisted, and how many it actually closed, so you can distinguish genuinely dead traffic from useful traffic that was never going to close.
QHow many touches does a typical purchase take?
It varies enormously by business, which is exactly why the distribution matters more than the average. Some businesses convert most purchases same-day on a single touch; others see meaningful volume at four-plus touches over weeks. The practical use is checking your attribution window against it: if a real share of your purchases take longer than your window, those conversions aren't attributed to the campaigns that earned them, and those campaigns look worse than they are.
QHow is a "resolved" attribution model different from first- or last-touch?
First- and last-touch are positional rules — credit the first touch, or credit the last. A resolved model reconstructs the actual journey using captured identity and session signals, then assigns credit based on what really happened, including sessions that arrived without campaign tags and touches across different devices. It can attribute purchases that positional models miss entirely. It's a model rather than ground truth, which is why it should be displayed beside the simpler models rather than replacing them.
QWhat does match rate mean in an attribution report?
The share of purchases the system could tie back to a tracked session. It's the reliability metric for everything else on the page — a report with high match rate is describing most of your revenue, while one with low match rate is describing a fraction and staying quiet about the rest. Any report that shows a match rate is being more honest than one that doesn't, because an unstated match rate is never 100%.
QCan attribution reporting tell me exactly where to put my next dollar?
It can tell you far more than a platform dashboard, but no honestly. Attribution is observational — it describes what happened, not what would have happened with different spend. For genuine causal answers you need incrementality testing: holdouts, geo splits, controlled experiments. The practical workflow is to use attribution to form a hypothesis about where to scale, then validate the big moves with a test. Reporting that claims perfect causal certainty is overselling what the method can do.

Find the qualified leads your forms are currently throwing away.

Install PartialLeads on one landing page, send traffic, and compare what your CRM captured against what PartialLeads recovered and qualified.