/Documentation

How to set up server-side tagging on your Shopify store

Updated Jun 9, 2026

Note: Stape has pre-built Google Tag Manager templates for Shopify that make setting up eCommerce tracking super easy. The templates come ready to track product views, add-to-cart actions, and purchases. Plus, we have a simple guide to walk you through installing and configuring everything, so you don’t need to be a tech expert to get accurate tracking set up on your store. Also, Stape provides a free feature - Setup Assistant. With its help, you can generate web and server GTM templates for the platforms/tools you use and automatically import them into containers.

The standard configuration of server-side tagging for Shopify is straightforward with Stape's Conversion Tracking app. The app will help you implement a modified gtm.js script to the Shopify store, send data to sGTM using webhooks, and transmit data layer pushes to the web container. 

Step 1. Set up the server Google Tag Manager container on Stape

Expand the collapse element below for the detailed guide on how to do it. 

Step 2. Add and configure Stape's Conversion Tracking app for Shopify 

2.1 Install the Stape Conversion Tracking app in the store

The Stape's Conversion Tracking app for Shopify can be installed for free from the Shopify marketplace

Stape Conversion Tracking app in the Shopify store

2.2 Configure General tab

In the Generate tab are all the settings related to adding the GTM snippet on all pages of your Shopify shop in a way that makes it resistant to ad blockers / ITP / cookie lifetime limitations before installing it on all pages of your Shopify shop.

General tab settings
  • Use Shopify Markets

Check the box if you have multiple Shopify markets. Using the feature, you can configure GTM injection separately for each Shopify market. If the feature is disabled, all markets use the default setup.

When enabled, you will see the fields required to configure for each market:

  • Insert GTM - if checked, the GTM snippet is added to each website page.
Container ID in GTM
  • Customer privacy API - if enabled, the app holds GTM loading until the visitor accepts cookies through Shopify's Customer Privacy banner. By default, the option isn't recommended.
  • Custom domain, Stape container ID, and Cookie Keeper - the fields are associated with server-side tracking; you need to configure them if you use/going to use the server-side setup. Below, we explain where to find values for each field.
GTM injection config
  • GTM web container ID

Here, you need to specify your GTM web container ID.

Web container ID in GTM
  • Custom domain

It is extremely important to use your own subdomain for first-party cookies to work correctly and for tracking to work in general. If you do not already have a subdomain added to your sGTM container, you can follow the guide on custom domains to add it.

  • Custom Loader

Its use is highly recommended to increase protection against ad blockers.

Click on the corresponding check box and specify your Stape container identifier. To find it, log in to your Stape account, select the sGTM container, and find the container identifier in the Settings section.

Container identifier in the "Settings" section
  • Cookie Keeper

The power-up allows you to minimize the impact of the latest ITP restrictions. Before activating this feature via the app, make sure you have it enabled in Stape in your container. To configure Cookie Keeper, click on the collapse element below and follow the instructions:

  • GTM snippet block

Here you can take the GTM snippet to install it on pages that are outside of your Shopify theme (such as pages made by third-party apps like Zipify).

2.3 Set up Data Layer tab

In the Data Layer tab, you can find the data layer events to activate and configure. The second box gives you control over whether event names get the _stape suffix to prevent any clashes in GTM. If it's off, events keep their normal names.

"Data Layer" tab

Data layer activation:

  • Activate the Add ecommerce Data Layer events checkbox.
  • Save changes.
  • Copy the code for the custom pixel in the box below on the data layer tab and follow the instructions to add and activate it.

In the Customer privacy section, under Permission spoiler, please make sure to select Not required. The code snippet only generates the Data Layer; it does not set any cookies or report any data to third parties.

In the Data Layer tab of the app, there is also an option Log events to console (Dev), which is a debugging option for developers and store admins. When enabled, it logs eCommerce events in the browser console, shows event payloads sent to the GTM/Stape server container for verification, and helps debug Data Layers.

This option is for development only and should be disabled in production to avoid unnecessary console logging.

"Log events to console (Dev)" checkbox

2.4 Configure Webhooks tab

Webhook events are configured in the Webhook tab.

Note: the problem with webhooks on Shopify is that they don't contain any cookie data, which is crucial for tracking any platform, so using webhook events is only recommended as a last resort if you, for some reason, can't track it online.

This tab is where the webhook events are configured.

"Webhook" tab

To activate a webhook, you need to activate the checkbox, specify the URL of the server GTM container, and /path where the webhooks should be sent.

You can subscribe to webhooks when a new order is created or when a refund is made on an order.

Here are some useful blog posts we have about using and debugging webhooks:

2.5 The Customer Match tab

Skip the configuration in this tab if you don't run Google Ads campaigns or don't use Customer Match lists.

Step 3. Send data to the server Google Tag Manager container 

There are two most popular ways to do that:

Step 4. Configure tracking inside the server Google Tag Manager container 

Most popular marketing and analytics tools already support server-side tagging and have tags for sGTM. You can find guides on our site to implement those, for example, Facebook CAPI, TikTok events API, Snapchat Conversions API, Google Ads server-side tracking, etc.

Step 5. Test the app configuration

Debugging a GTM download

After activation or any changes, it is recommended to check if your container is actually uploaded to the site.

To do this, go to any page on your site, open your browser console, and in the network tab, filter by your subdomain/tagging server URL. You should see a request like in the following screenshot with a response status 200:

"Network" tab in browser console

Debugging data layer checkout events

With events that happen before the checkout page, everything works like on any other platform - you can launch a preview of your GTM web container and find all the events you do:

Events in the web GTM Preview mode

The checkout events won't be displayed in GTM Preview due to the isolated environment on these pages that blocks unrestricted DOM manipulation or script injection, including the GTM snippet.

But you can manually insert the snippet on the checkout page using the Stape GTM Helper Chrome extension:

  • After running Preview Mode in GTM, turn on the toggle Shopify Sandbox dataLayer in the Settings tab of the extension.
  • In the tab Inject GTM, click Enable injection, add your domain name, and GTM ID. Save changes.
Inserting the snippet on the checkout page manually

Now, the events on the checkout page will display in GTM Preview.

Checkout page events in the web GTM Preview mode

Was this article helpful?

Comments

Can’t find what you are looking for?