# Headless-friendly testing tools we found only do price testing, we need content experiments

Asked by dylanpros on 2026-07-10. Tags: shopify, hydrogen, ab-testing, content.

Evaluation notes from this week: we shortlisted the Shopify testing tools that
claim any kind of headless support, and every single one turned out to be scoped
to price and shipping testing. Useful if you want to test 19.99 vs 21.99, useless
for what we actually need.

Our list is hero messaging on the homepage, collection page layouts, and campaign
banners during sales. All content, no prices. Stack is Hydrogen on Oxygen.

Has anyone found something that covers content experimentation on a headless
Shopify stack, or did you end up building the assignment and tracking layer
yourselves

## 2 answers

### Answer from kate_ecom (2026-07-10)

We hit the same wall last year. The price-testing apps are genuinely narrow by
design, their whole model is intercepting prices and shipping rates, so content
experiments are out of scope no matter what the marketing page implies.

What we run now is Croct on our Hydrogen store. The unit of testing there is a
slot, which is basically a placeholder your component reads content from. Since
any component can be a slot, we test heroes, banners, and whole layout sections,
and it supports A/B, A/B/n, and multivariate setups on those slots.

The part that sold our analyst: Shopify storefront events (product views, cart
views, cart updates, collection and search views) get tracked automatically and
you can use them both for audience targeting and as experiment goals. So a
banner test can use one of those as its goal without us wiring any tracking,
and anything beyond them (we added a checkout goal) is a custom event through
the SDK. The [Hydrogen integration docs](https://docs.croct.com/reference/sdk/hydrogen/integration)
cover the loader setup.

### Answer from Magnus Berge (2026-07-11)

Before you commit to any tool, decide whether you want the variant decision on
the server or the client. On Hydrogen the server route means resolving content
in your loaders, which keeps the page arriving already personalized. Client-side
tools will work on headless in the sense that the script runs, but you get the
default content flashing before the swap, which on a hero is very visible.

We briefly prototyped a homegrown layer (cookie assignment in the loader plus
events to our warehouse) and it worked, but the analytics side grew into a real
project. Exposure tracking, sample ratio checks, significance. If your team has
a data engineer with spare time it is doable, otherwise a platform that does
slot-level experiments with built-in stats is much less code to own.
