Attribution & reporting

Ecommerce attribution: connect clicks, orders, and revenue

Understand ecommerce attribution with a clear first versus last click example, an order-level reconciliation method, and a checklist for cleaner measurement.

Admoji team
Concept illustration of ad, search, and email paths converging on one ecommerce order.
Several marketing interactions can contribute to the journey behind a single order. Concept illustration.
On this page

A shopper sees an ad, comes back through search, clicks an email, and buys. Which channel made the sale? Ecommerce attribution assigns credit to the recorded interactions before an order. The answer depends on the rule you choose—and on which interactions your tools could observe.

For an operator, the useful question is less ‘Which dashboard is right?’ and more ‘What exactly is each dashboard counting?’ This guide walks from one customer journey to a reconciled order ledger, then shows where attribution stops being evidence of growth.

THE SHORT VERSION

  • Credit rules change channel totals without changing the underlying orders.
  • Reconcile unique orders and refunds before comparing channel revenue.
  • Use incrementality tests to ask whether ads caused additional sales.

What ecommerce attribution actually measures

Attribution is a rule for distributing credit for an observed conversion across eligible touchpoints. A touchpoint might be a tagged ad click, organic search visit, email click, or direct visit. The model does not create or remove an order. It changes which channel receives credit for it. Google describes attribution models as rules or algorithms that assign credit along a path to a key event; Shopify describes first and last interactions in its marketing reports. Google Analytics attribution settings · Shopify marketing reports

Decide what conversion means before reading a channel table: a placed order, paid order, first order from a customer, or all orders including repeats? Then name the revenue basis, date range, time zone, eligible channels, attribution window, and model. A dashboard labeled ‘sales’ may use a different denominator from the order ledger. Attribution can organize observed demand; by itself it cannot prove that a touchpoint caused the purchase.

One journey, two defensible answers

Imagine a shopper clicks a Meta ad on Monday, finds the store through organic search on Wednesday, and clicks a welcome email on Friday before placing a $120 merchandise order. Ignore tax and shipping for this example. Under first click, Meta receives one order and $120 of credit. Under last click, email receives one order and $120. Organic search receives neither under these two single-touch rules, although it was part of the observed path. The store still has exactly one $120 order.

Illustrative credit for the same order
RuleMetaOrganic searchEmailTotal credited
First click$120$0$0$120
Last click$0$0$120$120

Real tools add distinctions. Shopify offers first click, last click, last non-direct click, linear, and any click models in eligible reports. Its any click model gives each clicked channel full credit, so summed channel credit can exceed actual orders; do not use that summed figure as store revenue. Shopify also resets its first interaction after an order or after 30 days without a purchase. Shopify marketing reports and model definitions

Reconcile the orders before the channels

Here is a deliberately small illustrative ledger. All three are paid orders in the same reporting period and in USD. ‘Order value’ is discounted merchandise revenue excluding tax and shipping; the $20 refund is a merchandise refund posted within that same period. Order B is a repeat purchase. For B, the first touch shown is the first interaction in that order's journey, not the customer's lifetime acquisition source. This matches the reset behavior Shopify documents, though your own tool may use a different journey boundary. Shopify interaction definitions

Three illustrative orders; merchandise USD
OrderCustomerFirst touchLast touchOrder valueRefundNet value
A101NewMetaEmail$120$20$100
B102RepeatEmailDirect$80$0$80
C103NewOrganic searchMeta$60$0$60
Total3 orders——$260$20$240

The ledger contains three orders, $260 in placed merchandise value, $20 in merchandise refunds, and $240 net. Two first orders contribute $160 net ($100 + $60); the repeat order contributes $80. After applying the refund to A101, first-click net credit is Meta $100, email $80, organic search $60. Last-click net credit is email $100, direct $80, Meta $60. Each model totals $240. The channel mix changes; the reconciled net revenue does not.

This is a simplified reporting policy, not a universal accounting definition. Shopify's Sales reports distinguish gross sales, discounts, sales reversals, net sales, shipping, taxes, and total sales, and can post a reversal on its processing date. Match those definitions and dates before you compare a Shopify sales report to a marketing report. Shopify Sales report definitions

Why the dashboards disagree

Three reports can describe the same business without sharing the same measurement method. An ad platform may count an eligible ad interaction, an analytics tool may count an instrumented purchase event, and the commerce system records the order. Comparing channel totals before comparing the underlying order IDs hides the actual reason for a gap.

  • Credit rules and windows: first click, last click, last non-direct click, view eligibility, and lookback windows can assign different credit to the same order. Shopify's marketing reports expose several model choices; check the selected one before exporting. Shopify marketing reports
  • Collection gaps: browser settings, blocked scripts, privacy choices, and cross-device paths can leave some interactions unobserved. Shopify documents these as reasons its reports may differ from third-party analytics. Shopify analytics discrepancies
  • Different timing and value: order date versus event date, store time zone versus account time zone, purchase value with or without tax and shipping, refunds posted later, and processing delays all matter. Google notes that attributed key-event credit can change after processing. GA4 data freshness · Shopify sales definitions

A mismatch is a diagnosis to perform, not a number to ‘fix’ by forcing every dashboard to agree. Preserve each system's native number alongside a clearly defined order-level business total.

Concept illustration of order records and a return being reconciled with a ledger.
Confirm the orders and refunds before comparing the credit assigned to each channel. Concept illustration.

The event and identifier checklist

Before debating models, audit the path from landing URL to purchase. The goal is a dependable join between the marketing interaction and one real order.

  • Campaign tags: use a documented naming convention for utm_source, utm_medium, and utm_campaign; add utm_id and utm_content when useful. Test the final landing URL and redirects so tags survive. Google documents the manual campaign parameters and warns that inconsistent names fragment reports. Google Analytics traffic-source tagging
  • Event trail: verify landing, product view, checkout start, purchase, and refund instrumentation where relevant. Record event timestamps in UTC and retain the store's reporting time zone separately.
  • Order identity: pass a stable, non-empty transaction or order ID from checkout to analytics, payment, and your order export. Google recommends transaction_id on purchase and refund events. GA4 ecommerce implementation
  • Deduplication: confirm refreshes, payment redirects, browser and server events, and retries do not create multiple purchases for one order. Reconcile unique order IDs, not raw purchase-event rows.
  • Customer identity: distinguish a customer key from an order ID. Define how logged-out, cross-device, and repeat purchases are matched; do not silently assume one browser equals one person.
  • Value and lifecycle: agree on currency, discount, tax, shipping, cancellation, refund, and partial-refund treatment. Ensure a refund links back to its original transaction. GA4 documents a refund event with the relevant transaction_id. GA4 ecommerce implementation

An order-level reconciliation routine

  1. Freeze the question. Pick one date range, time zone, currency, order status, and value basis. For a refund review, allow enough time for refunds to appear or report them separately by processing date.
  2. Export the order ledger. Keep one row per unique order ID, with order timestamp, customer key, merchandise value, refund amount, and net value. Remove test orders and document how you handle canceled or unpaid orders.
  3. Join measured purchases by transaction ID. Mark IDs missing from analytics, IDs with duplicate events, and value mismatches. Investigate the largest gaps first; do not add unmatched analytics events to confirmed commerce revenue.
  4. Then compare attribution. For matched orders, list observed first and last touch, model, and window. Compare channel credit after the order count and value agree. Keep unattributed orders visible.
  5. Record the reason and owner. Note whether each gap is a tagging break, missing purchase event, duplicate, refund timing difference, currency difference, or model/window difference. Recheck after a change with the same definitions.

The reconciliation worksheet includes the three example orders and a blank row. Replace the examples with your own order export, then add analytics and platform observations. It is a CSV template, so calculate and verify totals in your spreadsheet or reporting system.

Join commerce and analytics records only where a shared transaction ID exists. If an ad platform provides only aggregate claimed conversions, keep those figures in a separate channel-level comparison. Leave the worksheet’s platform-claim fields blank when an order-level match is unavailable; do not infer a match from similar timestamps or amounts.

How to read Shopify attribution

In Shopify, start with the specific report, not a generic ‘Shopify number.’ Marketing reports summarize Online Store channel orders and can show attribution choices when a sales metric is paired with a marketing dimension. Shopify says last click is selected by default under those conditions; marketing activity data uses last non-direct click by default. First click, any click, and linear answer different questions. Its Sales reports have separate revenue definitions and reversal timing. Shopify marketing reports · Shopify sales reports

For a clean comparison, note the report name, filter, attribution model, and export time beside each Shopify figure. Then join the underlying orders to analytics by ID where available. If you use a connected checkout or CRM, validate its order IDs and refund flow across systems before treating any channel view as the source of truth. Our Shopify checkout URL guide covers the checkout handoff; the CRM migration plan covers preserving the data you will need later.

Attribution is credit; incrementality is lift; profit is the decision

A channel can receive credit for an order that would have happened anyway. Attribution answers where the observed journey gets credit under a rule. Incrementality asks how many additional conversions happened because the marketing ran. Controlled holdout experiments compare exposed and unexposed groups to estimate that difference; Google explicitly distinguishes incremental from standard attributed conversions. Google Ads Conversion Lift definitions

Neither credited revenue nor incremental revenue is profit. For budget decisions, bring in product cost, fulfillment, payment fees, refunds, and media spend on the same time basis. A campaign with high attributed ROAS can still disappoint after margin and returns; a channel with little last-click credit may help introduce new customers. Use reconciled orders as the financial base, attribution to understand recorded paths, and a suitable experiment when the decision depends on causal lift. Admoji's published Performance & Reporting overview describes revenue, costs, and campaign performance in one income report; confirm the definitions and available integrations for your own setup before relying on any dashboard for this analysis.

Questions operators ask next

Which attribution model should an ecommerce brand use?

Choose a model that matches the question and keep it fixed during comparisons. First click is useful for studying recorded discovery; last click for the final recorded interaction; last non-direct click for the last known non-direct source. Compare them rather than declaring one universally correct. Preserve actual order totals separately.

Why does paid media report more purchases than my store?

First check whether several platforms claim the same order, whether view-through conversions are eligible, and whether windows or dates differ. Then look for duplicate purchase events and refunded or canceled orders. Shopify documents cases where more than one marketing activity can record a conversion while its own activity report gives credit to one recent source. Shopify marketing-performance discrepancies

Should repeat orders be credited to the original acquisition campaign?

Only if the question is about customer acquisition and lifetime value, with an explicit cohort definition. For per-order journey attribution, a repeat order can have its own new first and last touch. Label these views separately so one customer does not become multiple ‘new customers.’ Shopify's first-interaction reset after an order is one example of why the distinction matters. Shopify interaction definitions

Sources & further reading

Primary documentation reviewed September 28, 2026. Platform behavior can change; follow the linked documentation for current requirements. Examples in this article are illustrative.

EXPLORE ADMOJI

See the order and the economics behind the channel

Explore Admoji's published reporting overview, then map your own order, refund, and cost definitions before making budget decisions.

Request access to Admoji