A/B holdout
An A/B holdout shows you, with your own orders, how size-related returns compare with and without TryYourSize. A share of your visitors (the holdout) sees no TryYourSize element at all; everyone else (the treatment) sees it as usual.
Start an experiment
Section titled “Start an experiment”In Studio → Results, start an experiment and choose the holdout share: 10–50 % of visitors. One experiment runs per store at a time. Stopping it shows TryYourSize to everyone again; the results stay.
Nothing changes in your code: TryYourSize.js reads the running experiment and applies it.
What the SDK does
Section titled “What the SDK does”- Assignment: a random anonymous visitor ID in your site’s own
localStorage(tys_vid). It is first-party to your shop, not shared across shops, not a cookie on our domain, and never linked to a shopper account. The arm is a deterministic hash of the experiment’s salt and that ID, so a visitor stays in the same arm. - Holdout: nothing is rendered: no element, no status frame, no window.
recommendation()andgetRecommendation()answerunavailablewith no size, andrecommendationHandle()answersnull, so your own preselection and your server do not leak TryYourSize into the holdout.readynever fires. - No experiment, or our API unreachable: everyone sees TryYourSize (such visitors are not counted in either arm).
- Demo mode is never part of an experiment.
Send the visitor ID with orders
Section titled “Send the visitor ID with orders”To attribute an order to its arm, save the visitor ID with the cart and send it with the order:
const assignment = await tys.experiment(); // { experimentId, arm, visitorId } | nullif (assignment) saveToCart("tys_vid", assignment.visitorId);Then send it as visitor_id in POST /v1/orders. TryYourSize recomputes the arm from the ID; it stores only a hash of it. If you cannot send the ID, send experiment_arm (treatment or holdout). On Shopify, the theme block writes the ID as the hidden line property _tys_vid for you.
Billing
Section titled “Billing”The holdout renders nothing, so it never creates a fit check, a try-on or a window session: holdout traffic is never metered.
Reading the results
Section titled “Reading the results”Studio → Results shows the size-related return rate per arm with 95 % intervals, the difference and whether it is significant, the sample still needed when there is not enough data yet, and a warning when the observed split does not match the configured one. “Followed the recommendation vs not” is shown too, labelled as observational. The methods are written on the page and in the CSV export.
Was this page helpful?
Thank you. We read every answer.