Attribution
Upstream: Martech Stack & Automation — instrumentation, tooling, and data plumbing. This page covers measurement execution.
The decision this page enables: which marketing touchpoints get credit for revenue — and therefore which channels get budget next quarter.
What attribution is (and why it matters)
Section titled “What attribution is (and why it matters)”Attribution is the set of rules and methods for assigning credit to marketing touchpoints along the path to conversion. Every dashboard that says “LinkedIn drove $200k” is running an attribution model — explicitly or by default.
Without a chosen model, teams argue from incompatible numbers: ad platforms claim 3× the conversions analytics shows, Sales says “they came from a referral,” Marketing says “they clicked our ad.” Attribution doesn’t eliminate disagreement, but it forces a shared method — and tells you when to triangulate with experiments instead of clicks.
Use this page when:
- You’re scaling paid spend and channels fight over credit.
- iOS/privacy changes broke your last-touch reports.
- Leadership asks “what’s our ROI by channel?” and nobody trusts the answer.
Core concepts
Section titled “Core concepts”The attribution pyramid
Section titled “The attribution pyramid”Higher layers are more expensive and more credible for budget decisions. Start at the bottom; climb when spend justifies it.
flowchart BT
L1["Level 1: Rule-based<br/>last-touch, first-touch"]
L2["Level 2: Multi-touch attribution (MTA)<br/>linear, time-decay, data-driven"]
L3["Level 3: Incrementality<br/>geo holdouts, PSA tests"]
L4["Level 4: Marketing mix modeling (MMM)<br/>econometric, media + seasonality"]
L1 --> L2 --> L3 --> L4
| Level | Question it answers | Typical cost / effort | Best for |
|---|---|---|---|
| Rule-based | ”What was the last (or first) click?” | Low — built into GA4, ad platforms | Daily ops, creative testing |
| MTA | ”How do we split credit across touches?” | Medium — tooling or warehouse model | Channel mix optimization |
| Incrementality | ”What would happen if we turned this off?” | High — experiment design + wait time | Budget reallocation at scale |
| MMM | ”What’s the optimal spend across online + offline?” | High — data science + 12+ months data | Executive planning, offline media |
Golden rule: No single model is “true.” Triangulate: last-touch for ops, incrementality or MMM for budget.
Model 1: Last-touch attribution
Section titled “Model 1: Last-touch attribution”Credit: 100% to the final touchpoint before conversion.
| Pros | Cons |
|---|---|
| Simple, ubiquitous, real-time | Over-credits bottom-funnel; ignores awareness |
| Matches most ad platform defaults | Branded search steals credit from everything upstream |
Use when: Daily campaign optimization, <$50k/month paid, short sales cycles.
Model 2: First-touch attribution
Section titled “Model 2: First-touch attribution”Credit: 100% to the first recorded touchpoint.
| Pros | Cons |
|---|---|
| Highlights awareness and demand creation | Ignores nurture and retargeting |
| Good for evaluating top-of-funnel experiments | Mis-credits if first touch was accidental |
Use when: Evaluating new channels, content marketing, brand campaigns. Pair with last-touch — never use alone for budget.
Model 3: Multi-touch attribution (MTA)
Section titled “Model 3: Multi-touch attribution (MTA)”Credit: Split across touches using a rule or algorithm.
Common rules:
- Linear — equal credit to each touch.
- Time decay — more credit to touches closer to conversion.
- U-shaped — 40% first, 40% last, 20% middle.
- W-shaped — adds credit at MQL and opportunity stages (B2B).
- Data-driven — algorithmic (GA4 DDA, Northbeam, Rockerbox, Dreamdata).
| Pros | Cons |
|---|---|
| Richer than single-touch | Requires identity resolution across sessions |
| B2B tools integrate CRM stages | Still correlational — not causal |
| Better for multi-touch B2B journeys | Breaks as cookies disappear |
Use when: $50k–$500k/month paid, multi-touch journeys, warehouse or MTA tool available.
Model 4: Incrementality testing
Section titled “Model 4: Incrementality testing”Credit: Derived from experiments — holdout groups, geo tests, PSA (public service announcement) ghost ads.
Methods:
- Geo holdout — run ads in Region A, hold out Region B; compare lift.
- User holdout — suppress ads to random 10% of eligible users.
- Platform lift studies — Meta Conversion Lift, Google Conversion Lift.
| Pros | Cons |
|---|---|
| Causal — answers “did this cause conversions?” | Slow (weeks to months); needs scale |
| Works when tracking breaks | Expensive; one channel per test typically |
| Gold standard for budget decisions | Local effects may not generalize |
Use when: >$100k/month on a channel, MTA and platform numbers disagree, strategic budget shift pending.
Model 5: Marketing mix modeling (MMM)
Section titled “Model 5: Marketing mix modeling (MMM)”Credit: Statistical inference from aggregate time-series data — spend, impressions, seasonality, promotions, macro factors.
| Pros | Cons |
|---|---|
| Includes offline (TV, events, OOH) | Needs 2+ years data for stability |
| Privacy-proof — no user-level tracking | Quarterly refresh at best; not daily ops |
| Optimizes total budget allocation | Easy to mis-specify; requires expertise |
Use when: Multi-million annual spend, offline + online mix, mature data team. Tools: Recast, Meridian (Google OSS), Robyn (Meta OSS).
Cookieless, privacy, and identity
Section titled “Cookieless, privacy, and identity”Tracking erosion changed attribution — not eliminated it.
| Change | Impact | Mitigation |
|---|---|---|
| iOS ATT / limited ad tracking | Mobile app install attribution gaps | SKAdNetwork, modeled conversions, incrementality |
| Third-party cookie deprecation | Cross-site journey breaks | First-party data, server-side tracking (CAPI) |
| GDPR / CPRA consent | Partial or zero tracking for opted-out users | Consent-mode modeling, aggregated reporting |
| Walled gardens | Each platform claims full credit | Triangulation + incrementality; don’t sum platform ROAS |
First-party foundation:
- Server-side conversions — Meta CAPI, Google Enhanced Conversions, LinkedIn CAPI.
- Logged-in identity — email hash as join key across product + CRM.
- UTM hygiene — consistent tagging on every paid and owned link (see Funnel: Acquisition for UTM standards).
- HDYHAU survey — “How did you hear about us?” at signup; 30–50% response rate is normal; use to calibrate models.
UTM hygiene standards (pointer)
Section titled “UTM hygiene standards (pointer)”Full UTM conventions live on Funnel: Acquisition. Minimum viable standards for attribution to work:
| Parameter | Rule | Example |
|---|---|---|
utm_source | Platform or publisher | linkedin, google, newsletter |
utm_medium | Channel type | cpc, email, social, referral |
utm_campaign | {YYYY-MM}_{initiative}_{audience} | 2026-05_workspace_launch_smb |
utm_content | Creative or ad variant | video_demo_a, carousel_b |
utm_term | Keyword (search only) | team+workspace+software |
Audit checklist (monthly):
-
(not set)on <2% of paid sessions - No spaces in values — use underscores
- Lowercase only — prevents duplicate source splits
- Live campaign links match the UTM registry doc
- New channels get a row in the registry before launch
Broken UTMs inflate Direct and destroy MTA — fix tags before buying attribution software.
How to do it (step by step)
Section titled “How to do it (step by step)”- Inventory data sources. Ad platforms, GA4, product analytics, CRM, HDYHAU survey — list what captures touchpoints today.
- Define “conversion” per motion. Signup, activated user, MQL, opportunity, paid — pick one primary for attribution; report others as secondary.
- Pick an ops model. Default: last-touch for weekly channel reviews. Document it.
- Pick a strategic model. At scale: incrementality for top 2–3 channels + HDYHAU for calibration.
- Implement UTM standards. Every paid link tagged; audit monthly for
(not set)and broken parameters. - Build triangulation dashboard. Same period, same conversion: last-touch, first-touch, HDYHAU, platform-reported. Show ranges, not false precision.
- Run one incrementality test per quarter once spend exceeds threshold. Start with highest-spend channel where MTA and platform numbers diverge most.
- Revisit model selection annually or when spend doubles.
Templates
Section titled “Templates”Model selection brief
Section titled “Model selection brief”Company: [name]Annual paid spend: [$___]Primary conversion: [signup | MQL | paid | revenue]Sales cycle: [self-serve | 30d | 90d+]Offline media: [yes/no — list channels]
Selected models: Daily ops: [last-touch | MTA rule: ___] Budget decisions: [incrementality | MMM | HDYHAU-weighted] Reporting cadence: [weekly ops / quarterly strategic]
Data requirements met? [ ] UTM on 100% paid links [ ] Server-side conversions live [ ] CRM opportunity stage tied to contact [ ] HDYHAU on signup form [ ] 12+ months spend + outcome history (if MMM)
Known gaps: [e.g., podcast not taggable — use HDYHAU + promo codes]
Owner: [RevOps / Marketing Analytics]Review date: [quarterly]Triangulation worksheet
Section titled “Triangulation worksheet”Period: [YYYY-MM-DD to YYYY-MM-DD]Conversion: [___ conversions | $___ revenue]
| Channel | Last-touch | First-touch | MTA (rule) | Platform reported | HDYHAU survey | Incrementality lift ||--------------|------------|-------------|------------|-------------------|---------------|---------------------|| Paid search | | | | | | || Paid social | | | | | | || Organic | | | | | | || Email | | | | | | || Referral | | | | | | || Direct | | | | | | |
Decision rule:- If last-touch and incrementality agree within 20% → scale with confidence- If platform ROAS > 2× analytics → trust incrementality over platform- If HDYHAU share >> tracked share → invest in non-tagging channels (podcast, word-of-mouth)
Action this period: [channel] — [scale / hold / cut] because [evidence row]Incrementality test design
Section titled “Incrementality test design”Hypothesis: Running [channel/campaign] causes [+X%] lift in [conversion] vs. not running it.
Test type: [ ] Geo holdout [ ] User holdout [ ] Platform lift studyTest unit: [DMA / state / % of audience]Treatment: [regions/users receiving ads]Control: [matched holdout regions/users]Duration: [minimum 2 weeks; prefer 4+ for B2B]Primary KPI: [signups | revenue | MQLs]Guardrail KPI: [brand search volume — should not collapse]
Sample size / power: Expected baseline conversion rate: ___% Minimum detectable lift: ___% Required control size: ___ (use platform calculator or Statsig)
Pre-registration (before test starts): Success threshold: lift ≥ ___% with p < 0.05 Failure action: reduce spend by ___% Inconclusive action: extend 2 weeks or increase holdout size
Results (fill after): Observed lift: ___% Confidence: [95% CI: ___ to ___] Decision: [scale / maintain / cut] $ reallocated: $___ from [channel] to [channel]HDYHAU (“How did you hear about us?”) survey
Section titled “HDYHAU (“How did you hear about us?”) survey”Placement: Signup form (optional field) or post-conversion email. One question, multi-select allowed.
How did you first hear about [Product]? (select all that apply)
[ ] Search engine (Google, Bing, etc.) [ ] Social media ad (Instagram, Facebook, TikTok, LinkedIn) [ ] Social media organic (non-ad post or creator) [ ] Friend or colleague referral [ ] Podcast [ ] Newsletter or blog [ ] Event or conference [ ] App Store / Play Store browse [ ] Other: [free text]
Follow-up (optional, 10% sample): "Can you remember which podcast / newsletter / event?" [free text]Analysis cadence: Monthly rollup. Compare HDYHAU share to last-touch share. Channels where HDYHAU >> last-touch are under-credited in tracking — prioritize incrementality or dedicated promo codes.
Targets:
- Response rate: 30–50% on optional signup field; 60%+ on post-conversion email.
- “Other” bucket: <15% — if higher, your list is incomplete.
- Reconciliation gap (HDYHAU vs last-touch for same channel): investigate if >2×.
Metrics to track
Section titled “Metrics to track”| Metric | Target | Notes |
|---|---|---|
| UTM coverage (% paid clicks tagged) | ≥98% | Audit weekly; (not set) is a bug |
| Direct / (not set) share of conversions | <25% | Rising trend = tracking decay |
| Platform vs analytics conversion gap | <30% | Sum of platform conversions should not exceed analytics by >30% |
| HDYHAU response rate | 30–50% | Below 20% → move question or shorten form |
| Incrementality tests / year | ≥2 at >$100k/mo spend | One per major channel rotation |
| Attribution model refresh cadence | Quarterly review | Document any rule changes |
| Blended ROAS (analytics-based, last-touch) | Motion-specific | B2B SaaS paid: 3–5×; B2C app: 2–4× — triangulate before scaling |
| Time to triangulation report | ≤5 business days after month close | Ops discipline metric |
Worked examples
Section titled “Worked examples”SaaS workspace (B2B)
Section titled “SaaS workspace (B2B)”Motion: Hybrid PLG + sales. Primary attribution conversion = MQL for marketing ops; closed-won revenue for strategic reviews.
Triangulation snapshot (one month):
| Channel | Last-touch MQLs | First-touch MQLs | W-shaped MTA | HubSpot HDYHAU | LinkedIn platform |
|---|---|---|---|---|---|
| LinkedIn Ads | 42 | 18 | 31 | 28 | 67 |
| Google Ads | 38 | 45 | 41 | 35 | 52 |
| Organic search | 22 | 55 | 38 | 48 | — |
| Referral | 15 | 12 | 14 | 22 | — |
Read: LinkedIn platform over-reports 60% vs. last-touch. HDYHAU suggests LinkedIn is under-credited in first-touch/organic (brand search absorbs last-touch). Q2 action: Geo holdout on LinkedIn in 3 DMAs — 4-week test. Result: +18% MQL lift (p<0.05). Maintain spend; stop using platform ROAS for finance reporting.
Cookieless mitigation: Server-side LinkedIn CAPI + offline conversion import from Salesforce on closed-won. UTM on all ads; utm_content encodes creative variant for MTA.
Consumer fitness app (B2C)
Section titled “Consumer fitness app (B2C)”Motion: PLG, no sales team. Primary conversion = trial start and paid subscriber.
Triangulation snapshot:
| Channel | Last-touch trials | SKAdNetwork installs | Meta reported | HDYHAU |
|---|---|---|---|---|
| Meta Ads | 1,240 | 980 (modeled) | 2,100 | 890 |
| TikTok Ads | 420 | 310 | 780 | 340 |
| App Store organic | 680 | — | — | 720 |
| Influencer | 180 | — | — | 410 |
Read: Influencer and TikTok massively under-credited in last-touch (in-app last click often = direct). HDYHAU shows influencer at 2.3× last-touch. Action: Unique promo codes per influencer; geo holdout on Meta in 2 states before Q3 budget increase. Incrementality on Meta showed +12% trial lift — below the 20% threshold; cut Meta 15%, shift to influencer contracts with code-based tracking.
Privacy stack: ATT opt-in ~35%; rely on modeled conversions + HDYHAU + cohort LTV by promo code — not user-level MTA.
Promo code attribution layer:
| Influencer | Code | Trials (90d) | Paid conv | CAC equiv | 6mo LTV/CAC |
|---|---|---|---|---|---|
| @fitbrief | FITBRIEF20 | 840 | 588 | $15.30 | 2.9× |
| @deskstretch | DESK40 | 310 | 186 | $29.00 | 1.8× |
| Podcast — Morning Commute | COMMUTE | 520 | 364 | $17.25 | 2.6× |
Codes bypass cookie limitations entirely — allocate 5–10% of influencer/podcast budget to code infrastructure and reconciliation.
Common pitfalls
Section titled “Common pitfalls”- Summing platform ROAS. Meta + Google + TikTok reported conversions always exceed reality. Never sum.
- Last-touch for brand budget. Brand campaigns look worthless in last-touch. Use first-touch or HDYHAU for awareness channels.
- MTA as ground truth. Multi-touch is still correlational. Don’t cut a channel because MTA demoted it without incrementality.
- Ignoring direct traffic inflation. Broken UTMs and iOS gaps inflate “Direct” — investigate before celebrating organic strength.
- No holdout ever. Teams that never run holdouts over-invest in retargeting (which targets people who would convert anyway).
- Changing UTMs mid-campaign. Breaks time-series. Version UTMs with
utm_campaigndates; never edit live links. - Attribution without conversion definition. “Credit for what?” must be answered before picking a model.
Tools / further reading
Section titled “Tools / further reading”- Web analytics: GA4 (free, DDA), Adobe Analytics.
- B2B MTA: Dreamdata, Rockerbox, Northbeam, HubSpot attribution.
- Incrementality: Meta Conversion Lift, Google Geo Experiments, Haus, Measured.
- MMM: Recast, Google Meridian (open source), Meta Robyn (open source).
- Survey: Post-conversion email via Customer.io / Braze; Sprig in-product.
- Canonical read: Marketing Mix Modeling ( Leeflang et al. ); Google’s Attribution Whitepaper; Segment “State of Attribution” guides.
Cross-links
Section titled “Cross-links”- Funnel: Acquisition — UTM hygiene, traffic quality, channel CAC (where tags are defined).
- Funnel: Overview — acquisition stage that attribution feeds.
- ROI / ROAS — turning attributed conversions into unit economics.
- Martech Stack & Automation — Layer 3 modeling, server-side tracking, consent.
- Experimentation (A/B) — incrementality overlaps experiment design.
- PLG vs Sales-Led Measurement — different conversion events need different attribution rules.