Skip to content
TraceLead

First touch attribution that a direct return visit cannot overwrite

TraceLead records the visit that first brought someone to your site and keeps it for 90 days by default. Whichever page they finally enquire from, your form's hidden fields carry that first channel, source and campaign, so the lead arrives with its original source.

No card needed. No lead caps on any plan.

The first touch, added to your CRM Sample data

Added by TraceLead's hidden fields. The name and email stay in your form.

Channel
Paid search
Source / medium
google / cpc
Campaign
brand-uk
Click ID
gclid
Arrived from

Why the original lead source goes missing

Analytics tools and URL-reading scripts see the visit in front of them. When someone clicks your ad on Monday and comes back by typing your address on Thursday, Thursday's visit has no campaign, no click id and no referrer.

Credit that enquiry to the last visit and your ad looks like it did nothing, while "direct" looks like your best channel.

Two visits, one enquiry Sample data
  1. Monday Clicks a Google ad, lands on /pricing?utm_source=google&utm_medium=cpc&utm_campaign=brand-uk&gclid=…, leaves.
  2. Thursday Types your address, opens /contact, sends the contact form.
Hidden field Read from the URL Filled by TraceLead
tl_channel empty paid_search
tl_source empty google
tl_utm_campaign empty brand-uk
tl_gclid empty Cj0KCQjw…
tl_landing_page /contact /pricing?utm_source=google&utm_medium=cpc

The direct-return rule: once a first touch is stored, a later visit with no campaign, click id or outside referrer never replaces it. A typed address, a bookmark or a click between your own pages is classified as direct and leaves the first touch alone.

How first touch attribution works in TraceLead

All of it happens in the visitor's browser, on your domain. The form is filled with plain values; nothing about the form changes for the person filling it in.

How the first touch is stored
  1. The visitor accepts cookies

    Nothing is read into storage or written before your consent banner says yes. The landing URL is held in memory, so a visitor who accepts on the page they landed on is still attributed to that landing.

  2. The visit is classified

    UTM tags win, then click ids, then the referrer. A Google ad click arrives as google / cpc / paid_search, a Google search as organic_search, a link from ChatGPT usually as chatgpt.com / referral. A fbclid on its own is organic_social, never paid.

    The published classification rules
  3. The first touch is kept for its lifetime

    It goes into a first-party cookie named after your site, with localStorage as a fallback:

    tl_ft_<site id>   first touch, 90 days by default (1 to 400)
    tl_lt_<site id>   last touch, only when the site keeps one

    The first stored visit stays until the lifetime runs out, whatever later visits look like. The lifetime is set per site under First-touch lifetime.

  4. The form is filled on any page

    When a page has a form with matching hidden fields, TraceLead writes the first touch into them, including forms that appear later in single-page apps and embeds. The enquiry goes wherever the form already sends it.

    <input type="hidden" name="tl_channel">
    <input type="hidden" name="tl_source">
    <input type="hidden" name="tl_utm_campaign">
    <input type="hidden" name="tl_first_touch_at">

First touch vs last touch attribution

First touch answers "what introduced this lead?". Last touch answers "what brought them back to enquire?". TraceLead always keeps the first; the last is an option per site, under Also keep the last touch.

Until a later campaign visit happens, the last touch equals the first. The dashboard and the lead counts stay first-touch only; the last touch exists only in the form fields.

Question First touch Last touch (optional)
Which visit The first visit after consent The most recent visit with a UTM, click id or outside referrer
A direct return Never replaces it Never replaces it
A later campaign visit Never replaces it Replaces it
Hidden fields tl_channel, tl_utm_campaign… tl_last_channel, tl_last_utm_campaign…
In the dashboard Yes No, form fields only

What arrives with each lead

Pick the fields you want; leave out the rest. With last touch on, the last_ counterparts sit beside the first-touch ones, so one enquiry shows both the ad that introduced the person and the newsletter that brought them back.

Also available: every UTM tag, the Google, Microsoft, Meta, LinkedIn, TikTok and X click ids, the referring site and the landing page, each with a last_ counterpart.

Hidden field Holds
tl_channel The channel the first visit came from
tl_source Where it came from
tl_utm_campaign The campaign name from your UTM tags
tl_landing_page The first page seen, sensitive parameters removed
tl_first_touch_at When the first visit happened
tl_last_channel The channel of the most recent campaign visit (when last touch is on)
tl_last_utm_campaign The most recent campaign (when last touch is on)
tl_last_touch_at When the most recent campaign visit happened (when last touch is on)

Attribution without personal data. No names, emails, form values, IP addresses or user agents. Ever.

No privacy workarounds. Nothing before consent, no fingerprinting, no ad-blocker bypass, no cross-site identity.

Made in the UK. GBP pricing, UK consent rules in mind, and a person who answers email.

Questions, answered

Anything else? Email us and a person replies.

What is first touch attribution?

Crediting a lead to the visit that first brought the person to your site: the ad, search, post, newsletter or link they arrived from. TraceLead records that visit once the visitor accepts cookies and writes it into your form's hidden fields when they enquire, from whichever page and however many visits later.

What is the difference between first touch and last touch attribution?

First touch credits the visit that introduced the person; last touch credits the most recent campaign visit before the enquiry. TraceLead always keeps the first touch. Switch on "Also keep the last touch" for a site and the last_ fields carry the most recent campaign beside it.

How do I find the original lead source of an enquiry?

Add hidden fields such as tl_channel, tl_source and tl_utm_campaign to the form. They arrive with the enquiry in your inbox or CRM, holding the channel, source and campaign of the first visit, for example paid_search, google and brand-uk.

How long is the first touch kept?

90 days by default, from the first visit. You can set any lifetime from 1 to 400 days per site under First-touch lifetime in the attribution settings. When it runs out, the next visit becomes the new first touch.

What if the first visit was direct?

Then the first touch is direct, and a later campaign visit does not replace it: the first observed visit is kept for its lifetime, whatever it was. If you want to see a campaign that came after a direct first visit, switch on last touch.

Does first touch attribution work across devices?

No. The first touch lives in a first-party cookie in one browser on your own domain. Someone who clicks an ad on their phone and enquires from a laptop starts a new first touch on the laptop. TraceLead keeps no cross-device or cross-site identity.

Is anything recorded before the visitor accepts cookies?

No. Until your consent banner says yes, nothing is stored and the fields stay empty. If the visitor accepts on the page they landed on, the campaign from that landing is still captured.

Keep the visit that found you, on every lead.

One script tag and the hidden fields you want. The first touch is kept from the visitor's first accepted visit until the lifetime you set.

No card needed. Cancel any time.

The whole install v1.4.0
<script async src="https://app.tracelead.io/snippet/v1/tracelead.js" data-site="tl_YOUR_SITE_ID"></script>

<input type="hidden" name="tl_channel">
<input type="hidden" name="tl_source">
<input type="hidden" name="tl_utm_campaign">
<input type="hidden" name="tl_first_touch_at">
<input type="hidden" name="tl_last_channel">