How reliable are Shopify's built-in checkout events for long-term tracking with Google Tag Manager?

Since Shopify removed support for the checkout.liquid template, I need to find other ways to track purchase data for third-party analytics tools that don’t have official Shopify integrations.

I discovered I can use Google Tag Manager to listen to Shopify’s native checkout events and push that data to external tracking pixels. The setup involves creating custom pixel code that subscribes to events like payment_info_submitted and checkout_completed, then forwards this information to GTM’s data layer.

analytics.subscribe('checkout_started', (event) => {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    'event': 'begin_checkout',
    'checkout_token': event.data.checkout.token,
    'total_price': event.data.checkout.totalPrice.amount
  });
});

analytics.subscribe('payment_info_submitted', (event) => {
  window.dataLayer.push({
    'event': 'add_payment_info',
    'currency': event.data.checkout.currencyCode,
    'value': event.data.checkout.subtotalPrice.amount
  });
});

The process works but feels complicated when these events already fire automatically. I’m concerned about depending on unofficial third-party apps since I can’t guarantee they’ll maintain long-term support.

Has anyone used this GTM approach for extended periods? Do Shopify’s standard event names and data structure remain consistent over time, or do they change frequently with platform updates?

Been running this exact setup for three years across multiple Shopify Plus stores. The event structure’s surprisingly stable - Shopify treats these as core APIs so they don’t break things often. But you’re right about the complexity being the real problem. The biggest issue isn’t Shopify changing stuff, it’s third-party checkout apps and payment gateways messing with event firing. Shop Pay and other accelerated checkouts skip certain events completely. I’ve found checkout_completed works best, while payment_info_submitted is hit or miss depending on payment method. What saved me was adding a validation layer that compares GTM data against Shopify’s order webhooks. Catches problems right away and keeps data clean. Also watch out - some checkout extensions in the new extensible checkout system mess with event timing. Overall I get about 95% reliability, which beats most third-party solutions.

I’ve been using this for 2 years - it’s pretty solid overall. Shopify rarely breaks their events, but updates can mess things up for a few days. Keep backup tracking methods ready, maybe server-side events as fallback. My main issues weren’t Shopify changes but checkout extensions interfering with event firing.

Honestly, your reliability concerns are valid but probably overstated. I switched to this GTM method 14 months ago when checkout.liquid got deprecated and haven’t looked back. Here’s what everyone misses - these aren’t really “unofficial” events. They’re part of Shopify’s Web Pixels API, which is their official replacement for checkout.liquid tracking. Shopify has strong incentive to keep these stable since major brands depend on them for attribution. My experience has been different from others. I’ve seen zero breaking changes to the core events you mentioned. The data structure for checkout_completed and checkout_started has stayed identical since I implemented it. Where I did run into trouble was assuming all checkout flows trigger events the same way. Express checkouts like Apple Pay sometimes fire events in different sequences, so test thoroughly across payment methods. One thing that helped was adding event deduplication logic in GTM since some events can fire multiple times. The setup complexity is worth it - you get much more granular data than most tracking apps provide, and you’re not dependent on third-party developers maintaining integrations.

Been doing this for 6 months now - way more reliable than I expected. Shopify rarely messes with these events since it’d break too many stores. Only issue is checkout extensions can delay the event firing, so I added buffer time in my GTM triggers to catch everything.

I’ve run a similar GTM setup for 18 months - here’s what I’ve seen. Shopify’s checkout events are pretty stable. There was one small change last year where they tweaked currency formatting in some regions. Event names stay the same, but they sometimes adjust nested data properties. Build error handling and fallbacks into your GTM code. I wrap event listeners in try-catch blocks and log data structure changes to catch issues early. Set up automated alerts in your analytics platform so you know if conversion tracking tanks. My biggest problem wasn’t Shopify’s events - it was timing issues where GTM missed events firing. Adding a small delay or using GTM’s built-in timeout settings fixed most of these.