Split Test Pro
Intermediate 5 min read

Shopify Funnel Tracking

How Split Test Pro's Shopify Web Pixel captures the full purchase funnel automatically — every event from product view to completed checkout — and how to read funnel breakdowns in your results.

This is a Shopify-only doc. HTML workspaces don’t get automatic funnel tracking — see Custom Events for the manual equivalent.

When Split Test Pro is installed on Shopify, the Web Pixel automatically captures every event in the storefront-to-checkout funnel. You don’t write any tracking code, and the data is available for every experiment from the moment it goes live.

What Gets Tracked

The Web Pixel subscribes to Shopify’s all_events channel, so it captures every standard event Shopify emits. The funnel events Split Test Pro uses for results:

Funnel stageShopify eventAvailable as primary metric?
Product viewedproduct_viewedNo (shown in detailed results)
Cart viewedcart_viewedNo
Add to cartadd_to_cartYes
Checkout startedcheckout_startedYes
Contact info submittedcheckout_contact_info_submittedNo
Shipping info submittedcheckout_shipping_info_submittedNo
Payment info submittedpayment_info_submittedNo
Purchase completedcheckout_completedYes

The bolded events are the three binary primary-metric goals available in the experiment config. The non-bolded events are still tracked and shown in detailed result breakdowns — useful for diagnosing where in the funnel a variant changed behavior — but you can’t currently select them as the primary metric.

Continuous Metrics From Funnel Data

Two continuous metrics are derived from checkout_completed events automatically:

  • Revenue per Session — total order value divided by sessions. The default primary metric on Shopify.
  • Average Order Value (AOV) — total order value divided by orders.

Both are selectable as primary metrics. See Continuous Metrics for how the engine handles them statistically.

How the Pixel Works

The Web Pixel runs in Shopify’s sandboxed pixel environment — a separate JavaScript context from your theme. This is intentional: it keeps tracking code isolated from the storefront, so a pixel bug can’t break your store, and your store can’t accidentally suppress the pixel.

When an event fires, the pixel:

  1. Reads the visitor’s variant assignment from the splittestpro-experiment cookie.
  2. Posts the event to Split Test Pro tagged with the experiment and variant IDs.
  3. Tags special events further — for example, checkout_completed events with a sellingPlanAllocation line item are flagged as has_subscription so they show up in the Subscriptions column of results.

You don’t need to do anything to enable this. As long as the Web Pixel shows Connected under Settings → Customer events in your Shopify admin, the funnel is being tracked.

Reading the Funnel in Results

Open any experiment’s Results tab. Per variant, you’ll see counts for each funnel stage, plus the conversion rate from one stage to the next.

This is where you spot funnel drop-offs that aggregate metrics hide. For example:

  • Variant B has more add_to_cart events than Control.
  • But Variant B has fewer checkout_completed events.
  • The gap between add_to_cart and checkout_completed widens for Variant B.

The conclusion: Variant B is generating excitement at the cart but losing those visitors at checkout. The aggregate purchase rate might look flat, masking that you’ve moved the bottleneck rather than fixed it.

The Web Pixel respects your store’s Customer privacy settings. If a visitor hasn’t granted analytics consent under your store’s regional rules, the pixel won’t fire — meaning that visitor won’t be assigned to or counted in any experiment.

For most stores in the US, consent is implicit, so the pixel runs for every visitor. For EU stores using Shopify’s consent banner, the pixel runs only for visitors who’ve granted analytics consent.

This is handled at the Shopify platform level — you don’t wire it up. See Privacy and Consent for the full multiplatform picture.

What the Pixel Can’t Do

A few things outside the pixel’s reach:

  • Conversions on a third-party domain. If your checkout flow ever leaves shopify.com — for instance, a downsell page on a different domain — the pixel doesn’t follow. Use a cross-domain identifier or measure within Shopify only.
  • Pre-purchase events outside Shopify’s standard set. A button click that doesn’t map to a Shopify pixel event won’t be auto-tracked. For these, fire a custom event from theme JavaScript via Shopify.analytics.publish(...) and Split Test Pro will pick it up.
  • Server-side conversions. The pixel is browser-side. If you need server-side attribution (e.g., for a manual phone-order confirmation), Shopify’s Order webhooks combined with the order’s cart attribute (__splittestpro-experiment) is the path.

Verifying Pixel Health

If results aren’t showing up:

  1. Settings → Customer events in Shopify admin: the Split Test Pro pixel should be Connected.
  2. Open your store, then open Shopify’s web pixel debug panel (or Chrome DevTools, Application → Cookies) and check that splittestpro-experiment cookie is set after a pageview.
  3. Check Online Store → Themes → Customize → App embeds: Split Test Pro should be on for the published theme.

If all three are good but no events arrive, contact support — the pixel may be silently rejecting events due to a config mismatch.

Next Steps

Ready to start testing?

Install Split Test Pro and run your first experiment today.

Install on Shopify