Skip to content

Attribution

First PublishedLast UpdatedByAtif Alam

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.

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.

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
LevelQuestion it answersTypical cost / effortBest for
Rule-based”What was the last (or first) click?”Low — built into GA4, ad platformsDaily ops, creative testing
MTA”How do we split credit across touches?”Medium — tooling or warehouse modelChannel mix optimization
Incrementality”What would happen if we turned this off?”High — experiment design + wait timeBudget reallocation at scale
MMM”What’s the optimal spend across online + offline?”High — data science + 12+ months dataExecutive planning, offline media

Golden rule: No single model is “true.” Triangulate: last-touch for ops, incrementality or MMM for budget.

Credit: 100% to the final touchpoint before conversion.

ProsCons
Simple, ubiquitous, real-timeOver-credits bottom-funnel; ignores awareness
Matches most ad platform defaultsBranded search steals credit from everything upstream

Use when: Daily campaign optimization, <$50k/month paid, short sales cycles.

Credit: 100% to the first recorded touchpoint.

ProsCons
Highlights awareness and demand creationIgnores nurture and retargeting
Good for evaluating top-of-funnel experimentsMis-credits if first touch was accidental

Use when: Evaluating new channels, content marketing, brand campaigns. Pair with last-touch — never use alone for budget.

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).
ProsCons
Richer than single-touchRequires identity resolution across sessions
B2B tools integrate CRM stagesStill correlational — not causal
Better for multi-touch B2B journeysBreaks as cookies disappear

Use when: $50k–$500k/month paid, multi-touch journeys, warehouse or MTA tool available.

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.
ProsCons
Causal — answers “did this cause conversions?”Slow (weeks to months); needs scale
Works when tracking breaksExpensive; one channel per test typically
Gold standard for budget decisionsLocal effects may not generalize

Use when: >$100k/month on a channel, MTA and platform numbers disagree, strategic budget shift pending.

Credit: Statistical inference from aggregate time-series data — spend, impressions, seasonality, promotions, macro factors.

ProsCons
Includes offline (TV, events, OOH)Needs 2+ years data for stability
Privacy-proof — no user-level trackingQuarterly refresh at best; not daily ops
Optimizes total budget allocationEasy 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).

Tracking erosion changed attribution — not eliminated it.

ChangeImpactMitigation
iOS ATT / limited ad trackingMobile app install attribution gapsSKAdNetwork, modeled conversions, incrementality
Third-party cookie deprecationCross-site journey breaksFirst-party data, server-side tracking (CAPI)
GDPR / CPRA consentPartial or zero tracking for opted-out usersConsent-mode modeling, aggregated reporting
Walled gardensEach platform claims full creditTriangulation + incrementality; don’t sum platform ROAS

First-party foundation:

  1. Server-side conversions — Meta CAPI, Google Enhanced Conversions, LinkedIn CAPI.
  2. Logged-in identity — email hash as join key across product + CRM.
  3. UTM hygiene — consistent tagging on every paid and owned link (see Funnel: Acquisition for UTM standards).
  4. HDYHAU survey — “How did you hear about us?” at signup; 30–50% response rate is normal; use to calibrate models.

Full UTM conventions live on Funnel: Acquisition. Minimum viable standards for attribution to work:

ParameterRuleExample
utm_sourcePlatform or publisherlinkedin, google, newsletter
utm_mediumChannel typecpc, email, social, referral
utm_campaign{YYYY-MM}_{initiative}_{audience}2026-05_workspace_launch_smb
utm_contentCreative or ad variantvideo_demo_a, carousel_b
utm_termKeyword (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.

  1. Inventory data sources. Ad platforms, GA4, product analytics, CRM, HDYHAU survey — list what captures touchpoints today.
  2. Define “conversion” per motion. Signup, activated user, MQL, opportunity, paid — pick one primary for attribution; report others as secondary.
  3. Pick an ops model. Default: last-touch for weekly channel reviews. Document it.
  4. Pick a strategic model. At scale: incrementality for top 2–3 channels + HDYHAU for calibration.
  5. Implement UTM standards. Every paid link tagged; audit monthly for (not set) and broken parameters.
  6. Build triangulation dashboard. Same period, same conversion: last-touch, first-touch, HDYHAU, platform-reported. Show ranges, not false precision.
  7. Run one incrementality test per quarter once spend exceeds threshold. Start with highest-spend channel where MTA and platform numbers diverge most.
  8. Revisit model selection annually or when spend doubles.
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]
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]
Hypothesis: Running [channel/campaign] causes [+X%] lift in [conversion]
vs. not running it.
Test type: [ ] Geo holdout [ ] User holdout [ ] Platform lift study
Test 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×.
MetricTargetNotes
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 rate30–50%Below 20% → move question or shorten form
Incrementality tests / year≥2 at >$100k/mo spendOne per major channel rotation
Attribution model refresh cadenceQuarterly reviewDocument any rule changes
Blended ROAS (analytics-based, last-touch)Motion-specificB2B SaaS paid: 3–5×; B2C app: 2–4× — triangulate before scaling
Time to triangulation report≤5 business days after month closeOps discipline metric

Motion: Hybrid PLG + sales. Primary attribution conversion = MQL for marketing ops; closed-won revenue for strategic reviews.

Triangulation snapshot (one month):

ChannelLast-touch MQLsFirst-touch MQLsW-shaped MTAHubSpot HDYHAULinkedIn platform
LinkedIn Ads4218312867
Google Ads3845413552
Organic search22553848
Referral15121422

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.

Motion: PLG, no sales team. Primary conversion = trial start and paid subscriber.

Triangulation snapshot:

ChannelLast-touch trialsSKAdNetwork installsMeta reportedHDYHAU
Meta Ads1,240980 (modeled)2,100890
TikTok Ads420310780340
App Store organic680720
Influencer180410

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:

InfluencerCodeTrials (90d)Paid convCAC equiv6mo LTV/CAC
@fitbriefFITBRIEF20840588$15.302.9×
@deskstretchDESK40310186$29.001.8×
Podcast — Morning CommuteCOMMUTE520364$17.252.6×

Codes bypass cookie limitations entirely — allocate 5–10% of influencer/podcast budget to code infrastructure and reconciliation.

  • 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_campaign dates; never edit live links.
  • Attribution without conversion definition. “Credit for what?” must be answered before picking a model.
  • 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.