Attribution walkthrough

How we attribute your orders

Click-based tracking leaves a large share of orders in direct, brand search and unknown, where there is nothing to optimise. We build two layers to move those orders into channels you can set a budget against.

Watch the video walkthrough →
Layer one · Every client

The attribution waterfall

Each order is checked against up to six sources, in a fixed order, until one of them names a channel.

Layer two · Clients with a post-purchase survey

Modelled re-attribution

The orders the waterfall could not place are split across channels in the shares your surveyed customers gave.

How we attribute your ordersAttribution walkthrough
Two decisions

No attribution model is right for every decision

Every model credits some channels too much and others too little. What matters is knowing which way yours leans before you move budget from Meta to TikTok, or pause a creator. We read attribution at two levels, because they answer different questions.

Channel level

"Where does the next hour go?"

How Meta compares with Google, influencer, organic and email, and how much budget and time each one gets next month. The question is about totals, so it can take some modelling: not every order has to be traced to a single click.

What you readThe waterfall, plus modelled re-attribution where you have a survey
Campaign level

"Which ad, creator or keyword do we change?"

What is working inside one channel: the creators to rebook, the ads to pause, the codes that convert. Every order has to trace back to a real touchpoint, so nothing here is modelled.

What you readThe waterfall only
Crux · gocrux.io[email protected]
How we attribute your ordersAttribution walkthrough
What click-based models miss

A customer who sees an ad and never clicks leaves no trace

ModelWhich way it leans
Last clickCredits the final touch. Brand search, retargeting and affiliates collect orders that Meta, YouTube or a creator started.
Ad platform reportsEach platform sees only itself. A customer who sees a Meta ad, then buys through a Google brand ad, is one order in Shopify and one conversion in each platform.
GA4 standard reportsYesterday's orders sit in Unassigned for up to 48 hours while Google processes them, and some sources arrive as (not set) and stay that way.
Media mix modellingWorks for large shifts of budget between channels. It cannot tell you which creator or which ad is working.

The first three depend on a click. Influencer, upper-funnel Meta and YouTube are mostly seen, not clicked: the customer searches your brand name later, or types the URL, and the order lands in brand search or direct.

GA4 user acquisition report with Unassigned as the largest channel group on the most recent day
GA4 user acquisition report. On the most recent day, Unassigned is the largest channel group: 636 of 1,525 users.
Crux · gocrux.io[email protected]
How we attribute your ordersAttribution walkthrough
An example

One order, read three ways

Day 1
Sees a creator's story
Notes the code GEMMA15. Does not tap the link.
Day 4
Searches your brand name
On Google, from a different device.
Day 4
Clicks the brand search ad
The only click anyone records.
Day 4
Buys with GEMMA15
The code is on the Shopify order.
Read byCredit goes toBecause
GA4 last clickPaid search, brandIt was the last click, and the only one.
Google AdsIts own brand campaignThe platform counts every order its ad touched.
Attribution waterfallInfluencer, GemmaThe code at checkout is mapped to the creator in your config sheet.
90%+
of influencer orders credited to the creator once discount codes are mapped, against 15–25% from tracked links alone.
Crux · gocrux.io[email protected]
How we attribute your ordersAttribution walkthrough
Layer one · Every client

The attribution waterfall: six sources, checked in order

  1. 1

    GA4 first click.

    The customer's first visit that was not direct, read from the raw GA4 export with no time limit, so a 60-day purchase cycle still resolves. Settles 60–70% of orders.

  2. 2

    Discount codes.

    The code at checkout, mapped in your sheet to a channel and a named partner. Catches influencer, referral, affiliate, podcast and out-of-home orders that arrive as direct or brand search.

  3. 3

    Shopify customer journey.

    Shopify's own record of the last touch that was not direct. Catches visits that ad blockers and cookie limits hid from GA4.

  4. 4

    Post-purchase survey answer.

    Where a survey is live, the customer's own answer to "How did you hear about us?" names the channel for their order.

  5. 5

    Order attributes and tags.

    What affiliate and influencer platforms such as Awin and Social Snowball write onto the Shopify order, and Shopify's own order source.

  6. 6

    Klaviyo.

    An order still in direct or unknown that Klaviyo ties to a campaign or flow goes to email. It never takes an order an earlier step has placed.

  7. ·

    Unknown.

    Whatever is left is reported as unknown or direct. At order level we never guess a source we cannot see.

4 in 5
orders that GA4 left in direct or unknown are moved into a named channel by steps two to six. 78% and 85% on our two live builds.

Every order traces to a touchpoint

An ad, a keyword, a code, a creator. That is why this layer is safe for campaign decisions.

First click by default

It shows which channel introduced the customer. Last click is kept beside it, and used for email and SMS.

You control the mapping

Channel rules, codes and survey answers live in a Google Sheet you edit. A new creator code is a new row, picked up at the next refresh.

Crux · gocrux.io[email protected]
How we attribute your ordersAttribution walkthrough
Layer two · Clients with a post-purchase survey

Modelled re-attribution: leftover orders, split by the survey

Left over after the waterfall
Unknown500
Direct800
Brand search800
The pool2,100 orders
→
What surveyed customers said this period
Meta ads50%
Influencer30%
YouTube20%
"How did you hear about us?"
→
Added to each channel
Meta ads+1,050
Influencer+630
YouTube+420
Moved2,100 orders

It needs a survey, and enough answers

We read the most recent period that holds enough answers to trust, and widen it until it does. Below that minimum the pool stays as unknown, so a handful of answers never swings a channel.

It moves credit, never orders

Total orders and revenue are the same before and after, and both still reconcile to Shopify. Brand search is in the pool because someone searching your name had already heard of you somewhere.

It is for channel decisions only

No single order is traced here, so it tells you how much to give Meta against influencer. It cannot tell you which ad or creator earned it. For that, read the waterfall.

Illustrative figures, not client data[email protected]
How we attribute your ordersAttribution walkthrough
The two names

Two layers, two jobs

Layer oneAttribution waterfallLayer twoModelled re-attribution
What it doesNames a channel for each order, from the first of six sources that canSplits the orders left in unknown, direct and brand search across channels, by survey share
Works onOne order at a timeChannel totals, day by day
Who has itEvery clientClients with a post-purchase survey and enough answers coming through
Read it forWhich ad, creator, code or keyword to changeHow channels compare, and where the budget goes
Do not read it forChannel totals, while unknown and direct are still largeAny decision about a single campaign, ad or creator
Where you see itThe Orders report and each channel deep diveThe Channel Performance report

The survey appears in both

In the waterfall, a customer's answer settles their own order. In modelled re-attribution, all the answers taken together settle the orders of customers who did not answer. Without a survey you still have the waterfall in full, minus step four, and what it cannot place stays as unknown.

Crux · gocrux.io[email protected]
How we attribute your ordersAttribution walkthrough
In practice

The same 10,000 orders under each view

ChannelGA4 last clickAttribution
waterfall
Plus modelled
re-attribution
Direct and unknown3,0001,3000
Brand search2,5008000
Meta ads2,9004,0005,050
Influencer4001,9002,530
YouTube3007001,120
Email9001,3001,300
Total orders10,00010,00010,000

Illustrative figures. The total never changes. With no survey the last column does not exist, and the waterfall column is your channel view.

What the waterfall did on two live builds
Share of orders in direct or unknown
Build A, GA4 alone
27%
Build A, waterfall
6%
Build B, GA4 alone
42%
Build B, waterfall
6%
Source: two live Crux client builds, 144,395 orders, October 2025 to September 2026. Waterfall only, neither runs a survey.
79%
of the orders GA4 left in direct or unknown now sit in a named channel, across both builds.
Crux · gocrux.io[email protected]
How we attribute your ordersAttribution walkthrough
Your part

Three things that improve your attribution

Give every creator and partner a unique code

A code is the only signal that survives a customer who never clicks. One code per creator, not one shared across a campaign.

Tag every paid link, with IDs not names

Put the platform's campaign and ad IDs in the link, not their names. A name gets edited or reused; an ID never changes, so the order still matches the ad that earned it.

Run a post-purchase survey

One question at checkout: "How did you hear about us?" It adds step four to your waterfall and switches on layer two. We set it up and map the answers.

The full method is in the help centre, and on video

Every step of the waterfall, the config sheet reference and the questions clients ask most. For anything about your own numbers, email [email protected] or message us on Slack.

Crux · gocrux.io[email protected]