Skip to main content
Field NotesAI Research11 min read

GEO attribution for Shopify: why last-click lies

68% of AI-discovered Shopify buyers return via direct traffic 1-7 days later, where last-click attribution credits direct with 100% of the revenue and AI with zero. This post walks five attribution models, names position-based 60/40 as the pragmatic default, and ships a four-layer implementation stack.

Harry Parker
Co-founder, Onviqa Inc. · Surfient
geo-attribution
TL;DR
  • 68% of AI-discovered Shopify buyers return via direct/email 1-7 days later, which means last-click attribution silently credits AI with $0 while the real GEO revenue contribution is 15-25%.
  • Position-based 60/40 attribution (60% first-touch, 40% last-touch) is the pragmatic default for GEO-forward brands; linear 50/50 is the acceptable fallback; last-click is dangerous.
  • Ship a four-layer stack over four weeks: client capture (GA4 + pixel), server enrichment (Measurement Protocol + metafield), identity resolution (email-hash stitching), revenue attribution (60/40 applied to stitched path).

Eighteen months into the AI-commerce transition, most Shopify brands are underfunding GEO for a dumb reason: their attribution model silently credits direct traffic with 100% of AI-discovered revenue. 68% of AI-referred buyers return via direct or email 1-7 days later, land outside the default last-click window, and convert without AI ever getting attribution credit. This post walks the five attribution models, names the 60/40 position-based model as the pragmatic default for GEO-forward brands, and ships a four-layer implementation stack you can hand to an engineer this week.

Five-row comparison of attribution models applied to a typical AI-discovery Shopify path. Last-click credits direct 100% and AI 0%. First-click credits AI 100%. Linear splits 50/50. Time-decay credits direct 70% and AI 30%. Position-based (recommended) credits AI 60% and direct 40%.
Five attribution models applied to a representative $137 Shopify order with first-touch ChatGPT on day 0 and last-touch direct on day 3. Last-click gives GEO zero credit; position-based 60/40 gives it the realistic majority.

Why your default attribution model lies about GEO

Shopify’s default attribution is last-click. GA4’s out-of-the-box model is also last-click (officially called “data-driven” but it collapses to last-non-direct for most mid-market stores). Under last-click, a buyer who discovers you on ChatGPT on Monday, thinks about it for two days, returns by typing your URL directly on Wednesday, and checks out with a $137 order gets attributed 100% to “Direct/Other.” AI gets zero. The AI referral might not even appear in your weekly scorecard if the session was under the cookie window and you never sent it server-side.

The consequence is systematic: any brand running last-click attribution will conclude that GEO delivers near-zero revenue — even when it’s actually driving 15-25%. Budget meetings turn into “why are we spending $18k on content that doesn’t convert?” when the correct framing is “that $18k is silently driving $180k we’re crediting to direct.” Fix the attribution and the budget conversation flips.

The five attribution models, ranked

Last-click (avoid)

The default on GA4, Shopify, and most ecommerce analytics. Credits 100% of the revenue to the session where the conversion happened. For AI-discovery paths, this means direct-return visits get 100% of the credit and the AI first-touch gets zero. Do not use this model if you’re making GEO budget decisions.

First-click (diagnostic only)

The mirror image. Credits 100% of the revenue to the first recorded touch. Useful as a diagnostic for “what channels create new buyers” but over-credits GEO the same way last-click under-credits it. Run it alongside your primary model to see the full range, but don’t make budget decisions off first-click alone.

Linear / equal-split (acceptable fallback)

Splits credit equally across all recorded touches. For a two-touch path (AI discovery → direct conversion), that’s 50/50. Linear is the compromise model when finance insists on equal-weight defensibility — it’s not optimal but it’s honest, and it’s a massive improvement over last-click. If you can’t get buy-in for position-based, default to linear.

Time-decay (OK)

Weights touches by recency using an exponential decay with a configurable half-life (usually 7 days). Touches closer to conversion get more credit. For our typical 2-touch path with a 3-day gap, time-decay gives the direct last-touch ~70% and AI first-touch ~30%. Better than last-click, worse than position-based — under-credits the discovery work.

Position-based 60/40 (Surfient default)

Credits 60% to the first touch, 40% to the last touch, and splits any middle touches equally among themselves (for longer paths, the middle typically gets 10-20% total with first and last adjusted proportionally). For a 2-touch path: 60% AI, 40% direct. This is the pragmatic default for GEO-forward brands because it explicitly rewards both the discovery work (GEO) and the closing work (site experience, checkout, retention). It’s also what Google Ads and Meta use under the hood when you pick “position-based” attribution.

The four-layer implementation stack

Four-layer vertical diagram showing client-side capture, server-side enrichment, identity resolution, and revenue attribution layers, with a bottom callout on common failure mode.
Four-layer attribution stack for Shopify GEO: client capture, server enrichment, identity resolution, revenue attribution. Most brands skip layers 2 and 3 and their GEO looks like it delivers zero revenue.

Layer 1 — Client-side capture

The easy layer. GA4 gtag with a custom channel group that explicitly captures chatgpt.com, chat.openai.com, claude.ai, perplexity.ai, and the Google SGE referrer pattern. Shopify analytics pixel with a first_touch_source cookie stored first-party for 30 days. This is ~3 hours of work. Most brands have this layer running.

Layer 2 — Server-side enrichment

Where the work begins. Client-side cookies die on cross-device switches, after privacy mode, when the user clears cookies, and when ad-blockers strip first-party pixels. Send the same event via GA4 Measurement Protocol server-side, and store first_touch_source in Shopify’s Customer.metafields so it survives the cookie window. Surfient ingests asession_start webhook for this — roughly a day of engineering work to wire up.

Layer 3 — Identity resolution

The layer most brands skip. Capture an SHA-256 email hash at every login and checkout event. When a user logs in on their fourth session, backfill their previous three anonymous sessions (stitched by cookie key) to the same customer_id. This is what turns 2.3 typical touches into the complete pre-conversion path. Budget one engineering week if you’re on vanilla Shopify, two if you’re on Hydrogen and need to wire up your own session store.

Layer 4 — Revenue attribution

Once Layers 1-3 are live, Layer 4 is the easy part: apply the 60/40 position-based model to the stitched path on every order, surface the result in your analytics panel and in Shopify’s native reporting. Surfient does this in the citation panel alongside the AI-discovery impression data; roll-your-own with a BigQuery materialized view if you’re not using us.

  • Week 1: Layer 1 live in GA4 + Shopify pixel with the custom channel group deployed.
  • Week 2: Layer 2 server-side event pipeline with GA4 Measurement Protocol + Shopify metafield writes.
  • Week 3: Layer 3 identity stitching on checkout + login with SHA-256 email hash backfill.
  • Week 4: Layer 4 attribution model in place, 60/40 position-based by default, exposed in weekly revenue scorecard.

The conversation this unlocks in your leadership meeting

Before the four-layer stack, GEO conversations sound like: “we spent $18k on content and our AI referral revenue is $400 — why are we doing this?”

After the four-layer stack, they sound like: “we spent $18k on content and our position-based model shows $72k of revenue with AI as first-touch, 4.0x ROI in the first quarter, and that’s before the compounding benefit kicks in month 4-6. Let’s double the budget.”

Same spend. Same content. Same revenue. The only thing that changed is visibility. Ship the four layers and stop letting your attribution model lie to your CFO.

Tags:attributionmeasurementanalyticsshopifyga4

Frequently asked questions

Try Surfient free

See how your Shopify store scores with AI engines

Surfient audits every signal ChatGPT, Perplexity, Claude, and Google AI Overviews read on your store — in under 60 seconds, with no install, no card, no catch.

  • ChatGPT, Perplexity, Claude, and AI Overviews
  • Store-by-store score with fix priorities
  • 60-second audit, no install or card

Sources & further reading

  1. Surfient Q1 2026 Shopify Attribution Study (47 brands)
    Surfient Research2026-03-05
Harry Parker
Co-founder, Onviqa Inc. · Surfient

Harry has led SEO and e-commerce engineering for over 12 years and has been shipping Shopify software since Onviqa was founded in 2014. He writes about where commerce is headed when shoppers stop typing queries and start asking assistants.

Related reading

All posts