Skip to content
TraceLead

Leadpages UTM tracking with hidden fields TraceLead fills

Add hidden fields to your Leadpages form and TraceLead fills them with where the visitor first came from, including the visits that never carried a UTM tag: search, social posts, referrals and AI assistants. The source arrives in Leadpages and in the integration you send leads to.

No card needed. No lead caps on any plan.

  • Leadpages: Tested on every release against the builder's markup
  • How we test
Added to your Leadpages leads 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 Leadpages hidden fields miss untagged visits

A Leadpages hidden field holds nothing until something fills it. Copying UTM tags from the address fills it for the ad click that converts straight away, and for nobody else.

The visitor who clicks the ad, leaves and comes back on Thursday arrives with a bare URL. So does everyone from a Google search, a shared post or a link on another site: there was never a tag to copy.

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 Leadpages 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

TraceLead keeps the first visit in a first-party cookie on the page's domain once your banner allows it, and fills the fields on the visit that converts.

How to add UTM tracking to Leadpages

Four steps. The tested fixture renders Leadpages' published form markup on every release.

The full Leadpages guide
  1. Allow the page's domain

    In TraceLead, add the domain your Leadpages page is published on to your site's allowed domains. A subdomain of your main domain shares the first touch with it when the browser allows; a page on a separate domain keeps its own record.

  2. Paste the tag in the tracking code

    Open Page Settings → Tracking Code and paste the TraceLead tag and your consent call into the Head section. Site-wide code goes in the site's settings the same way.

    <script async src="https://app.tracelead.io/snippet/v1/tracelead.js" data-site="tl_YOUR_SITE_ID"></script>
  3. Add hidden fields to the form widget

    In the form widget, choose Add hidden field for each value and name it tl_ plus the field, with no value:

    tl_channel
    tl_source
    tl_medium
    tl_utm_campaign
    tl_referrer_host
  4. Publish and check a lead

    Publish, open the page with ?utm_source=test&utm_medium=cpc, accept cookies and send a test entry. Check it in Leads or in the connected integration.

What arrives with each Leadpages lead

Plain values your lead list, email tool or CRM can sort and filter. Visits without tags are classified by the published rules:

  • A Google search google / organic / organic_search
  • A Facebook post (fbclid only) facebook / social / organic_social
  • A link in a ChatGPT answer, with its referrer chatgpt.com / referral / referral
  • A typed address or bookmark (direct) / (none) / direct
Leadpages hidden field Holds
tl_channel The channel the first visit came from
tl_source Where it came from
tl_medium How it came
tl_utm_campaign The campaign name from your UTM tags
tl_referrer_host The site that sent the visit
tl_gclid Google Ads click id, for offline conversion import
tl_landing_page The first page seen, sensitive parameters removed
tl_first_touch_at When the first visit happened

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.

How do I add hidden fields in Leadpages?

In the form widget, choose Add hidden field for each value and name it tl_channel, tl_source, tl_utm_campaign and so on, with no value. TraceLead fills them on the published page once the visitor accepts cookies.

Where does the TraceLead tag go in Leadpages?

Open Page Settings → Tracking Code and paste the tag and your consent call into the Head section. For code on every page of a site, add it in the site's settings the same way.

What do visits without UTM tags show as?

They are classified from the click id or the referrer: a Google search is google / organic / organic_search, a Facebook post is facebook / social / organic_social, a link from ChatGPT is usually chatgpt.com / referral / referral, and a typed address is (direct) / (none) / direct.

Is a Facebook click with an fbclid counted as paid social?

Not on its own. Facebook adds fbclid to every outbound link, so a click carrying only fbclid is organic_social. Tag your Meta ads with utm_medium=paid_social (or cpc with a Facebook source) and they arrive as paid_social.

Does a return visit change the lead source?

No. TraceLead keeps the first touch for the lifetime you set, 90 days by default. A direct return from a bookmark never replaces a recorded campaign.

Does TraceLead see the email address on the opt-in form?

No. The snippet writes into the hidden fields and never reads any value in the form. The lead goes to Leadpages as before; TraceLead keeps only a pseudonymous lead record (random ids, the form id and page path, and its channel and campaign) for your dashboard, if lead collection is on.

What if TraceLead is down or blocked?

The form still submits. The hidden fields are empty for that lead; nothing in the Leadpages form waits for TraceLead.

Your next Leadpages lead, with its source.

Paste the tag in the page's tracking code, add the hidden fields and publish.

No card needed. Cancel any time.

The whole install v1.4.0
Page Settings → Tracking Code (Head section):
<script async src="https://app.tracelead.io/snippet/v1/tracelead.js" data-site="tl_YOUR_SITE_ID"></script>

Form widget → Add hidden field:
tl_channel
tl_source
tl_utm_campaign
tl_referrer_host