CHANGELOG
Everything new in GTM Kit
Releases for GTM Kit and GTM Kit Premium, newest first.
Find out about what's new in our release post.
Added
- New "Server-side GA4 measurement ID" setting routes each site's webhook events to its own GA4 property when several sites share one server GTM container. The destination travels with each webhook, so adding a site needs no container edit, and a site with the field empty keeps using the measurement ID configured in the container itself. Requires re-importing the updated server container template once.
- Server-side webhook events now also carry their GA4 ecommerce, cookie, attribution and consent values as flat top-level fields, so standard GA4, Meta CAPI and Google Ads tags in your server container pick them up through default parameter inheritance, with no per-parameter mapping variable and no GTM template to import. The original nested objects are kept, so nothing in your container breaks.
- Purchases now carry a stable, transaction-based event_id on both the browser event and the server-side webhook. When the same order reaches a shared server container from both the browser and the webhook, your GA4 tag deduplicates it instead of double-counting revenue, and a retried webhook stays idempotent.
- New setting to turn the flat fields and purchase deduplication on or off, plus an optional event_id prefix (defaults to your site name) so several stores can safely share one server container.
- While the sGTM Preview/Debug session is active, server-side webhook events carry GA4's debug signal (the same one browser debug traffic carries), scoped to the Preview session and never marking normal traffic. Note that GA4's DebugView does not reliably list purely server-originated events; verify webhook delivery in the server container's Preview panel and in GA4 Realtime.
Find out about what's new in our release post.
Added
- New "Send test webhook to sGTM Preview" tool (Setup → Environment). Send a server-side event to your server container with the Preview token attached, so it appears in the container's Preview/Debug panel on demand, without placing a real order. Pick any event type, send a synthetic sample or replay a real order, and read the container's response inline. An optional, self-expiring developer toggle can also show live orders in Preview; it disarms automatically when the token expires, so it can never break live tracking.
- New
gtmkit_webhook_request_argsfilter lets developers add headers (such as the sGTM Preview token) or otherwise reshape outgoing server-side webhook requests, without patching core.
Fixed
- Generating a GTM container from the Template Assistant with a premium service selected (such as Server-Side Webhooks – GA4) now works. The request is sent to the licensed template endpoint with your license key, so the premium service is recognised as part of your plan instead of being rejected with a generic error.
Added
- Event Deferral now works when your Consent Management Platform drives Google Consent Mode itself (via the WP Consent API), without turning on GTM Kit's own Consent Mode. Deferred ecommerce events fire the moment a visitor accepts consent, with no duplicate Consent Mode signals and no changes to your GTM container.
Fixed
- With a Consent Management Platform that publishes through the WP Consent API, deferred ecommerce events now fire the instant a visitor accepts the consent banner, instead of waiting out the fallback timeout (or being dropped). This closes the gap where a first-time visitor's add to cart, checkout or purchase could be lost while the page waited for the timeout.
Added
- The Debug log now records every server-side webhook GTM Kit sends, including the full payload and the HTTP status your tagging server returned, not just the purchase event. You can read the exact request for purchases, order-status changes, refunds and subscription events in WooCommerce → Status → Logs.
- The "Send webhooks from a background queue" setting now links to WordPress' Scheduled Actions screen, filtered to GTM Kit's queued dispatches, so you can inspect pending, completed and failed webhook jobs.
Fixed
- Premium templates no longer fail to download when the stored licence key goes missing while the licence still reads as valid. The plugin now treats a missing key as not licensed, so the templates page prompts you to re-activate instead of producing a broken request.
- Licence activation now confirms the key was actually saved and shows a clear message when a server caching layer or hosting restriction prevents it, instead of appearing to activate and then reverting on the next page load.
- The License screen now shows the first characters of your license key behind the mask, so you can recognise which key is active. Previously the whole key was masked.
Changed
- GTM Kit Premium now requires GTM Kit core 2.16.0 or later. The redesigned License screen and the new Scheduled Actions link rely on capabilities added in core 2.16.0.
- License details on the License screen (key, status and renewal date) are now added through GTM Kit's
gtmkit_settingsfilter instead of rewriting the enqueued settings script, and the unused admin pages that the redesigned settings interface replaced have been removed.
First public release
Find out about what's new in our release post.
Added
- Initial release. GTM Kit Premium has been used in production for a year and is considered stable. Requires GTM Kit core 2.15.0 or later.