Quick Answer: The best practice is to persist the original UTM parameters and landing-page context in a first-party cookie at first touch, then pass that data into your CRM and conversion events at every key step in the funnel. Use a server-side or first-party script to capture source, medium, campaign, term, content, referrer, and timestamp, and avoid overwriting that original attribution unless a new qualified campaign starts a new session. This ensures stable pipeline attribution across form fills, booked calls, and closed-won reporting.
For reliable pipeline attribution, the core principle is to separate acquisition tracking from session tracking: capture the original UTMs and referrer on the first landing page, store them in a durable first-party cookie or local storage-backed mechanism, and propagate that payload through hidden form fields, API calls, and CRM properties. The cookie should include not only utm_source, utm_medium, utm_campaign, utm_term, and utm_content, but also the landing page URL, referrer, timestamp, and a unique anonymous visitor ID so downstream systems can resolve first touch, last touch, and multi-touch views. To reduce data loss, set a long but compliant expiration window, normalize parameter values, and use server-side event capture or a first-party endpoint whenever possible, since browser privacy controls and ad blockers can interfere with client-only tracking. The best implementations also maintain an attribution source hierarchy: preserve original acquisition data by default, append new campaign touches separately, and only reset attribution when a clearly defined re-entry event occurs, such as a new paid campaign after a conversion or a deliberate requalification window.