Business

Multi-Touch Attribution Requires Multi-Session Identity

You can't credit the right channels if you can't recognize the same person across sessions and devices.

March 2026 • 13 min read

The Attribution Problem Nobody Talks About

Marketing attribution has an identity problem. Every attribution model -- first-touch, last-touch, linear, time-decay, position-based -- assumes you can connect the dots between touchpoints in your clickstream data. The ad click on Monday, the organic search on Wednesday, the direct visit on Friday, and the conversion on Saturday need to be linked to the same person.

Without persistent identity, those are four separate anonymous visitors. There's nothing to attribute.

Attribution is not a math problem. It's an identity problem. If you can't recognize the visitor across sessions, no attribution model can save you.

This is why most analytics platforms report attribution that's substantially wrong -- attribution studies routinely find double-digit error rates. Not because their models are bad, but because they can't stitch sessions together. They attribute the conversion to the last touchpoint they can see, which is often just the final session -- missing every preceding interaction that actually influenced the decision.

Click IDs: The Attribution Currency

Every major ad platform appends a click identifier to the URL when a user clicks an ad. These click IDs are the raw material of attribution. If you capture and store them on first visit and connect them to the eventual conversion, you have deterministic attribution. If you lose them, you're guessing.

ClickStream captures 13 ad-click ID types across the major ad platforms -- from both the landing URL and the referrer:

Platform Click ID Parameter Format
Google Ads gclid Base64 string (~100 chars)
Google Ads (iOS ATT variants) gbraid / wbraid Alphanumeric string
Google Display & Video 360 dclid Alphanumeric string
Meta (Facebook/Instagram) fbclid Base64 string (~60 chars)
Microsoft Ads (Bing) msclkid UUID format
TikTok Ads ttclid Alphanumeric string
LinkedIn Ads li_fat_id UUID format
Pinterest Ads epik Alphanumeric string
Twitter/X Ads twclid Numeric string
Snapchat Ads sccid UUID format
Impact irclickid Alphanumeric string
Klaviyo _kx Alphanumeric string

The critical detail: these click IDs appear in the URL only on the initial ad click. If you don't capture and store them at that moment, they're gone. The user bookmarks the page, comes back two days later, and the URL no longer contains the click ID. Without a persistent identity mechanism (a first-party cookie), you can't connect that return visit to the original ad click.

How ClickStream Captures and Stores Attribution Data

On every page load, the ClickStream SDK extracts attribution signals from the URL and stores them against the visitor's identity:

// Simplified illustration — what the SDK captures automatically on every page load
const attributionSignals = {
    // Click IDs from ad platforms (13 types captured; a few shown here)
    gclid:    params.get('gclid'),
    fbclid:   params.get('fbclid'),
    msclkid:  params.get('msclkid'),
    ttclid:   params.get('ttclid'),
    li_fat_id: params.get('li_fat_id'),
    epik:     params.get('epik'),
    twclid:   params.get('twclid'),
    sccid:    params.get('sccid'),

    // UTM parameters
    utm_source:   params.get('utm_source'),
    utm_medium:   params.get('utm_medium'),
    utm_campaign: params.get('utm_campaign'),
    utm_term:     params.get('utm_term'),
    utm_content:  params.get('utm_content'),

    // Referrer data
    referrer: document.referrer,

    // Timestamp for time-decay calculations
    timestamp: Date.now()

    // visitor identity: server-set first-party cookie (_cs_vid), attached automatically
};

These signals are appended to the visitor's journey timeline -- not just stored in the current session. Because the visitor has a persistent first-party cookie, every attribution signal they generate over days, weeks, or months is connected to a single identity.

The Five Attribution Models

Once you have a complete journey timeline with all touchpoints and their associated click IDs/UTMs, you can apply any attribution model. Here's how each one works and when to use it:

1. First-Touch Attribution

How it works: 100% of conversion credit goes to the first touchpoint.

Example: A visitor first finds you through a Google Ads click (gclid captured), then returns via organic search, then converts on a direct visit. First-touch gives Google Ads 100% credit.

Touchpoint Channel Credit
Session 1: Google Ads click Paid Search 100%
Session 2: Organic search Organic 0%
Session 3: Direct (conversion) Direct 0%

When to use: Optimizing for awareness and top-of-funnel discovery. Useful for understanding which channels introduce new prospects.

Limitation: Ignores everything that happened after the first touch. Overvalues awareness channels and undervalues nurturing channels.

2. Last-Touch Attribution

How it works: 100% of conversion credit goes to the last touchpoint before conversion.

Touchpoint Channel Credit
Session 1: Google Ads click Paid Search 0%
Session 2: Organic search Organic 0%
Session 3: Direct (conversion) Direct 100%

When to use: Optimizing for conversion-driving channels. This is the default model for most analytics platforms and ad platforms (because it favors their channel).

Limitation: "Direct" often wins because people type the URL or use a bookmark for their final visit. This tells you nothing useful about marketing effectiveness.

3. Linear Attribution

How it works: Credit is split equally across all touchpoints.

Touchpoint Channel Credit
Session 1: Google Ads click Paid Search 33.3%
Session 2: Organic search Organic 33.3%
Session 3: Direct (conversion) Direct 33.3%

When to use: When you believe every touchpoint contributes equally. Works well for simple journeys and as a baseline to compare against other models.

Limitation: A throwaway email touchpoint gets the same credit as the high-intent Google Ads click. Not all touchpoints are equal.

4. Time-Decay Attribution

How it works: Touchpoints closer to the conversion receive more credit. Uses an exponential decay function with a configurable half-life; a common default is 7 days.

Touchpoint Channel Days Before Conversion Credit
Session 1: Google Ads click Paid Search 14 days 14.3%
Session 2: Organic search Organic 3 days 35.7%
Session 3: Direct (conversion) Direct 0 days 50.0%

When to use: Short buying cycles where recent interactions are more influential. E-commerce and impulse purchases benefit from this model.

Limitation: Undervalues awareness channels that start the journey weeks before conversion. For B2B with long sales cycles, the first touch may be the most important but gets almost no credit.

5. Position-Based (U-Shaped) Attribution

How it works: 40% credit to the first touch, 40% to the last touch, and 20% split among all middle touchpoints.

Touchpoint Channel Credit
Session 1: Google Ads click Paid Search 40%
Session 2: Organic search Organic 20%
Session 3: Direct (conversion) Direct 40%

When to use: B2B and considered purchases where both discovery (first touch) and conversion (last touch) are critical moments. The 40/20/40 split acknowledges that the journey in between matters but isn't as decisive.

Limitation: The 40/20/40 split is arbitrary. Why not 30/40/30? The model assumes first and last touches are equally important, which isn't always true.

Why First-Party Cookies Are Essential for Attribution

Every attribution model above requires one thing: the ability to connect multiple sessions to the same visitor. Without a persistent identifier, each session is an island.

Here's what happens to attribution accuracy as identity degrades. The figures below are directional estimates to illustrate the pattern, not measured benchmarks:

Identity Method Cross-Session Stitching Attribution Accuracy Avg. Touchpoints Visible
First-party cookie (400-day) 92-97% 88-95% 4.2 per journey
Third-party cookie 50-70% (blocked by Safari/Firefox) 45-65% 2.1 per journey
JS-set first-party cookie 60-80% (7-day ITP cap) 55-75% 2.5 per journey
Signature / probabilistic 25-45% 20-40% 1.4 per journey
Session-only (no persistence) 0% Last-touch only 1.0 per journey

With first-party cookies via Set-Cookie headers (ClickStream's approach), you see multi-touch journeys instead of a single final session. With session-only tracking, you see exactly 1 touchpoint -- the final session. That means you're running last-touch attribution by default, regardless of what model you've selected in your dashboard.

Cross-Device Attribution

Modern purchase journeys frequently span devices. A B2B buyer might see a LinkedIn ad on mobile, research on their laptop, and convert on their work desktop. Without cross-device identity resolution, those are three separate visitors with three separate journeys.

ClickStream resolves cross-device identity through the identity graph:

  1. Cookie as anchor: Each device gets its own first-party cookie
  2. Identity stitching: When the visitor logs in, provides an email, or authenticates on any device, the identity graph links all cookies to a single profile
  3. Retroactive attribution: Once stitched, all previous anonymous sessions on each device are attributed to the unified profile, retroactively connecting the ad click on mobile to the conversion on desktop

The identity graph approach means you don't need the visitor to log in on every device. One authentication event on one device is enough to unify the entire journey.

Building an Attribution-Ready Architecture

For attribution to work, your analytics stack needs four things:

1. Persistent Identity

A first-party cookie with maximum persistence. ClickStream uses server-set cookies via Set-Cookie headers from a CNAME-pointed subdomain, achieving 400-day persistence -- the browser maximum -- that survives ITP and ETP.

2. Complete Signal Capture

Every click ID, UTM parameter, referrer, and landing page URL must be captured and stored against the visitor identity on first pageview. Missing signals can't be recovered.

3. Journey Timeline

An ordered sequence of all touchpoints for each visitor, with timestamps. This isn't a session log -- it's a cross-session, cross-device timeline that may span weeks or months.

4. Flexible Model Application

The ability to apply different attribution models to the same journey data. Because your journey timeline preserves every touchpoint, it supports any model: first-touch, last-touch, linear, time-decay, and position-based attribution can all be computed from the same data and compared for the same conversions.

Once you export your attributed touchpoints (CSV on Growth+), a side-by-side comparison looks like this in any SQL engine:

-- Example: comparing attribution models in your own warehouse after export
SELECT
    channel,
    SUM(first_touch_credit)    AS first_touch_revenue,
    SUM(last_touch_credit)     AS last_touch_revenue,
    SUM(linear_credit)         AS linear_revenue,
    SUM(time_decay_credit)     AS time_decay_revenue,
    SUM(position_based_credit) AS position_based_revenue
FROM attribution_touchpoints
WHERE conversion_date BETWEEN '2026-02-01' AND '2026-02-28'
GROUP BY channel
ORDER BY position_based_revenue DESC;

When you compare models side by side, the channels that appear dramatically different across models are the ones you need to investigate. A channel that's first in first-touch but last in last-touch is driving awareness but not closing -- that's a content strategy problem, not a channel problem.

The Revenue Impact of Better Attribution

Attribution isn't academic. Incorrect attribution leads to incorrect budget allocation, which directly impacts revenue. Here's a hypothetical example of how misallocation scales with attribution quality:

Attribution Quality Budget Misallocation Illustrative Revenue Impact (on $200K/mo spend)
Last-touch only (1 touchpoint visible) 30-50% misallocated $60,000-100,000 wasted/month
Partial attribution (2.1 touchpoints) 15-30% misallocated $30,000-60,000 wasted/month
Full attribution (4.2 touchpoints) 5-10% misallocated $10,000-20,000 wasted/month

In this hypothetical, the difference between partial attribution (most analytics setups) and full attribution (ClickStream with first-party cookies) is $20,000-40,000/month in reduced waste on a $200K spend -- on the order of $240,000-480,000 a year in marketing efficiency gains.

The Bottom Line

Multi-touch attribution is only as good as the identity resolution beneath it. No model can overcome fragmented data. If you can't connect the ad click to the conversion because your cookies don't persist across sessions, you're running blind.

Attribution without identity is just storytelling. Attribution with persistent, cross-session, cross-device identity is revenue intelligence.

Know Which Ads Actually Drive Revenue

Stop wasting budget on channels that look good in last-touch reports but never close deals. See the full journey across sessions and devices.

Start free