Shopify UTM Tracking Integration

Track UTM parameters and campaign attribution with Shopify UTM Tracking Integration and HandL UTM Grabber on WordPress.

Pass UTMs from WordPress to Shopify Checkout

UTM attribution overview

Shopify UTM Tracking Integration only records UTMs that land on the checkout URL at purchase time. UTM Grabber keeps them in cookies on your site. This page explains how to pass that data through before the customer pays.

What to expect

Many stores run WordPress for content and Shopify for checkout. UTMs must survive that handoff. Shopify records UTMs present in the checkout URL.

Steps

Setup

  1. Use utm-out on Buy buttons that point to your Shopify store
  2. For cart permalinks, append utm_source, utm_campaign, gclid from handl_utm in JavaScript
  3. Confirm UTMs in Shopify order details or Analytics

Append UTMs with utm-out

UTM Grabber rewrites the link with cookie values. Details: utm-out class guide.

For webhook-based attribution after purchase, see Send Shopify Order UTMs via Webhook.

Send Shopify Order UTMs via Webhook

UTM attribution overview

This walkthrough covers sending full UTM Grabber data from Shopify UTM Tracking Integration to Zapier, Make, or your own webhook. Handy when you need gclid, fbclid, first-touch fields, or custom params alongside the lead or order.

Start with the main Shopify UTM Tracking Integration setup guide if you have not wired hidden fields or checkout links yet.

When a webhook makes sense

Native fields in Shopify UTM Tracking Integration often stop at basic UTMs. A webhook lets you push everything UTM Grabber stores without trimming values or losing click IDs.

Thank-you page script

Paste this on your confirmation page. Swap in your Zapier or Make hook URL.

<script>
var qvars = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
    qvars[key] = decodeURIComponent(value.replace(/\+/g, ' '));
});
qvars = Object.assign({}, (typeof handl_utm !== 'undefined' ? handl_utm : {}), qvars);
setTimeout(function() {
    var data = new URLSearchParams(qvars).toString();
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open('GET', 'https://hooks.zapier.com/hooks/catch/YOUR_ID/YOUR_KEY/?' + data, true);
    xmlHttp.send(null);
}, 1000);
</script>

Full pattern explained in Triggering Zapier on Thank you Page.

Quick Zapier / Make checklist

  1. Create a Catch Hook trigger and copy the URL
  2. Run a test conversion with UTMs in the landing URL
  3. Confirm gclid, utm_source, and email (if present) show up in the payload
  4. Map fields into your CRM or spreadsheet

Parameter reference: Native WP Shortcodes.

Make users: see Make Integromat integration.