How we track which marketing channel generated each lead
A lead attribution case study: the tracking stack, the weekly report format, and how organic, paid, referral and AI citations are separated so every lead arrives with its source.
A marketing leader is asked at the Monday meeting which channel produced last quarter’s pipeline. She has a CRM field called Lead Source. It is filled in by hand, three weeks late, by whoever picked up the phone. Forty per cent of the rows say Other.
Attribution is not a report you buy. It is a chain, and it breaks at whichever link nobody wired.
Where attribution actually breaks
Most B2B attribution fails in one of four places: links go out untagged, so the source never enters the system; the form does not carry the tags into the CRM, so the lead arrives anonymous; nothing records the page the lead converted on, so the content that did the work gets no credit; and nothing separates AI referral traffic, so a citation in ChatGPT lands in the direct bucket alongside people typing the URL. Fixing all four is two weeks of work and no design change.
The chain, link by link
Tag
Every link the company controls carries UTM parameters naming source, medium and campaign. Paid, email, social, partner links and QR codes included.
utm_source, utm_medium, utm_campaign, utm_contentCapture
A first-touch script stores the original source, the referring site, the landing page and any ad click ID in the visitor session, so the value survives the visitor bouncing around the site before converting.
dd_source, dd_referrer, dd_landing, gclidPass
Hidden fields on every form carry those values into the CRM with the lead record, at the moment of submission, without anyone typing anything.
HubSpot contact propertiesAttribute
The conversion page is recorded on the lead, and first touch and last touch are reported side by side rather than one being chosen for you.
GA4 events, HubSpot lifecycle stageReport
One page a week, grouped by channel, showing leads, qualified leads, and which channels produced the ones that closed.
Weekly lead source reportThe weekly report you receive
One page, every week, grouped by channel. This is the format, with the cells left empty: client figures from attribution engagements are not published.
What was built
- A tagging convention written down, so every link the team ships afterwards is tagged the same way without asking.
- First-touch source capture stored in the session, so the source survives a visitor who reads three pages before filling in a form.
- Hidden source fields on every form mapped to CRM properties, so no lead arrives without a source.
- An AI referral channel separated out of direct, so citations are visible as a line rather than disappearing into it.
- One weekly page grouped by channel, with leads, qualified leads and closed deals in the same view.
What the report changes
The L10 conversation moves from “we think LinkedIn is working” to “LinkedIn sent eleven leads, three closed, here is the cost per closed deal.” The tactic that is working gets more budget and the one that is not gets cut, on evidence rather than memory.
The table above is the report format, not a client’s results. Client figures from attribution engagements are not published, so every cell is left empty deliberately. What is documented here is the stack, the chain and the weekly artefact you receive.
Questions about attribution
As far as the referrer allows. AI tools that pass a referrer are matched and separated into their own channel; those that do not are inferred from landing page and session pattern and reported as probable rather than certain. Either way it stops being counted as direct.
Pick a time. We set the baseline on the call.
Mobile conversion rate, AI-referred traffic and lead count, measured before any work starts. You leave with the window and the number, whether or not you hire me.
If the calendar does not load here, the host is blocking the frame. Open it in a new tab with the link above.