Short answer: First-touch attribution gives all the credit for a lead to the first marketing interaction the buyer had with you; last-touch attribution gives all the credit to the final interaction before they converted. First touch shows which channels find new prospects; last touch shows which channels close them. Since November 2023 GA4 no longer offers a first-click model, so first touch now comes from user-scoped dimensions in GA4 or a write-once "original source" field in your CRM. Report both, on the same lead cohort, before moving budget.
Need this done for you? GrowthSparx offers a fixed-scope lead tracking and attribution setup: GA4, Google Ads, Meta, WhatsApp, calls and CRM wired into one dashboard, usually live in 2–3 weeks.
Benchmark reference: the public 2025–2026 numbers behind this guide (Meta and Google CPC/CPM in India, CPL ranges by industry, landing-page conversion, real estate funnel rates, WhatsApp API pricing) are collected and graded in our India lead generation benchmarks 2026 report.
What is first-touch vs last-touch attribution?
First-touch attribution (also called first-click) assigns 100% of a conversion's credit to the earliest recorded interaction. If a buyer first clicked an Instagram ad, then later searched on Google and enquired, the Instagram ad gets the whole lead.
Last-touch attribution (last-click) assigns 100% of the credit to the final recorded interaction before the conversion. In the same journey, the Google search click gets the whole lead.
Both are single-touch models. They are simple, explainable to a founder in one sentence, and easy to compute from a CRM. Their weakness is the same: every interaction between the first and the last is invisible. If you need multi-touch models (linear, time decay, position-based, data-driven) and the full lead-to-revenue tracking setup, read our marketing attribution models and lead tracking guide. This page stays on the two-model comparison.
How do first touch and last touch compare?
| First touch | Last touch | |
|---|---|---|
| Question it answers | Where did this buyer first come from? | What made them enquire (or buy) now? |
| Channels it tends to favour | Meta and YouTube prospecting, display, SEO blog content, PR, portals where buyers first browse | Brand search, retargeting, email and WhatsApp follow-ups, direct visits |
| Channels it tends to undervalue | Retargeting and brand search | Awareness and content that starts the journey |
| Data needed | A source recorded on the first visit and kept unchanged until conversion, often weeks later | Only the source of the converting session |
| Main failure mode | First visit untracked (cookie cleared, different device), so a later channel is wrongly named "first" | Credits sales follow-ups and direct visits that did not create the demand |
| Available as a model in GA4 today? | No (removed Nov 2023); use First user dimensions | Yes: paid and organic last click; Google paid channels last click |
| Available in Google Ads? | No | Yes (last click), alongside data-driven |
The GA4 and Google Ads rows are from Google's own help pages: GA4 states that "the first click, linear, time decay, and position-based attribution models are no longer available as of November 2023" (Google Analytics Help), and Google Ads now supports only last click and data-driven.
Worked example: how does the credit change on real leads?
Example (illustrative; assumptions stated): a study-abroad consultancy in Delhi NCR looks at six leads from one week. Each lead that enrols is worth ₹60,000 in fees. Four of the six enrolled. Touches are in date order; "→" means a later visit.
| Lead | Recorded journey | Enrolled? | First touch | Last touch |
|---|---|---|---|---|
| A | Instagram ad → Google brand search → enquiry form | Yes | Meta | Google Search |
| B | SEO blog post (country guide) → Instagram retargeting ad → WhatsApp chat | Yes | Organic search | Meta |
| C | Google Search ad → enquiry form | Yes | Google Search | Google Search |
| D | Instagram ad → direct visit → enquiry form | No | Meta | Direct |
| E | YouTube ad → SEO blog post → Google brand search → call | Yes | YouTube | Google Search |
| F | Instagram ad → WhatsApp chat | No | Meta | Meta |
Now total the leads and the enrolment revenue (4 × ₹60,000 = ₹2,40,000) by channel under each model:
| Channel | Leads (first touch) | Revenue (first touch) | Leads (last touch) | Revenue (last touch) |
|---|---|---|---|---|
| Meta (Instagram) | 3 | ₹60,000 | 2 | ₹60,000 |
| Google Search | 1 | ₹60,000 | 3 | ₹1,80,000 |
| Organic search (SEO) | 1 | ₹60,000 | 0 | ₹0 |
| YouTube | 1 | ₹60,000 | 0 | ₹0 |
| Direct | 0 | ₹0 | 1 | ₹0 |
| Total | 6 | ₹2,40,000 | 6 | ₹2,40,000 |
What the example shows:
- Google Search triples under last touch (₹60,000 → ₹1,80,000) because two of its three wins were brand searches by people another channel had already introduced. Brand search mostly harvests demand; last touch makes it look like it creates it.
- SEO content and YouTube vanish under last touch. Leads B and E started with them, and both enrolled. Cut them on last-touch numbers and next quarter's brand searches fall.
- Meta has the most first touches (3) but its first-touch leads convert worst (1 of 3 enrolled). That is a real finding: Instagram is good at starting conversations with this audience, but the targeting or creative may be pulling in people who are not ready. First touch plus CRM outcome reveals it; lead counts alone would not.
- Totals match. Single-touch models never double-count, unlike ad-platform dashboards where Google Ads and Meta can each claim lead A.
Six leads is far too few to decide anything; the point is the mechanics. On a real account we run the same table on a full month or quarter of CRM leads.
Is last touch the same as last non-direct click?
No, and the difference matters. Strict last touch credits whatever came last, including lead D's direct visit. "Last non-direct click" skips direct sessions and credits the previous real channel, so lead D would go to Meta. GA4's "paid and organic last click" model ignores direct traffic in this way, per Google's attribution help page.
A second trap is sales activity. If your telecaller sends a WhatsApp message with a tracked link and the buyer clicks it before booking, strict last touch credits "WhatsApp" for a deal that marketing generated. We tag sales-sent links with a separate medium (for example utm_medium=sales_followup, built with our UTM builder) and exclude it from channel-budget reports.
Where do you find first-touch and last-touch data?
| Tool | First-touch view | Last-touch view |
|---|---|---|
| GA4 | User-scoped dimensions: First user source / medium, First user campaign | Event-scoped dimensions on the lead key event with the reporting model set to paid and organic last click; or Session source / medium |
| Google Ads | Not available | Last click model on the conversion action (data-driven is the default) |
| HubSpot | Original Traffic Source | Latest Traffic Source |
| Other CRMs (Zoho, LeadSquared, Salesforce) | A custom write-once "original source" field fed from hidden form fields | A "latest source" field updated on each new enquiry |
Notes on reading these correctly:
- GA4 scopes. Google explains that the value of a user-scoped dimension "remains the same as users return", that First user source / medium "represents the source / medium that acquired the user in the first session", and that user- and session-scoped dimensions "are unaffected by changes to the attribution model" (traffic-source dimensions). So First user source is a first-touch view of the user, not of each lead event.
- Lookback windows. Last-touch credit in GA4 only looks back as far as the key-event window: 90 days by default for non-acquisition key events, with 30 or 60 as options (attribution settings). For real estate or admissions with longer cycles, keep 90.
- HubSpot behaviour. HubSpot sets Original Traffic Source from the earliest tracked visit (including anonymous visits before the person became a contact), while Latest Traffic Source changes when a new session starts; imports do not change it (HubSpot Knowledge Base).
- Re-attribution. GA4 says conversions "can be reattributed for up to 7 days", so data-driven numbers can shift after the fact. First user dimensions do not.
How do you capture first touch reliably in your own CRM?
If your CRM has no native first-touch field, build one. The pattern we use:
- On every landing, read
utm_source,utm_medium,utm_campaign,gclid,fbclidand the landing path from the URL. - If no first-touch cookie exists, write one (for example
gs_ft) with those values and a timestamp, lasting 90 days or your sales-cycle length. Never overwrite it. - Always write a last-touch cookie (
gs_lt) when a new tagged visit arrives, overwriting the previous one. Untagged direct visits should not overwrite it, which gives you last non-direct behaviour. - On form submit, copy both cookies into hidden fields (
ft_source,ft_medium,ft_campaign,lt_source, …). Our form tracking guide covers the GTM side. - In the CRM, map
ft_*to fields that are locked after creation, andlt_*to fields that update on each new enquiry from the same contact. - Non-web leads (calls, WhatsApp, portals such as 99acres or Shiksha) need a source set at creation: tracking numbers for calls, a reference code for chats (see WhatsApp lead tracking), and a fixed source value per portal integration.
Expect gaps. A buyer who first saw you on a phone and enquired from an office laptop will show the laptop's first visit as "first touch". That is a limitation of any cookie-based model, not a bug to chase.
When should you use first touch, and when last touch?
| Decision | Use | Why |
|---|---|---|
| How much to spend on prospecting (Meta, YouTube, content) | First touch, judged on qualified leads and revenue | These channels start journeys; last touch hides them |
| Which landing page or offer converts best | Last non-direct touch | The final session is where the page did its job |
| Brand search and retargeting budgets | Compare both; trust neither alone | They look excellent on last touch because they harvest demand others created |
| Google Ads bidding | Data-driven or last click inside Google Ads, on an imported qualified-lead conversion | Bidding cannot use a first-touch model; feed it better conversions instead (see tracking qualified leads to Google Ads) |
| Does a channel cause extra sales at all? | A holdout test, not a model | Both models describe paths; neither proves causation |
The report we set up for clients is one table per month: rows are channels; columns are first-touch leads, first-touch qualified leads, first-touch revenue, then the same three for last touch. Where the two lenses disagree by more than 2× for a channel, that channel gets a closer look before any budget change. The revenue columns come from the CRM, as described in our CRM revenue attribution guide.
What mistakes should you avoid?
- Overwriting the original source. If a CRM workflow updates "lead source" on every new form, first touch silently becomes last touch. Lock the field.
- Comparing GA4 First user source with Google Ads conversions and expecting a match. One is a user-level first-session view across all channels; the other is last click or data-driven across Google ads only.
- Judging on lead counts instead of outcomes. In the worked example, Meta wins on first-touch lead count and loses on first-touch revenue per lead.
- Letting direct and sales follow-ups take credit. Use last non-direct logic and a separate medium for sales links.
- Treating a single month as truth. With under ~50 qualified leads a month, compare quarters.
Sources
- Google Analytics Help: Get started with attribution: current GA4 models; first click and others removed November 2023; paid and organic last click ignores direct; 7-day re-attribution.
- Google Analytics Help: Traffic-source dimensions: user, session and event scope; First user source / medium definition.
- Google Analytics Help: Attribution settings: 30-day and 90-day lookback defaults and options.
- Google Ads Help: About attribution models: last click and data-driven are the supported models.
- HubSpot Knowledge Base: Source properties: how Original and Latest Traffic Source are set.
