Split Test Pro
Beginner 6 min read

Conversion Goals

Define what counts as a "conversion" for your experiment. How built-in goals work on Shopify, how to wire up custom goals on HTML, and how to pick the right primary metric for your test.

A conversion goal defines what counts as a “win” for your experiment. The primary metric you select drives every probability calculation and the “Declare Winner” CTA. This guide covers what’s available out of the box and how to add your own.

Goals on Shopify (Built-In)

Shopify workspaces get five conversion goals pre-wired. Nothing to configure — they start collecting data the moment the Web Pixel is installed.

Goal keyDisplay nameType
add_to_cartAdd to CartBinary (count)
checkout_startedCheckout StartedBinary (count)
checkout_completedPurchasesBinary (count)
revenue_per_sessionRevenue per SessionContinuous
average_order_valueAverage Order ValueContinuous

Default primary metric: revenue_per_session.

These map directly to the Shopify Web Pixel’s funnel events (see Shopify Funnel Tracking). All five are available as primary metrics without any setup.

Goals on HTML (Custom)

HTML workspaces don’t get pre-wired goals — you define what counts as a conversion based on your site’s events. Each goal has two parts:

  • Event key — a short, lowercase, alphanumeric identifier (e.g., signup, add_to_cart, lead_form_submit). Must be unique per workspace.
  • Display name — the human-friendly label shown in the Results dashboard.

Defining a goal

  1. Open Settings → Conversion goals.
  2. Click Add goal.
  3. Enter the display name and event key. The key is auto-normalized to snake_case as you type.
  4. Save.

The goal is now selectable as a primary metric on any experiment.

Firing a goal from your site

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 a Primary Metric

The primary metric is what the Results dashboard judges the experiment on — it drives the “probability to be best,” the credible interval, and the eligibility of the “Declare Winner” CTA. Pick deliberately.

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 primary metric 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 primary metric makes no sense — the variant doesn’t touch the newsletter form. The hypothesis and the metric must be in the same causal chain.

Multiple Goals on One Experiment

You can track multiple goals on a single experiment. The primary metric drives the “winner” decision, but the Results dashboard shows all tracked goals with their per-variant breakdowns. This is useful for spotting unintended downstream effects:

  • Primary: purchase
  • Secondary tracked: add_to_cart, checkout_started

If purchase is up but add_to_cart is down, something funky is happening — probably worth investigating before declaring a winner.

A Note on Shopify-Specific Goals

The Shopify Settings UI includes a section that hints at custom-goal definitions beyond the five built-ins. This isn’t currently wired through end-to-end — for Shopify, stick to the five built-ins. If you need a custom Shopify goal (e.g., an event from a third-party app), the practical workaround today is to fire it via the Web Pixel using JavaScript and treat it as a custom event.

Common Mistakes

  • Picking a primary metric 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 goal but never firing it from your site (HTML). The goal definition is just a label; without a trackConversion 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 like paid_signup or enterprise_inquiry.
  • Switching the primary metric 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

Ready to start testing?

Install Split Test Pro and run your first experiment today.

Install on Shopify