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 wrong by 30-60%. 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 click IDs from 8 major ad platforms:

Platform Click ID Parameter Format Expiry
Google Ads gclid Base64 string (~100 chars) 90 days
Meta (Facebook/Instagram) fbclid Base64 string (~60 chars) 7 days (browser), 28 days (server)
Microsoft Ads (Bing) msclkid UUID format 90 days
TikTok Ads ttclid Alphanumeric string 28 days
LinkedIn Ads li_fat_id UUID format 30 days
Pinterest Ads epik Alphanumeric string 24 hours (browser)
Twitter/X Ads twclid Numeric string 14 days
Snapchat Ads ScCid UUID format 28 days

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:

// ClickStream SDK: Attribution capture on every page load
const attributionSignals = {
    // Click IDs from ad platforms
    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(),

    // Session identifier (links to visitor's cookie)
    visitorId: getFirstPartyCookie()
};

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 (default: 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:

Identity Method Cross-Session Stitching Attribution Accuracy Avg. Touchpoints Visible
First-party cookie (365-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 an average of 4.2 touchpoints per converting journey. With session-only tracking, you see exactly 1 -- 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 365-day persistence 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. You should be able to see first-touch, last-touch, linear, time-decay, and position-based attribution side-by-side for the same conversions.

-- ClickStream SQL: Compare attribution models side by side
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:

Attribution Quality Budget Misallocation 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

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. Over a year, that's $240,000-480,000 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.

GET EARLY ACCESS