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 stage | Shopify event | Available as primary metric? |
|---|---|---|
| Product viewed | product_viewed | No (shown in detailed results) |
| Cart viewed | cart_viewed | No |
| Add to cart | add_to_cart | Yes |
| Checkout started | checkout_started | Yes |
| Contact info submitted | checkout_contact_info_submitted | No |
| Shipping info submitted | checkout_shipping_info_submitted | No |
| Payment info submitted | payment_info_submitted | No |
| Purchase completed | checkout_completed | Yes |
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:
- Reads the visitor’s variant assignment from the
splittestpro-experimentcookie. - Posts the event to Split Test Pro tagged with the experiment and variant IDs.
- Tags special events further — for example,
checkout_completedevents with asellingPlanAllocationline item are flagged ashas_subscriptionso 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_cartevents than Control. - But Variant B has fewer
checkout_completedevents. - The gap between
add_to_cartandcheckout_completedwidens 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.
Privacy and Consent
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:
- Settings → Customer events in Shopify admin: the Split Test Pro pixel should be Connected.
- Open your store, then open Shopify’s web pixel debug panel (or Chrome DevTools, Application → Cookies) and check that
splittestpro-experimentcookie is set after a pageview. - 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
- See how funnel events feed into the results dashboard: Results Dashboard.
- Wire up a custom event for goals outside the funnel: Custom Events.
- Use Revenue per Session and AOV as primary metrics: Continuous Metrics.
Ready to start testing?
Install Split Test Pro and run your first experiment today.