Tag Manager

GTM Event Settings for production store catalogues

Tag Manager

GTM Event Settings are the reusable event-level parameter pack I attach to a Google tag or a GA4 Event tag so Magento, Shopify and WooCommerce catalogues stop pasting currency, coupon and content_group into every tag by hand. I am Alan Vo, a Gold Coast web developer. Eighteen years of storefronts taught me that AUD on the PDP and USD on checkout is not a reporting style. It is a broken feed.

This note is for production catalogues I ship. Google's Reuse event settings in Google Tag Manager page is the product name I mean: a user-defined variable of type Google Tag: Event Settings. You fill it once, inherit it on the tags that should share those values, and override one field when one event is different. It is not a dataLayer and it will not invent items for a Magento configurable or a Woo variation.

What GTM Event Settings changed for catalogue measurement in 2026

GTM Event Settings changed catalogue measurement because the Google tag in Tag Manager now has a first-class place to reuse event parameters and user properties, instead of cloning the same pairs across a dozen GA4 Event tags. Google's Set up your Google tag in Google Tag Manager help page calls that field Shared event settings. The reuse article's example is a store sale: put discount in the variable once instead of editing every tag.

That is the 2026 shape I walk into. A Shopify Plus theme still fires view_item, add_to_cart, begin_checkout and purchase. A Magento store view still has a currency. A WooCommerce catalogue still has a coupon that only exists after apply-coupon. If each GA4 Event tag types currency as a constant, someone will change the AUD store and leave the gift-card tag on USD.

Google's Set up event parameters guide (last updated 3 June 2026) is the other half. Recommended names already have required and optional parameters. Custom names still have to be registered as custom dimensions or metrics before Explorations can use them. The variable does not register anything. If you add store_view and skip the event-scoped dimension, DebugView looks healthy and the report stays empty.

I do not invent a conversion lift from tidying the container. Their Nibs still has the Shopify figures I can publish: 31% more conversions and 48% more orders after a rebuild that was not a GTM variable. The Magento retail conversion case still has the +$2.5m year-on-year sales figure. Event Settings is how I keep those stacks from reporting two currencies on the same order. Google's user-defined variable types list names both Configuration Settings and Event Settings. Mixing them is the first ticket I close.

GTM Event Settings container work on a developer laptop

How GTM Event Settings actually work on a catalogue

GTM Event Settings actually work as a user-defined variable you create under Variables, then attach either to a Google tag (every event that tag owns) or to a GA4 Event tag (only that event). Google's reuse article is the click path: Variables, New, Variable Configuration, Google Tag: Event Settings. You add predefined names from their table, or you type a custom name. You can also add Google Analytics user properties as key-value pairs on the same variable.

The predefined list is not an event name list. Google says that outright. currency, coupon, value, transaction_id, content_group, language, shipping, tax, items and user_data sit there because they are event parameters. language is the one Google pre-fills, from navigator.language. If you set value, the table still wants currency so revenue math is not fiction.

Attach the variable on a Google tag when the parameter should travel with every event that tag sends. Attach it on a GA4 Event tag when only purchase or view_item should carry it. The UI then lets you Show inherited settings, Edit a value for that tag only, or Reset the override. I use that on Magento when shared currency is right and a gift-card purchase needs a different coupon.

Configuration Settings is the other variable. Google's Reuse configuration settings page is for load-time behaviour: cookie_domain, server_container_url, send_page_view, user_id. user_id there must not be PII and has a 256 character limit. Event Settings is the payload on the event. server_container_url in Event Settings will not move collect hits to your tagging server.

User properties are the third slot. Google's Google tag setup page says you can set up to 25 additional user properties per GA4 property. A store-view code is a user property. A SKU is not. SKUs belong in items.

items is where catalogues get expensive. Google's Measure ecommerce guide wants currency at event level whenever you send value. An items array can hold up to 200 products, plus up to 27 custom item parameters. Google's item-scoped custom parameters page is the quota: 10 item-scoped custom dimensions on a standard property, 25 on Analytics 360. I do not put items in the shared Event Settings on the Google tag.

Browser debug tools open beside a notepad

On Magento and WooCommerce I resolve currency and content_group from the dataLayer the theme already pushes. On Shopify, theme-hosted GTM can read a dataLayer in theme.liquid. A Shopify custom pixel for Google Tag Manager cannot. I keep Event Settings in the web container for storefront pages, and I map checkout parameters inside the pixel so the same names leave both rooms. Google's table also lets you set user_data to null on selected pages to opt out of automatic user-provided data.

Production checklist for GTM Event Settings

The production checklist for GTM Event Settings is one shared variable for values that belong on every event, separate variables for ecommerce events that carry items, then DebugView on a real order.

  1. Inventory the Google tags and GA4 Event tags. Keep one web container. Export the current version before you touch Shared event settings.
  2. Create a user-defined Google Tag: Event Settings variable. Name it for the scope, such as Shared catalogue events, not Settings 2.
  3. Put only cross-event keys in the shared variable: currency, content_group, and language if the store view is not the browser language. Leave items, transaction_id, value, shipping and tax off this one.
  4. Create a second Event Settings variable for purchase and refund. Map transaction_id to the platform order id, value to the sum of price times quantity, plus shipping, tax, coupon and items.
  5. Create a third for item views and cart mutations if those tags share an items builder. Do not reuse the purchase variable on view_item_list.
  6. Attach the shared variable on the Google tag as Shared event settings. Trigger that Google tag on Initialization - All pages, as Google's setup page recommends.
  7. Attach the ecommerce variables on the matching GA4 Event tags. Show inherited settings. Override coupon or value only when that event is the exception.
  8. If you need user properties, add them on the shared variable and stay at or under 25 extras per property. Register each custom user property as a user-scoped custom dimension.
  9. Register every custom event parameter you typed by hand. Google's custom definitions page says reporting can take 24 to 48 hours. Predefined ecommerce names do not need a second registration.
  10. Preview a collection, a product, cart, checkout and a paid test order. Confirm currency matches the shop and items is absent on page_view. Refund the order. Reconcile transaction_id against the platform.
Server racks as a stand-in for server-side tagging

Consent still sits in front. An Event Settings variable does not grant ad_storage. GTM Consent Mode for Australian storefronts is the AU-shaped version. If hits already travel on a first-party path, Google tag gateway is the host change, not a second parameter pack.

What breaks when GTM Event Settings sit on the wrong tag

What breaks when GTM Event Settings sit on the wrong tag is inheritance: a shared items array on the Google tag, or a purchase-only transaction_id leaking onto view_item. Google's reuse UI will inherit whatever you selected. Preview is where that shows up, not the variable editor.

The second break is Configuration Settings in the Event Settings slot. server_container_url and send_page_view belong on the Google tag configuration. Drop send_page_view into Event Settings and you still get the default page view. Drop cookie_prefix into Event Settings and the cookie name does not change.

The third break is a constant currency that does not match the store. Magento multi-store is the usual case. The AUD view and the USD view share one GTM container. A constant AUD makes the US purchase look Australian. I bind currency to the dataLayer the store view already emits. Google's ecommerce recommendations say to set currency at event level when you send value. They do not say to hard-code it if the shop has two currencies.

The fourth break is custom parameters you never register. fitment or store_code will appear in DebugView and vanish from Explorations. Standard properties have a quota of 50 event-scoped custom dimensions and 10 item-scoped custom dimensions. Burning one on transaction_id is the anti-pattern the custom definitions page names, because that field is already predefined.

The fifth break is items built from the DOM. A Magento configurable shows the parent. A Woo variation gallery shows the first colour. GA4 ecommerce events still want item_id to match the Shopping feed.

The sixth break is Shopify checkout. An Event Settings variable in the web container does not travel into Customer Events. I duplicate the parameter names in the pixel mapping. Two Google tags with two shared variables that disagree is the same class of mess. Google tag and Tag Manager unification still applies: one Google tag, one shared Event Settings variable, then the ecommerce tags.

How to measure GTM Event Settings

You measure GTM Event Settings in Tag Assistant and GA4 DebugView, then against platform orders, not against a green badge on the variable. Preview the workspace. Open the Google tag and each GA4 Event tag. Show inherited settings must list the keys you expect. An edited key should show as an override. A Reset should bring the shared value back.

Sticky notes mapping events on a desk

In DebugView, pick view_item, add_to_cart, begin_checkout and purchase from the same session. currency should be identical when value is present. items should exist on those ecommerce events and not on page_view. transaction_id on purchase should be the Magento increment id, the Shopify order name you chose to send, or the WooCommerce order number. Google's ecommerce purchase example uses transaction_id as the dedupe key. Duplicates are how refunds stop matching.

If you added custom parameters, wait for the custom definition. Google's custom dimensions page says 24 to 48 hours before you can report and advertise with the new field. Event Settings does not add a second gtm.js. If the page got heavier, you added a tag. Defer third-party tags still applies to chat and reviews.

I do not report a conversion percentage from creating the variable. I report whether inherited parameters match the shop, whether items stay on ecommerce events, and whether 48 hours of purchases match the platform after a refund of the test order.

Related work on this site

Related work on this site is the catalogues where measurement already had to survive a real purchase path. Their Nibs is the Shopify rebuild with the published +31% conversions and +48% orders. Offporter is another Shopify storefront where checkout events cannot live only in theme.liquid. Retail conversion is the Magento work with the published +$2.5m year-on-year sales figure, which is where a shared currency across store views is a production object. Pairing notes: Google tag gateway and GA4 ecommerce events.

GTM Event Settings FAQ

GTM Event Settings FAQ answers are the production questions I get after someone pastes currency into twelve tags and calls the container done.

Do GTM Event Settings replace a dataLayer on Magento or WooCommerce?

GTM Event Settings do not replace a dataLayer on Magento or WooCommerce. The variable repeats values you already resolved. currency, items and transaction_id still have to come from the theme, a module, or a dataLayer variable. If the layer is empty, inheritance just shares the emptiness.

Should I put items inside a shared GTM Event Settings variable?

You should not put items inside a shared GTM Event Settings variable on the Google tag. Google's ecommerce guide attaches items to shopping events. A shared array will leak last page's product onto page_view or reuse a cart on view_item_list. Keep items on the Event Settings variable that only the ecommerce tags inherit.

Laptop showing a tag manager overview screen

How do GTM Event Settings differ from Configuration Settings?

GTM Event Settings differ from Configuration Settings in when they apply. Event Settings send parameters with events. Configuration Settings change how the Google tag loads: cookies, server_container_url, send_page_view, user_id. Google documents them as two variable types. I attach both to the Google tag when both are needed, and I do not swap the dropdowns.

How do I debug GTM Event Settings on a Shopify checkout?

You debug GTM Event Settings on a Shopify checkout in two places. Theme-hosted GTM can inherit the web-container variable. Checkout in a custom pixel cannot. Confirm storefront events in Tag Assistant, then confirm checkout_completed in Customer Events and Pixel Helper. If the names differ, the reports will treat them as different shops.

I keep Event Settings boring on purpose. Shared keys stay shared. Purchase keys stay on purchase. The catalogue already has enough ways to lie about revenue.

GTM Event Settings container work on a developer laptop

Keep reading

Contact if you want this kind of work on a live store.