Marketing attribution assigns credit for a conversion across the touchpoints before it. It uses a defined rule. That is the whole definition. Everything else is argument about which rule.
I have had to defend an attribution number in a board deck. Not present it. Defend it, against a CFO with the CRM open on his own laptop. That experience produced the position I hold now. It is not the one most attribution vendors sell.
Multi-touch models are useful for allocating budget. They are useless as proof. What you defend in a board meeting is not a model output. It is the measurement-independent record. A form submission became a CRM record. That record became an opportunity. That opportunity has an amount and a close date. That chain survives a tag breaking. A model does not.
What is marketing attribution
Attribution answers one question. Of the interactions a buyer had before converting, which ones get credit, and how much. The rule you pick is the attribution model. The rule is a choice, not a discovery.
Three things make B2B harder than the ecommerce case attribution was designed for.
The buying committee. In complex B2B purchases, five to eleven people join the decision. Attribution tracks browsers, not committees. The person who filled the form is frequently not the person who signs. Your model credits a cookie. Your revenue came from a group.
The lag. A mid-market SaaS deal closes 90 to 180 days after first touch. Cookie lifetimes, session windows, and lookback windows are usually shorter than that. The touch that started the deal is often outside the window that gets to score it.
The dark middle. Buyers research independently. Slack groups, peer calls, a podcast, a competitor's G2 page. None of it is instrumented, and none of it will be. Attribution measures the instrumented slice. Then it reports that slice as if it were the whole.
So attribution modeling is not a measurement of what caused revenue. It is a bookkeeping convention applied to the subset of behavior you happened to capture. Treat it that way and it becomes useful. Treat it as truth and you will lose the room. That happens the first time someone checks it.
Attribution is an accounting rule applied to partial data. It is not evidence of causation, and a good CFO knows the difference.
The attribution models explained
Six models cover almost everything you will meet. Each one rewards a different part of the funnel. Each one lies in a specific, predictable way.
| Model | How credit splits | What it rewards | When it lies |
|---|---|---|---|
| First-touch | 100% to the first interaction | Top-of-funnel demand creation, brand, SEO | Ignores everything that closed the deal; makes awareness look self-sufficient |
| Last-touch | 100% to the final interaction before conversion | Bottom-of-funnel capture, branded search, retargeting | Credits the closer for work the opener did; breaks entirely when the final click is untracked |
| Linear | Equal credit to every interaction | Breadth of contribution | Treats a webinar and a pricing-page visit as equally decisive; flattens real signal |
| Time-decay | More credit the closer to conversion | Late-stage nurture and sales-adjacent touches | Systematically undervalues the channel that created the demand |
| U-shaped / W-shaped | 40/20/40 across first, lead creation, and (for W) opportunity creation | Named funnel milestones | The weights are arbitrary; nobody can defend why 40 and not 30 |
| Data-driven | Algorithmic, from observed conversion paths | Empirically frequent contributing paths | Needs conversion volume; is a black box you cannot reproduce by hand |
HubSpot documents First Touch as giving all credit to the first interaction. Last Touch gives all credit to the last interaction before conversion. Linear gives equal credit across all interactions. HubSpot also documents W-shaped, J-shaped, and Inverse J-shaped variants. Google Ads has consolidated hard in the other direction. Its help documentation states that four models are no longer supported. Those are first click, linear, time decay, and position-based. It states that data-driven is the default model for most conversion actions.
That consolidation matters. The platforms are moving toward algorithmic credit for a reason. The rule-based models were never defensible. You cannot argue with a black box. You also cannot audit one.
Single-touch vs multi-touch attribution for B2B
The first touch vs last touch debate is the wrong debate. Both are single-touch models. Both are wrong in the same way. They assign 100% of credit to one moment. That process took six months and eight people.
Multi-touch attribution is more honest about the shape of a B2B purchase. It is still not proof. Here is the distinction I hold to, and the one I put in front of a board.
Use multi-touch for allocation. Say you are deciding where next quarter's incremental $50K goes. A multi-touch view of which channels appear in winning paths is genuinely informative. It is a prior, and a prior beats a guess. If a channel never appears in any closed-won path, that tells you something real.
Do not use multi-touch for proof. Take the question "did marketing generate this revenue." The answer comes from the CRM record, not the model. Sourced pipeline means a first known marketing touch on the record. That record became the opportunity. Influenced means any marketing touch in the trailing window. Both are countable from records. Neither requires a weighting scheme anyone has to agree with.
This is the same discipline I apply to lead definitions. I do not report MQLs, for exactly parallel reasons. A model-derived score is not an event, and an event is what survives scrutiny. Attribution percentages and MQL counts fail under the same pressure. That pressure is someone asking where the number came from.
How to set up attribution that survives a board deck
Four things, in this order. Skip one and the rest do not hold.
1. Fix the form to CRM to opportunity chain first. This is the anchor. Every conversion event that matters should produce a durable CRM record. That record needs the original context stamped on it at creation. Stamp first URL and first referrer. Stamp UTM parameters, the form identifier, and a timestamp. Stamp on creation, never on update. Update overwrites the origin story with the most recent visit. Those stamped fields are measurement-independent. If GA4 stops firing tomorrow, the record still says where the contact came from. That is the property that makes a number defensible.
2. UTM and gclid hygiene. One naming convention, enforced, documented, with a validator on the way in. Lowercase everything. Fixed vocabularies for source and medium. And be careful with one distinction: a landing-page path is not a paid query parameter. I have watched a classification script label leads "paid" on the wrong evidence. The URL merely contained a campaign landing-page slug. The actual paid parameter was absent. The script said fourteen paid leads. The raw field values said zero. Say your classifier reads a path substring instead of gclid= or utm_medium=cpc. Then your paid number is fiction.
3. Understand what consent mode does to your data. A visitor may decline analytics or advertising storage. Then the click identifier is not written. The session is not stitched to the eventual conversion. That is not a bug. It is the system working correctly under the consent the user gave. The effect is not random. It falls hardest on last-touch. Last-touch depends entirely on a correctly attributed final click. Consent gating and ad blockers break the same link. So do cross-device journeys and iOS privacy controls.
4. One source of truth, declared in writing. The CRM is the record. GA4 is a behavioral instrument. Google Ads and LinkedIn are platform-reported optimization signals. When they disagree, the CRM wins for revenue questions. The platforms win for questions about their own auction. Write that down before the quarter, not during the board meeting.
Do these four and the number you present has a lineage. Someone can pull the record, read the stamped fields, and reproduce your count by hand. That is what "defensible" actually means. It is the same standard I apply to marketing ROI measurement generally.
HubSpot marketing attribution and Salesforce attribution: what each can and cannot do
Both are capable. Both are frequently misconfigured. Know the boundaries before you promise a board anything.
HubSpot marketing attribution. HubSpot's documentation describes attribution reporting. It shows the interactions contacts have along the customer journey. It lists contact-create attribution and Revenue Attribution as distinct report types. Revenue Attribution measures impact on deal revenue. It covers sources, assets, and interactions. The docs state it is available on Marketing Hub Enterprise accounts only. Reports include up to 20 million interactions after sampling. Each report uses a defined set of interaction types. Those decide what is eligible for credit.
What that means operationally. HubSpot will happily give you a multi-touch revenue view. But only if the deal is associated to the contacts whose interactions you want credited. Association hygiene is the whole ballgame. Say a deal is attached to one contact when six people engaged. It produces a confident, wrong picture. Also note the tier gate. If you are on Professional, revenue attribution is not available to you. Any plan that assumes it will stall.
Salesforce Campaign Influence. Salesforce's model is structurally different. It attributes opportunity amount to campaigns through Campaign Influence records. Customizable Campaign Influence lets an admin define attribution models. It also lets them set influence percentages per campaign on an opportunity. The primary campaign source field carries a single campaign. By default the standard model looks back from opportunity creation. That window is configurable.
What Salesforce cannot do out of the box is web-session attribution. It has no native concept of a first referrer or a click identifier. You must build the fields and write them. That is why the form-to-CRM stamping in step one matters so much here. In Salesforce, the origin context exists only if you put it there.
The honest summary. HubSpot gives you journey-level attribution with the touch data built in. Salesforce gives you campaign-to-opportunity attribution with a flexible model. It has no touch data unless you supply it. Neither one solves the buying committee. Neither one is a proof engine.
Marketing attribution software: when a tool helps
A dedicated attribution tool is worth buying under narrow conditions.
It helps when you have real volume, meaning hundreds of closed-won deals a year. Data-driven modeling needs paths to learn from. It helps when spend across channels is large enough that a 10% misallocation matters. It helps when you already have clean CRM plumbing. A tool ingests your data and cannot repair it.
It does not help when your form-to-CRM chain is broken. It does not help when your UTMs are inconsistent. It does not help when your deals are not reliably associated to the contacts who engaged. In those cases the tool produces a more expensive wrong answer. It arrives with better charts. I have never seen an attribution platform fix a data-hygiene problem. I have seen several obscure one.
The build-versus-buy read. Your questions may be which channels appear in winning paths, and how the mix has shifted. A CRM report and a quarterly pull answer them. Your question may be "what is the marginal return on the next dollar." No attribution tool answers that either. That is an incrementality question. It needs a holdout test, not a model.
Reconciling Google Ads, GA4 and the CRM
These three systems will not agree. They are not supposed to. Each counts a different thing over a different window with a different rule. The divergence is by design.
Google Ads counts conversions it can tie to an ad interaction. Its own attribution model credits them. By default it reports conversions back to the click date, not the conversion date. GA4 counts key events attributed across paid and organic channels. Its documentation notes a fallback. Where no Google Ads click is in the path, it falls back to paid and organic last click. The CRM counts records and opportunities on the date they were created. It uses no attribution model at all.
Here is a worked example. These numbers are illustrative, not from a client account.
| System | Reported demo requests, one month | Why it differs |
|---|---|---|
| Google Ads | 62 | Ad-attributed only, credited to click date, includes view-through where enabled |
| GA4 | 48 | Session-based, consent-gated, cross-device gaps, conversion-date basis |
| CRM (form submissions) | 71 | Every submission, regardless of consent, tracking, or channel |
| CRM (with paid parameter present) | 39 | Only records where a paid query parameter was actually stamped |
Read this the way I would in a review. The CRM count of 71 is the true number of demo requests. A form submission is measurement-independent. GA4's 48 is lower because consent declines and cross-device journeys drop sessions. Google Ads' 62 exceeds GA4's total for two reasons. Click-date reporting shifts conversions into a different month. View-through can also be included. The 39 with a paid parameter present is the floor on paid contribution, not the ceiling. Gclid loss removes the parameter from real paid leads.
The gap between 62 and 39 is not an error to average away. It is the finding. It tells you how much of your paid attribution depends on a click identifier. That identifier is not always there. If that gap grows quarter over quarter, your last-touch reporting is degrading. The correct response is to change how you report. It is not to pick whichever number flatters the channel.
The rule I hold to: never average across systems. When two systems disagree materially, pull the raw records. Let the field values settle it. The discrepancy is data about your measurement. It is usually the most useful thing on the page.
What I actually put in the board deck
Three numbers, none of them a model output.
Marketing-sourced pipeline. I count it from CRM records with a first marketing touch stamped at creation. Marketing-influenced pipeline. I count it from records with any marketing touch in the trailing window. I report that one separately so nobody adds them. And acquisition efficiency, expressed as CAC payback months. That number connects marketing spend to cash.
Underneath those, one slide on measurement health. It shows consent rate and the CRM-to-platform gap. It also shows the share of paid records carrying a click identifier. That slide is what buys you credibility for the three above it. A CFO who sees you naming your own measurement limits stops looking for the ones you hid.
Multi-touch model output goes in the appendix, labeled as an allocation aid. It informs where the next dollar goes. It is not offered as proof, and I do not defend it as proof. That is precisely why nobody attacks it.
Attribution done this way is boring. Boring survives the meeting. If you want this applied to your own stack, that is what the growth diagnostic is for. It is the same measurement work I run inside a marketing leader engagement.
Sources
Class A (vendor and platform documentation, fetched 2026-09-09)
- HubSpot, Create attribution reports: attribution report types, First Touch / Last Touch / Linear / W-shaped / J-shaped model definitions, Revenue Attribution as Marketing Hub Enterprise only, 20 million interaction limit after sampling.
- Salesforce, Campaign Influence: Campaign Influence records, Customizable Campaign Influence, admin-defined attribution models and influence percentages, primary campaign source.
- Google Ads, About attribution models: first click, linear, time decay and position-based no longer supported; data-driven is the default model for most conversion actions; Model comparison report.
- Google Analytics 4, Get started with attribution: data-driven attribution distributes credit based on data for each key event; model is specific to each advertiser and key event; fallback to paid and organic last click where no Google Ads click is present.
Class C (operator judgment, labeled)
- [Mishaal's judgment] The four-step setup sequence and the "never average across systems" rule come from direct engagement work, not from published research.
- [Mishaal's judgment] The reconciliation table numbers are illustrative and constructed to show the shape of a typical divergence. They are not from a client account.
- [Mishaal's judgment] The path-substring classifier failure described in the UTM section is a real defect pattern I have debugged, generalized here without client identifiers.