Documentation Index
Fetch the complete documentation index at: https://arkticstudio.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Visitor identification
Each visitor gets a random 128-bit ID (spt_vid cookie) on their first visit. This ID is set for 1 year and is used for all bucketing decisions. The same visitor always gets the same variant.
Bucketing
Split Tester uses FNV-1a hashing to deterministically assign visitors to variants:- No database lookup needed on the storefront (zero latency)
- The same visitor always gets the same variant across sessions
- Adding a new experiment doesn’t affect existing assignments
Traffic allocation
Before bucketing into a variant, each visitor is first checked against the experiment’s traffic allocation:Assignment persistence
Once a visitor is assigned, their assignments are stored in thespt_asgn cookie as a JSON map:
Config delivery
Experiment configuration is stored in a Shopify shop metafield (split_test_app.config). The theme embed reads this at Liquid render time and injects it as window.__SPT_CFG_INLINE__ — so there are zero API calls on the critical path.
Event tracking
After bucketing, the JS fires:| Event | When |
|---|---|
PAGE_VIEW | Every page load |
ADD_TO_CART | Form submit to /cart/add, cart drawer events, or ATC button click |
INITIATE_CHECKOUT | Checkout button click or form submit to /checkout |
navigator.sendBeacon (fire-and-forget, non-blocking).
Order attribution
When an order is created, Shopify fires a webhook. Split Tester reads the_spt_vid and _spt_asgn cart attributes (written by the JS on every page load) to attribute the order to the correct experiment and variant.