Shopify and Google Tag Manager
Use Shopify storefront events with Google Tag Manager while keeping Vendo's server-side commerce data and event identity consistent.
Last reviewed September 15, 2026
Google Tag Manager (GTM) runs in the storefront browser. Use it for tags that must run client-side. Use Vendo’s Shopify source for durable server-side commerce records and downstream delivery.
Before you start
- Get the Container ID (
GTM-XXXXXXX) of your GTM container. - For a headless storefront, install GTM on the storefront yourself.
- Connect Shopify to Vendo and enable the supported storefront tracking path.
- Decide which events GTM owns and which events Vendo owns, so that you do not send them twice.
Recommended ownership
| Need | Recommended owner |
|---|---|
| Marketing or analytics tags that must run in the browser | GTM |
| Shopify orders, customers, products, refunds, and fulfillments | Vendo Shopify source |
| Server-side delivery to warehouses, analytics, or messaging tools | Vendo destinations |
| Consent gating for browser tags | Your consent platform and GTM consent mode |
Configure GTM
In the Vendo Shopify app, Google Tag Manager shows as Coming Soon in the Add destination window. You cannot add it as a destination from the app. If Vendo has a Container ID for your store, Vendo’s theme block loads the container on your Shopify theme.
- For a headless framework, add the container with the method that the framework supports.
- Configure consent before marketing tags fire.
- Create triggers only for browser events that GTM must own.
- When a browser event has a server-side counterpart, use the same order and event identifiers.
- Publish to a test environment before production.
Data layer events
Vendo pushes storefront events into the GTM data layer with these event names:
| Vendo event | Data layer event |
|---|---|
| Page Viewed | page_view |
| Product Viewed | view_item |
| Product Added To Cart | add_to_cart |
| Product Removed From Cart | remove_from_cart |
| Cart Viewed | view_cart |
| Checkout Started | begin_checkout |
| Checkout Contact Info Submitted | add_contact_info |
| Checkout Address Info Submitted | add_shipping_info |
| Checkout Shipping Info Submitted | add_shipping_info |
| Payment Info Submitted | add_payment_info |
| Checkout Completed | purchase |
| Collection Viewed | view_item_list |
| Search Submitted | search |
| Customer Logged In | customer_logged_in |
| Newsletter Registered | newsletter_registered |
| Checkout Alert Displayed | alert_displayed |
| UI Extension Errored | ui_extension_errored |
For other events, the event name is the Vendo event name in lowercase, with underscores for spaces.
The Vendo app shows the labels Customer Logged In (login) and Newsletter Registered (sign_up). The data layer receives customer_logged_in and newsletter_registered, not login and sign_up. Create your GTM triggers on the names in the table.
Google Tag Manager does not receive custom events.
Data layer name
If Google Tag Manager is already set up for your store, its Settings tab has a Data Layer Name (Optional) field. If you leave it blank, Vendo uses the default name dataLayer.
Avoid duplicate events
Do not send the same event independently from GTM and Vendo without a shared deduplication key. For conversion platforms, keep the same event name, event ID, order ID and event time across browser and server copies.
Verify
- Use GTM Preview mode to confirm that the expected tags fire once.
- Complete a test storefront flow.
- Confirm that Vendo receives the expected Shopify events.
- Check each downstream destination for duplicate browser and server copies.
- Validate consent behavior in the accepted, rejected and undecided states.
Troubleshooting
| Symptom | Check |
|---|---|
| Tag never fires | Container installation, published version, trigger, and consent state |
| Event fires twice | Theme scripts, GTM triggers, and Vendo destination ownership |
| Browser and server events do not deduplicate | Event ID, order ID, event name, and timestamp mapping |
| Headless storefront has no events | Use the headless Shopify guide |