Conversion Goals
The ten standard Shopify goals, custom JavaScript-event and Page view goals, and how to choose the Default goal your experiments are judged on.
A conversion goal defines what counts as a “win” for your experiment. Every experiment has one Default goal — the goal Results judges it on, which drives every probability calculation and the winner verdict — plus the other Tracked goals reported alongside it. This guide covers what’s available out of the box, how to add your own goals, and how to choose the default.
Goals are defined once per workspace in Settings → Conversion goals (/settings#goals) and shared by every experiment. Only the workspace owner can edit them.
Goals on Shopify (Built-In)
Shopify workspaces get ten Standard goals. Nothing to configure — they start collecting data the moment the Web Pixel is installed, and every new experiment tracks them.
| Goal | What it counts | Type |
|---|---|---|
| PDP Views | Users view product pages | Binary (count) |
| Add to Carts | Users add products to their cart | Binary (count) |
| Cart Views | Users view their cart | Binary (count) |
| Checkout Started | Users start the checkout process | Binary (count) |
| Contact Info Submitted | Users submit their contact details | Binary (count) |
| Shipping Info Submitted | Users submit their shipping details | Binary (count) |
| Payment Info Submitted | Users submit payment information | Binary (count) |
| Purchases | Completed orders | Binary (count) |
| Revenue per Session | Total revenue per session | Continuous |
| Average Order Value | Average value per order | Continuous |
These map directly to the Shopify Web Pixel’s funnel events (see Shopify Funnel Tracking). Every one of them can be chosen as the Default goal.
The workspace default goal
At the top of the Conversion goals card, the Default goal select sets the goal every new experiment starts with. Leave it on the blank option — Recommended default · Revenue per Session on Shopify — to follow the platform default, or pick any standard, custom or calculated goal. When you create an experiment, the wizard prefills its Default goal from this setting; you can change it per experiment on the General step.
The setting is a fallback, never an override: an experiment that already has a goal keeps it.
Goals on HTML (Custom)
HTML workspaces don’t get pre-wired goals — you define what counts as a conversion. Each custom goal has:
- Display name — the human-friendly label shown in Results.
- Event key — a short identifier in lowercase letters, numbers and underscores (e.g.,
signup,contact_submit,lead_form_submit). While you type a new goal’s display name, the key follows it in snake_case until you edit the key yourself. - Kind — JavaScript event (your site fires it with
track()) or Page view (it fires when a visitor reaches a matching URL — no code).
Defining a goal
- Open Settings → Conversion goals (
/settings#goals). - Under Custom goals, click Create goal.
- Enter the Display name and Event key, and pick the Kind.
- For a Page view goal, enter a URL pattern (for example
/thank-you) and how it matches: Exact match, Contains, Starts with or Regex. The pattern is checked against the page’s full URL, so Contains or Starts with is usually what you want. - Click Save goals.
The goal is now available as a Tracked goal — and as the Default goal — on any experiment.
On HTML there’s no platform default: if you leave the Default goal select on its blank option, Splitty picks the first goal when it builds a test.
Firing a JavaScript-event goal from your site
Page view goals need no code. For a JavaScript event goal, fire the conversion event from JavaScript on the page where the conversion happens (typically a thank-you page, post-signup confirmation, or success state):
window.SplitTestPro.trackConversion("signup");
You can also pass a numeric value — useful for revenue or any other quantitative goal — to enable continuous-metric reporting:
window.SplitTestPro.trackConversion("purchase", {
value: 49.0,
currency: "USD",
});
See Custom Events for the full API including the hasSubscription flag and the value/amount aliases.
Picking the default goal
The Default goal is what Results judges the experiment on — it drives the “chance to beat control,” the credible interval, and the winner verdict. Pick deliberately, both for the workspace default and on each experiment.
Pick a metric tied to actual business outcomes
Optimizing for add_to_cart rather than purchase is a common mistake — a variant might lift add-to-cart but tank purchases (a too-aggressive CTA that gets clicks from people who immediately bounce at checkout). Default to the bottom of the funnel.
Pick a metric with enough volume to reach significance
If you’re running on a low-traffic page and your default goal is a rare event (e.g., one purchase per 500 sessions), expect long runtimes. For early-stage tests, an upper-funnel metric that fires more often (add_to_cart) gets you a directional signal faster — just don’t mistake it for the final answer.
Pick a metric that the variant can plausibly affect
Testing a button color and choosing “Newsletter Signups” as the Default goal makes no sense — the variant doesn’t touch the newsletter form. The hypothesis and the metric must be in the same causal chain.
Grouping Goals into Funnels
Goals — and, on Shopify, the built-in funnel events — can be arranged into named, ordered workspace funnels under Settings → Funnels (/settings#funnels): up to 10 per workspace, up to 12 steps each, with exactly one marked as the workspace default. Like goals, funnels are defined once at the workspace level and shared by every experiment; only workspace owners can edit them.
Workspaces that haven’t defined any funnels get a platform default automatically:
- Shopify: PDP Views → Add to Carts → Checkout Started → Purchases.
- HTML: your goals, in the order they’re defined.
See Shopify Funnel Tracking for the full step catalog and how funnel stages read in results.
Multiple Goals on One Experiment
Every experiment tracks more than one goal. On the experiment’s General step, the Tracked goals chips list every workspace goal — all are tracked unless you deselect them, and the Default goal is always tracked. The Default goal drives the winner verdict; Results shows the other tracked goals in its Other goals table. This is useful for spotting unintended downstream effects:
- Default goal: Purchases
- Also tracked: Add to Carts, Checkout Started
If Purchases is up but Add to Carts is down, something funky is happening — probably worth investigating before declaring a winner.
Custom Goals on Shopify
Custom goals work on Shopify too, with one difference: JavaScript event goals are fired by the HTML snippet’s track() function, and the Shopify storefront script has no track(). On a Shopify store, use a Page view goal (for example, a URL pattern for a confirmation page) or one of the ten standard goals.
Common Mistakes
- Picking a Default goal you can’t influence. Hypothesis and metric must be linked. A button-color test should pick a click-adjacent metric, not a downstream one disconnected from the change.
- Defining a JavaScript-event goal but never firing it from your site (HTML). The goal definition is just a label; without a
track()call from your code, no data is recorded. - Using vague event keys like
event_1,goal_a. Future-you will not remember what they meant. Use descriptive keys likepaid_signuporenterprise_inquiry. - Switching the Default goal mid-experiment. This contaminates your data — you’ve now optimized for two different things sequentially. If you realize the metric was wrong, complete the experiment and start a new one.
Next Steps
- Wire up your first custom event: Custom Events.
- Track revenue or other numeric values: Continuous Metrics.
- Derive your own ratio metrics from goals — value per session, conversions per view: Calculated Metrics.
- See what the dashboard shows for each goal: Results Dashboard.
- See every card in Settings, including who can edit it: Workspace Settings.