Attribution

Every attribution model in EVENTS Gateway

Attribution answers one practical marketing question: which touchpoint deserves credit for a conversion? EVENTS Gateway computes every supported model for the same conversion path, then lets the selected default model drive the main view.

How It Works

Touchpoint to conversion to model result.

The attribution layer keeps the marketing explanation compact while preserving the technical evidence behind it.

01 Touchpoint

A meaningful pre-conversion event: ad click, campaign landing, email or SMS engagement, organic/referral visit, CRM/source signal, or direct visit.

02 Identity match

The layer links touchpoint to conversion using journey ID, identity ID, visitor ID, session ID, Shopify customer ID, hashed email, or customer hash.

03 Conversion

Purchase, Lead, Subscribe, CompleteRegistration, Contact, SubmitApplication, Schedule, StartTrial, or Donate.

04 Model result

Each model produces a winner and credit rows. The selected default model controls the main reporting view.

05 Delivery context

Destination delivery attempts, accepted counts, failures, and errors are attached so attribution can be reconciled with platform delivery.

Model Variants

8 attribution models are supported.

Use single-touch models when one winner is enough. Use multi-touch models when assists matter and revenue should be split across the path.

Default single-touch last_non_direct

Last non-direct

Credits the latest eligible touchpoint that is not direct. Direct remains visible but does not overwrite campaign context.

Credit logic
100% credit to the latest eligible non-direct touchpoint. Direct can still appear in the path, but it does not overwrite campaign context when a campaign touch exists.
Best for
Daily ecommerce reporting, paid media reconciliation, and teams that want a stable default view.
Watch out
If the only matched touchpoint is direct, direct can still be the fallback winner.
Discovery single-touch first_touch

First touch

Credits the first known eligible touchpoint in the lookback window.

Credit logic
100% credit to the first eligible non-direct touchpoint in the lookback window, falling back to the first touchpoint when no campaign touch exists.
Best for
Understanding which channel introduced the customer, especially prospecting and top-of-funnel campaigns.
Watch out
It can overvalue early discovery and undervalue retargeting, email, or checkout recovery.
Closer single-touch last_touch

Last touch

Credits the latest known touchpoint before the conversion, including direct.

Credit logic
100% credit to the last known touchpoint before conversion, including direct traffic.
Best for
Short funnels, local campaigns, support-assisted conversions, and teams that want the immediate closer.
Watch out
Direct traffic can win even when an earlier campaign created demand.
Paid discovery first_paid_touch

First paid touch

Credits the first paid touchpoint with paid media evidence.

Credit logic
100% credit to the first paid touchpoint with paid media evidence.
Best for
Prospecting analysis, creative testing, and seeing which paid channel created initial demand.
Watch out
Organic, email, SMS, and referral touches do not win this model.
Paid closer last_paid_click

Last paid click

Credits the most recent paid click before the conversion.

Credit logic
100% credit to the most recent eligible paid click before conversion.
Best for
Paid media optimization, bid feedback, and reconciling ad-platform click-driven reporting.
Watch out
If no paid click exists in the matched path, this model has no winner.
Multi-touch equal split linear

Linear

Splits credit evenly across eligible touchpoints. Direct is excluded by default.

Credit logic
Splits conversion credit evenly across eligible touchpoints. Direct is excluded by default from multi-touch credit when non-direct touches exist.
Best for
Longer journeys where several channels assisted the sale and the team wants a neutral split.
Watch out
Equal credit is simple, but it may understate the true opener or closer.
Multi-touch recency weighted time_decay

Time decay

Splits credit across eligible touchpoints, with later touches receiving more weight.

Credit logic
Splits credit across eligible touchpoints with later touches receiving progressively more weight.
Best for
Remarketing, lifecycle, and checkout recovery where recency often matters more than first exposure.
Watch out
It can bias reporting toward bottom-of-funnel channels if the journey is long.
Multi-touch U-shaped position_based

Position based

Gives most credit to the first and last eligible touchpoints, then splits the middle credit.

Credit logic
Gives 40% to the first eligible touch, 40% to the last eligible touch, and splits the middle 20%. With two touches, they split 50/50.
Best for
Marketers who want to value both discovery and closing influence while still acknowledging assists.
Watch out
Middle touches get less credit, so nurture campaigns may look smaller than their operational value.
Example

Same journey, different attribution answers.

Example path: Google Ads click -> Klaviyo email click -> Direct visit -> Purchase. The model changes the answer, not the underlying event history.

Google Ads click Klaviyo email click Direct visit Purchase
ModelWinnerCreditMarketing Use
Last non-directKlaviyo email100% to the latest non-direct touch.Best default for campaign reporting.
First touchGoogle Ads100% to the first eligible non-direct touch.Shows which channel introduced the buyer.
Last touchDirect100% to the final touch, including direct.Shows the immediate closer.
First paid touchGoogle Ads100% to the first paid touch.Shows paid acquisition origin.
Last paid clickGoogle Ads100% to the most recent paid click.Useful for paid media reconciliation.
LinearKlaviyo emailGoogle Ads 50%, Klaviyo 50% when direct is excluded.Shares credit across assists.
Time decayKlaviyo emailKlaviyo receives more credit than Google because it is later.Values recency and nurture.
Position basedKlaviyo emailGoogle Ads 50%, Klaviyo 50% with two non-direct touches.Values opener and closer.
Touchpoints

What can become attribution evidence.

A touchpoint is not just a page view. It is any pre-conversion signal that helps explain why the conversion happened.

Paid clicks

Google, Microsoft, Meta, TikTok, LinkedIn, X, Snapchat, affiliate, and other click IDs create paid touchpoints.

Lifecycle signals

Email and SMS opens, clicks, subscriptions, unsubscribes, and source webhooks become source-aware touchpoints.

Campaign landings

UTM source, medium, campaign, campaign ID, adset ID, ad ID, or referrer context can create a campaign touchpoint.

Direct visits

Direct remains visible. The default reporting posture prevents direct from overwriting non-direct campaign context.

CRM/server signals

Server-side lifecycle or CRM events can become touchpoints when they arrive before the conversion.

Conversions

Conversion events evaluated by attribution.

These canonical conversion events are evaluated as outcomes in the attribution ledger.

PurchaseLeadSubscribeCompleteRegistrationContactSubmitApplicationScheduleStartTrialDonate
Confidence

Attribution includes evidence quality, not just a winner.

The confidence label comes from identity continuity plus campaign proof. High confidence is strongest when multiple first-party and platform identifiers agree.

EvidenceStrengthWhy It Matters
Journey IDHighBest continuity when a journey identifier travels across touchpoint and conversion.
Identity IDHighResolved EVENTS Gateway identity links the path to the conversion.
Visitor IDHighFirst-party visitor continuity connects anonymous browser behavior to conversion.
Shopify customer IDHighStrong ecommerce proof when the order and customer history share Shopify identity.
Hashed email or customer hashMediumUseful for lifecycle, CRM, and checkout matching without storing raw PII by default.
Session IDMediumGood for same-session behavior, weaker for long journeys.
Click ID or paid evidenceBoostAdds confidence when at least one touchpoint carries campaign or paid click proof.
None below 30 Low 30-49 Medium 50-79 High 80-100
Settings

The variants you can tune in production.

These defaults come from the active attribution settings in code. They are the baseline before a site changes its attribution configuration.

Default model last_non_direct

The model used for the primary Attribution table and summary.

Lookback window 30 days

How far back a matched touchpoint can be considered for a conversion.

Direct handling direct_does_not_overwrite

Default posture: direct is visible but should not overwrite campaign context in the main model.

Direct in multi-touch Excluded by default

Linear, time decay, and position-based models exclude direct when non-direct touches exist unless the policy changes.

Minimum confidence 30%

Threshold used to separate weak matches from useful attribution evidence.

Retention 395 days

Default retention window for attribution records and audit-friendly history.

Recommended Starting Point

Start with Last non-direct, then compare against paid and multi-touch models.

For most Shopify and ecommerce teams, Last non-direct is the cleanest daily operating view. First paid touch and Last paid click help paid media teams understand acquisition and closing clicks. Linear, Time decay, and Position based expose assisted revenue when email, SMS, retargeting, and organic touches are part of the same journey.