First-Touch vs Last-Touch UTM Attribution: Capture Models, Cookies & CRM Sync

Compare first-touch and last-touch UTM tracking. Define when to save and update campaign values in browser storage, forms and your CRM.

Customer journey timeline diagram contrasting first-touch discovery attribution with last-touch conversion attribution
Table of Contents
  1. The Multi-Touch Attribution Divide
  2. First-Touch in GA4 vs First-Touch in Your CRM
  3. Last-Touch in GA4 vs Last-Touch in Your CRM
  4. How to Implement Dual-Capture in Client-Side Storage
  5. How to Report Both Models to Leadership

First-touch tracking records how you first acquired a prospect. Last-touch tracking records a later interaction before a conversion. Keeping both can help you understand a longer sales journey, provided you define when each field is saved and updated.

The Multi-Touch Attribution Divide

Consider a typical B2B buyer journey:

  • Day 1: Prospect clicks a LinkedIn Sponsored Post (utm_source=linkedin&utm_campaign=brand-awareness) and reads a blog post. No form submission.
  • Day 14: Prospect Googles your brand, clicks an organic search result, and downloads a whitepaper.
  • Day 30: Prospect clicks a retargeting ad on Google Display (utm_source=google&utm_medium=cpc&utm_campaign=retargeting-demo) and requests a demo.

A last-touch view may give most or all recorded credit to Google Display even when LinkedIn helped introduce the prospect. A first-touch view answers a different question and may not show which later interaction influenced the decision. Compare attribution models and CRM touchpoints when evaluating the journey.

First-Touch in GA4 vs First-Touch in Your CRM

  • In GA4: Represented by First user source / medium and First user campaign. These are user-scoped reporting dimensions, not a promise that the original UTM strings are stored in a readable browser cookie.
  • In CRM (HubSpot/Salesforce): Represented by Original Source or custom fields First Touch Source. Define whether the value means first recorded tagged visit or source at lead creation, and document when corrections are allowed.

Last-Touch in GA4 vs Last-Touch in Your CRM

  • In GA4: Represented by Session source / medium and Session campaign. These are session-scoped dimensions; event-level conversion attribution can use a different model.
  • In CRM: Represented by Last Touch Source. Overwritten every time a known lead fills out a new form, attends a webinar, or converts on an offer.

How to Implement Dual-Capture in Client-Side Storage

The following pseudocode illustrates an update rule, not a production implementation. Run permitted storage only under your consent policy, store complete campaign bundles with timestamps, and test expiration and unavailable storage. Requested cookie lifetimes can be shortened by browser rules:

// Pseudocode for Dual-Touch Storage
function storeTouchpoints(utmParams) {
  // If first-touch cookie does not exist, write it once
  if (!getCookie('ft_utm_source') && utmParams.source) {
    setCookie('ft_utm_source', utmParams.source, 365); // 1-year expiry
    setCookie('ft_utm_campaign', utmParams.campaign, 365);
  }

  // Always overwrite last-touch cookie with fresh session data
  if (utmParams.source) {
    setCookie('lt_utm_source', utmParams.source, 30);
    setCookie('lt_utm_campaign', utmParams.campaign, 30);
  }
}

How to Report Both Models to Leadership

Present side-by-side pipeline contribution: credit top-of-funnel channels for Pipeline Created using first-touch data, and credit bottom-of-funnel channels for Deals Closed using last-touch data.

Define the update rule before testing storage

For a custom first tagged touch / latest tagged touch model, use this illustrative acceptance test. This is a CRM convention, not a reproduction of GA4 attribution.

Test visitFirst tagged touchLatest tagged touch
New visitor: linkedin / paid_social / awarenessSave the complete LinkedIn bundle once.Save the same bundle and timestamp.
Later untagged visitRetain the existing bundle if it is still available.Retain it only if your documented model ignores untagged visits.
Later tagged newsletter / email / demoRetain the original available bundle.Replace the entire bundle, clearing old fields absent from the new touch.
Storage unavailable or expiredRecord unknown; do not invent the earlier source.Capture permitted current values and state the limitation.

A direct or untagged visit is not automatically organic, and a CRM record cannot recover browser history that was never captured. Store timestamps and the model definition with the data. Use the CRM capture guide to test the saved record, and Google’s attribution documentation when comparing it with GA4.

For the broader setup, read UTM Operations: How to Build a Reliable Campaign Tracking Workflow. Browse the UTM Operations, Automation & QA guides to choose another troubleshooting task.

References