Yes, but not the way the app listing implies. On a standard Shopify theme most attribution tools install in under an hour. On a headless build, whether that is Hydrogen and Oxygen or a custom Next.js front end, the one-click path does not exist and someone has to wire events manually.
The reason is simple. Shopify apps inject scripts into a Shopify-rendered storefront. If Shopify is not rendering your storefront, there is nothing to inject into. The checkout usually still runs on Shopify, which is why purchase events often work while everything before the purchase does not.
What actually breaks?
The front half of the journey. Page views, product views, add to cart, and any UTM or click ID captured on landing.
This produces a specific and confusing symptom. Order counts reconcile against Shopify almost perfectly, because orders come from Shopify’s webhooks, while attribution is a mess, because the tool never saw the sessions that led to those orders. Everything drifts toward direct or unattributed.
If you are seeing high order accuracy and terrible channel attribution on a headless build, that is the diagnosis and no amount of waiting for data to mature will fix it.
Which tools support headless properly?
Several, though usually on higher tiers or as a paid service rather than as a checkbox.
Elevar publishes headless documentation and sells a headless expert installation at $4,500, separate from its $1,000 standard install. That figure tells you something honest about the scope of the work. It is not an afternoon.
Analyzify includes headless and custom storefront support via its SDK on the Plus plan at $275 per month, not on Standard at $145. Worth knowing before you subscribe to the cheaper tier and discover the gap.
Littledata lists headless and Hydrogen support on its higher plans, with Plus starting from $792 per month billed annually.
Tools that expose a straightforward events API tend to be the pragmatic choice, because your developers are writing the integration either way and a clean API beats a clever installer that cannot run.
How much developer time should I budget?
Plan for one to three weeks of intermittent developer work, not a single sprint task.
The build itself is not hard. Fire the right events with the right payloads at the right moments. What consumes the time is the long tail. Client-side routing means page views do not fire on navigation unless you handle route changes explicitly. Cart state lives in your app rather than in Shopify, so add-to-cart has to be instrumented by hand. The handoff to Shopify checkout can drop the session identifier if you do not deliberately pass it. And consent handling has to be rebuilt because the Shopify Customer Privacy API integration is not automatic.
That last one catches people. Events that fire correctly but without consent handling create a compliance problem that is worse than the measurement problem you set out to solve.
Is server-side tracking more or less necessary here?
More, and it is one of the few genuine upsides of the situation.
On a headless build you already have a server rendering or serving your front end, and a developer already in the code. Sending events server-side is a smaller marginal step than it would be on a themed store, and you get better durability against ad blockers and browser restrictions as a result. Teams that do headless tracking properly often end up with cleaner data than the average themed store, precisely because nothing was automatic and everything got thought about.
Frequently asked questions
Will the tool’s own reconciliation still work?
Revenue reconciliation usually will, because order data comes from Shopify webhooks rather than from the storefront. That is why it is a poor test of whether your headless tracking is working. Check session counts and channel splits instead, and compare add-to-cart counts against orders for a ratio that looks plausible.
Does Shopify’s native attribution work on headless?
Partially, and less well than on a themed store, for the same reason. Shopify sees the checkout but not your front end, so its channel data depends on what gets passed through at the handoff. Treat it as a floor rather than a benchmark.
Can I use a free plan to test whether it works?
Usually not meaningfully, because the headless support tends to sit on paid tiers. You can often validate that events arrive using a free tier and a test container before committing, which is worth doing even if the eventual plan is paid.
What if only part of my site is headless?
Hybrid setups are the hardest case, because a visitor can cross between a Shopify-rendered page and a custom one mid-session and lose their identifier. Instrument the crossing points first and verify a full journey manually before trusting any aggregate report.
How do I verify it is actually working?
Walk a purchase yourself from an ad click through to the order confirmation, then find that exact order in the tool and confirm it carries the right source. Do it on mobile as well as desktop. Aggregate dashboards hide broken journeys; a single traced order does not. The wider routine is in my post on what I check before trusting a new attribution tool’s numbers.
Leave a comment