{"id":161832,"date":"2022-09-06T17:44:51","date_gmt":"2022-09-06T17:44:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gtm-kit\/"},"modified":"2026-09-21T20:35:12","modified_gmt":"2026-09-21T20:35:12","slug":"gtm-kit","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/gtm-kit\/","author":5457521,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.20.0","stable_tag":"2.20.0","tested":"7.1.1","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"GTM Kit","header_author":"GTM Kit","header_description":"Google Tag Manager implementation focusing on flexibility and pagespeed.","assets_banners_color":"adadad","last_updated":"2026-09-21 20:35:12","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/tlamedia\/gtm-kit","header_plugin_uri":"https:\/\/gtmkit.com\/","header_author_uri":"https:\/\/gtmkit.com\/","rating":4.8,"author_block_rating":0,"active_installs":30000,"downloads":756047,"num_ratings":20,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"tlamedia","date":"2022-09-06 17:44:25","revision":2780851},"1.1":{"tag":"1.1","author":"tlamedia","date":"2022-09-11 20:00:37","revision":2783020},"1.1.1":{"tag":"1.1.1","author":"tlamedia","date":"2022-09-11 20:42:44","revision":2783027},"1.10":{"tag":"1.10","author":"tlamedia","date":"2023-06-12 08:37:22","revision":2924649},"1.11":{"tag":"1.11","author":"tlamedia","date":"2023-07-04 11:57:13","revision":2933932},"1.11.1":{"tag":"1.11.1","author":"tlamedia","date":"2023-07-07 12:14:06","revision":2935575},"1.12":{"tag":"1.12","author":"tlamedia","date":"2023-08-07 06:26:44","revision":2948361},"1.12.1":{"tag":"1.12.1","author":"tlamedia","date":"2023-08-07 10:02:37","revision":2948476},"1.12.2":{"tag":"1.12.2","author":"tlamedia","date":"2023-08-15 09:58:29","revision":2953731},"1.13":{"tag":"1.13","author":"tlamedia","date":"2023-08-30 05:55:24","revision":2960370},"1.13.1":{"tag":"1.13.1","author":"tlamedia","date":"2023-08-31 19:41:29","revision":2961341},"1.13.2":{"tag":"1.13.2","author":"tlamedia","date":"2023-09-25 07:50:06","revision":2971120},"1.14":{"tag":"1.14","author":"tlamedia","date":"2023-10-03 09:05:00","revision":2974164},"1.14.1":{"tag":"1.14.1","author":"tlamedia","date":"2023-10-06 09:35:09","revision":2975488},"1.14.2":{"tag":"1.14.2","author":"tlamedia","date":"2023-10-11 08:02:06","revision":2977363},"1.15":{"tag":"1.15","author":"tlamedia","date":"2023-10-24 05:55:54","revision":2982843},"1.16":{"tag":"1.16","author":"tlamedia","date":"2023-11-15 06:59:42","revision":2996198},"1.16.1":{"tag":"1.16.1","author":"tlamedia","date":"2023-11-15 07:44:12","revision":2996217},"1.16.2":{"tag":"1.16.2","author":"tlamedia","date":"2023-11-15 08:10:46","revision":2996229},"1.17":{"tag":"1.17","author":"tlamedia","date":"2023-12-04 06:56:21","revision":3004949},"1.17.1":{"tag":"1.17.1","author":"tlamedia","date":"2023-12-05 12:32:33","revision":3005657},"1.17.2":{"tag":"1.17.2","author":"tlamedia","date":"2023-12-13 06:52:15","revision":3009201},"1.18":{"tag":"1.18","author":"tlamedia","date":"2024-01-02 07:36:43","revision":3016305},"1.18.1":{"tag":"1.18.1","author":"tlamedia","date":"2024-01-08 09:30:25","revision":3018660},"1.19":{"tag":"1.19","author":"tlamedia","date":"2024-02-07 06:59:42","revision":3032523},"1.19.1":{"tag":"1.19.1","author":"tlamedia","date":"2024-03-05 07:45:27","revision":3045420},"1.2":{"tag":"1.2","author":"tlamedia","date":"2022-09-13 11:38:35","revision":2783954},"1.2.1":{"tag":"1.2.1","author":"tlamedia","date":"2022-09-14 21:32:38","revision":2784887},"1.20":{"tag":"1.20","author":"tlamedia","date":"2024-03-20 07:24:29","revision":3055017},"1.21":{"tag":"1.21","author":"tlamedia","date":"2024-04-15 05:58:17","revision":3070452},"1.22":{"tag":"1.22","author":"tlamedia","date":"2024-05-08 05:46:19","revision":3082967},"1.22.1":{"tag":"1.22.1","author":"tlamedia","date":"2024-05-13 08:34:16","revision":3085523},"1.22.3":{"tag":"1.22.3","author":"tlamedia","date":"2024-05-22 06:19:59","revision":3090572},"1.22.4":{"tag":"1.22.4","author":"tlamedia","date":"2024-05-30 06:12:23","revision":3094947},"1.23":{"tag":"1.23","author":"tlamedia","date":"2024-07-04 06:46:54","revision":3112163},"1.23.1":{"tag":"1.23.1","author":"tlamedia","date":"2024-07-15 06:57:16","revision":3118062},"1.23.2":{"tag":"1.23.2","author":"tlamedia","date":"2024-08-13 06:03:29","revision":3134629},"1.23.3":{"tag":"1.23.3","author":"tlamedia","date":"2024-08-22 06:20:50","revision":3139454},"1.3":{"tag":"1.3","author":"tlamedia","date":"2022-09-30 20:24:01","revision":2792677},"1.3.1":{"tag":"1.3.1","author":"tlamedia","date":"2022-10-06 18:08:38","revision":2795269},"1.3.2":{"tag":"1.3.2","author":"tlamedia","date":"2022-10-29 17:56:55","revision":2807074},"1.3.3":{"tag":"1.3.3","author":"tlamedia","date":"2022-10-29 18:24:37","revision":2807077},"1.4":{"tag":"1.4","author":"tlamedia","date":"2022-11-03 14:06:11","revision":2811141},"1.4.1":{"tag":"1.4.1","author":"tlamedia","date":"2022-11-08 15:33:16","revision":2814428},"1.4.1.1":{"tag":"1.4.1.1","author":"tlamedia","date":"2022-11-08 15:44:56","revision":2814439},"1.4.2":{"tag":"1.4.2","author":"tlamedia","date":"2022-11-08 15:55:08","revision":2814462},"1.4.3":{"tag":"1.4.3","author":"tlamedia","date":"2022-11-08 16:00:46","revision":2814487},"1.4.4":{"tag":"1.4.4","author":"tlamedia","date":"2022-11-20 20:23:09","revision":2821194},"1.4.5":{"tag":"1.4.5","author":"tlamedia","date":"2022-11-26 11:11:50","revision":2824523},"1.5":{"tag":"1.5","author":"tlamedia","date":"2022-12-12 07:44:52","revision":2832170},"1.5.1":{"tag":"1.5.1","author":"tlamedia","date":"2022-12-20 15:43:22","revision":2836741},"1.5.2":{"tag":"1.5.2","author":"tlamedia","date":"2023-01-03 12:08:30","revision":2842787},"1.5.3":{"tag":"1.5.3","author":"tlamedia","date":"2023-01-03 14:37:06","revision":2842885},"1.6":{"tag":"1.6","author":"tlamedia","date":"2023-01-24 15:59:50","revision":2853698},"1.6.1":{"tag":"1.6.1","author":"tlamedia","date":"2023-02-23 14:10:30","revision":2870045},"1.6.2":{"tag":"1.6.2","author":"tlamedia","date":"2023-02-27 15:38:57","revision":2871783},"1.7":{"tag":"1.7","author":"tlamedia","date":"2023-03-20 12:30:09","revision":2883518},"1.7.1":{"tag":"1.7.1","author":"tlamedia","date":"2023-03-23 13:20:10","revision":2885676},"1.8":{"tag":"1.8","author":"tlamedia","date":"2023-04-03 06:02:36","revision":2892458},"1.9":{"tag":"1.9","author":"tlamedia","date":"2023-04-19 11:27:20","revision":2901163},"2.0":{"tag":"2.0","author":"tlamedia","date":"2024-09-11 06:31:31","revision":3149785},"2.0.1":{"tag":"2.0.1","author":"tlamedia","date":"2024-09-23 06:13:06","revision":3156080},"2.1.0":{"tag":"2.1.0","author":"tlamedia","date":"2024-10-01 06:53:45","revision":3160290},"2.10.0":{"tag":"2.10.0","author":"tlamedia","date":"2026-05-06 09:46:02","revision":3524142},"2.11.0":{"tag":"2.11.0","author":"tlamedia","date":"2026-05-11 06:13:13","revision":3528271},"2.12.0":{"tag":"2.12.0","author":"tlamedia","date":"2026-05-19 06:58:29","revision":3536741},"2.13.0":{"tag":"2.13.0","author":"tlamedia","date":"2026-05-26 07:08:39","revision":3548642},"2.13.1":{"tag":"2.13.1","author":"tlamedia","date":"2026-05-26 08:46:11","revision":3548779},"2.14.0":{"tag":"2.14.0","author":"tlamedia","date":"2026-06-02 06:16:47","revision":3557507},"2.14.1":{"tag":"2.14.1","author":"tlamedia","date":"2026-06-03 06:28:01","revision":3558858},"2.15.0":{"tag":"2.15.0","author":"tlamedia","date":"2026-06-12 06:22:08","revision":3569639},"2.16.0":{"tag":"2.16.0","author":"tlamedia","date":"2026-06-23 06:25:45","revision":3582690},"2.16.1":{"tag":"2.16.1","author":"tlamedia","date":"2026-06-23 10:21:03","revision":3583045},"2.16.3":{"tag":"2.16.3","author":"tlamedia","date":"2026-06-23 14:10:06","revision":3583390},"2.16.4":{"tag":"2.16.4","author":"tlamedia","date":"2026-06-29 09:09:37","revision":3589727},"2.17.0":{"tag":"2.17.0","author":"tlamedia","date":"2026-08-05 08:26:53","revision":3635038},"2.18.0":{"tag":"2.18.0","author":"tlamedia","date":"2026-08-24 06:44:58","revision":3662741},"2.18.1":{"tag":"2.18.1","author":"tlamedia","date":"2026-08-24 14:34:08","revision":3663661},"2.19.0":{"tag":"2.19.0","author":"tlamedia","date":"2026-09-14 08:38:53","revision":3694796},"2.2.0":{"tag":"2.2.0","author":"tlamedia","date":"2024-10-16 07:46:45","revision":3169885},"2.2.1":{"tag":"2.2.1","author":"torbenlundsgaard","date":"2024-10-29 08:01:09","revision":3177737},"2.2.2":{"tag":"2.2.2","author":"tlamedia","date":"2024-12-03 07:31:13","revision":3201405},"2.20.0":{"tag":"2.20.0","author":"tlamedia","date":"2026-09-21 20:35:12","revision":3706284},"2.3.0":{"tag":"2.3.0","author":"tlamedia","date":"2025-01-28 07:38:20","revision":3230253},"2.3.1":{"tag":"2.3.1","author":"tlamedia","date":"2025-03-12 07:40:26","revision":3254521},"2.3.2":{"tag":"2.3.2","author":"tlamedia","date":"2025-04-02 06:36:12","revision":3265445},"2.4.0":{"tag":"2.4.0","author":"torbenlundsgaard","date":"2025-04-03 09:12:49","revision":3266163},"2.4.1":{"tag":"2.4.1","author":"tlamedia","date":"2025-04-03 10:24:34","revision":3266236},"2.4.2":{"tag":"2.4.2","author":"tlamedia","date":"2025-04-09 07:32:00","revision":3269396},"2.4.3":{"tag":"2.4.3","author":"tlamedia","date":"2025-04-15 06:16:28","revision":3272968},"2.4.4":{"tag":"2.4.4","author":"tlamedia","date":"2025-04-30 06:29:24","revision":3284597},"2.5.0":{"tag":"2.5.0","author":"tlamedia","date":"2025-08-05 06:35:42","revision":3339414},"2.5.1":{"tag":"2.5.1","author":"tlamedia","date":"2025-08-22 06:36:25","revision":3348467},"2.6.0":{"tag":"2.6.0","author":"tlamedia","date":"2025-09-24 06:47:19","revision":3366939},"2.7.0":{"tag":"2.7.0","author":"tlamedia","date":"2026-01-06 07:33:40","revision":3433299},"2.8.0":{"tag":"2.8.0","author":"tlamedia","date":"2026-01-29 07:17:33","revision":3449311},"2.8.1":{"tag":"2.8.1","author":"tlamedia","date":"2026-01-30 06:43:59","revision":3450172},"2.8.2":{"tag":"2.8.2","author":"tlamedia","date":"2026-02-17 08:28:50","revision":3463213},"2.8.3":{"tag":"2.8.3","author":"tlamedia","date":"2026-03-18 08:27:55","revision":3485386},"2.8.4":{"tag":"2.8.4","author":"tlamedia","date":"2026-04-23 06:43:49","revision":3513438},"2.9.0":{"tag":"2.9.0","author":"tlamedia","date":"2026-04-29 06:35:32","revision":3518002}},"upgrade_notice":[],"ratings":{"1":1,"2":0,"3":0,"4":0,"5":19},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":2783020,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2820073,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2820073,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3706285,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/plugins.php\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"}},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"gtm-kit\"}},{\"step\":\"installTheme\",\"themeZipFile\":{\"resource\":\"wordpress.org\\\/themes\",\"slug\":\"storefront\"}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.0","1.1","1.1.1","1.10","1.11","1.11.1","1.12","1.12.1","1.12.2","1.13","1.13.1","1.13.2","1.14","1.14.1","1.14.2","1.15","1.16","1.16.1","1.16.2","1.17","1.17.1","1.17.2","1.18","1.18.1","1.19","1.19.1","1.2","1.2.1","1.20","1.21","1.22","1.22.1","1.22.3","1.22.4","1.23","1.23.1","1.23.2","1.23.3","1.3","1.3.1","1.3.2","1.3.3","1.4","1.4.1","1.4.1.1","1.4.2","1.4.3","1.4.4","1.4.5","1.5","1.5.1","1.5.2","1.5.3","1.6","1.6.1","1.6.2","1.7","1.7.1","1.8","1.9","2.0","2.0.1","2.1.0","2.10.0","2.11.0","2.12.0","2.13.0","2.13.1","2.14.0","2.14.1","2.15.0","2.16.0","2.16.1","2.16.3","2.16.4","2.17.0","2.18.0","2.18.1","2.19.0","2.2.0","2.2.1","2.2.2","2.20.0","2.3.0","2.3.1","2.3.2","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.5.0","2.5.1","2.6.0","2.7.0","2.8.0","2.8.1","2.8.2","2.8.3","2.8.4","2.9.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3637860,"resolution":"1","location":"assets","locale":"","width":3498,"height":1900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3637860,"resolution":"2","location":"assets","locale":"","width":3498,"height":6060},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3637860,"resolution":"3","location":"assets","locale":"","width":3498,"height":1620},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3637860,"resolution":"4","location":"assets","locale":"","width":3498,"height":3860},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3637860,"resolution":"5","location":"assets","locale":"","width":3498,"height":7720},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3662741,"resolution":"6","location":"assets","locale":"","width":3498,"height":4920},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3662741,"resolution":"7","location":"assets","locale":"","width":3498,"height":2060}},"screenshots":{"1":"GTM Kit Dashboard","2":"Setup: container code, server-side GTM, and page exclusions","3":"Events &amp; data layer: post data and GA4 events","4":"Consent &amp; privacy: Google Consent Mode and CMP script attributes","5":"Commerce: WooCommerce and Easy Digital Downloads tracking","6":"Tools: import settings from another Google Tag Manager plugin","7":"Site Health: GTM Kit's checks for the container, consent, settings and tag serving"}},"plugin_section":[],"plugin_tags":[232,193472,23294,23295,286],"plugin_category":[36,45],"plugin_contributors":[224231,87836,191648],"plugin_business_model":[],"class_list":["post-161832","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-ga4","plugin_tags-google-tag-manager","plugin_tags-gtm","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_contributors-gtmkit","plugin_contributors-tlamedia","plugin_contributors-torbenlundsgaard","plugin_committers-gtmkit","plugin_committers-tlamedia","plugin_committers-torbenlundsgaard"],"banners":{"banner":"https:\/\/ps.w.org\/gtm-kit\/assets\/banner-772x250.png?rev=2820073","banner_2x":"https:\/\/ps.w.org\/gtm-kit\/assets\/banner-1544x500.png?rev=2820073","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/gtm-kit\/assets\/icon.svg?rev=2783020","icon":"https:\/\/ps.w.org\/gtm-kit\/assets\/icon.svg?rev=2783020","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gtm-kit\/assets\/screenshot-1.png?rev=3637860","caption":"GTM Kit Dashboard"},{"src":"https:\/\/ps.w.org\/gtm-kit\/assets\/screenshot-2.png?rev=3637860","caption":"Setup: container code, server-side GTM, and page exclusions"},{"src":"https:\/\/ps.w.org\/gtm-kit\/assets\/screenshot-3.png?rev=3637860","caption":"Events &amp; data layer: post data and GA4 events"},{"src":"https:\/\/ps.w.org\/gtm-kit\/assets\/screenshot-4.png?rev=3637860","caption":"Consent &amp; privacy: Google Consent Mode and CMP script attributes"},{"src":"https:\/\/ps.w.org\/gtm-kit\/assets\/screenshot-5.png?rev=3637860","caption":"Commerce: WooCommerce and Easy Digital Downloads tracking"},{"src":"https:\/\/ps.w.org\/gtm-kit\/assets\/screenshot-6.png?rev=3662741","caption":"Tools: import settings from another Google Tag Manager plugin"},{"src":"https:\/\/ps.w.org\/gtm-kit\/assets\/screenshot-7.png?rev=3662741","caption":"Site Health: GTM Kit's checks for the container, consent, settings and tag serving"}],"raw_content":"<!--section=description-->\n<p>GTM Kit puts the Google Tag Manager container code on your website so that you don't need to touch any code. It also pushes data from WooCommerce, Easy Digital Downloads (EDD) and Contact Form 7 to the data layer for use with for Google Analytics 4, Facebook and other GTM tags.<\/p>\n\n<p>The goal of GTM Kit is to provide a flexible tool for generating the data layer for Google Tag Manager. It is easy to use and doesn't require any coding, but it allows developers to customize the plugin as needed.<\/p>\n\n<p>The settings are organised around what you are trying to do (Setup, Events &amp; data layer, Commerce, Consent &amp; privacy, and Tools), so related options live together and the setting you need is quick to find.<\/p>\n\n<h3>Know when your tracking breaks<\/h3>\n\n<p>Tracking fails quietly. A caching plugin strips the container out of the page, a second plugin loads it a second time, a staging copy reports into your live property, and nothing on the settings screen says so.<\/p>\n\n<p>GTM Kit checks one of your own pages once a day, the way a visitor receives it, and tells you when nothing on your site is loading your container, or when your pages load tracking twice. Where it recognises the plugin or tool adding the second copy, it names it.<\/p>\n\n<p>WordPress's own Site Health screen reports on GTM Kit directly: whether your container is set up and reaching your pages, whether consent is configured, whether GTM Kit's settings can be saved at all, and, if you serve the Google tag from your own domain, whether that is still working. A GTM Kit section on the Info tab lists your whole configuration on one screen and copies it into a support request with one click.<\/p>\n\n<p>On sites WordPress reports as staging, development or local, GTM Kit leaves the container out, so test traffic never reaches your live analytics. The data layer is still built there, and a setting loads the container anyway when you are measuring a test site on purpose.<\/p>\n\n<h3>eCommerce events tracked with Google Analytics 4<\/h3>\n\n<p>The following GA4 events are automatically included in the dataLayer:<\/p>\n\n<h3>WooCommerce<\/h3>\n\n<ul>\n<li>view_item_list<\/li>\n<li>select_item<\/li>\n<li>view_item<\/li>\n<li>add_to_wishlist <strong>[Premium]<\/strong><\/li>\n<li>add_to_cart<\/li>\n<li>view_cart<\/li>\n<li>remove_from_cart<\/li>\n<li>begin_checkout<\/li>\n<li>add_shipping_info<\/li>\n<li>add_payment_info<\/li>\n<li>purchase<\/li>\n<li>refund <strong>[Premium]<\/strong><\/li>\n<li>order_paid <strong>[Premium]<\/strong><\/li>\n<li>order_processing <strong>[Premium]<\/strong><\/li>\n<li>order_completed <strong>[Premium]<\/strong><\/li>\n<li>order_refunded <strong>[Premium]<\/strong><\/li>\n<li>subscription_started <strong>[Premium]<\/strong><\/li>\n<\/ul>\n\n<p>Unlock all features with <a href=\"https:\/\/gtmkit.com\/\">GTM Kit Premium<\/a>.<\/p>\n\n<h3>Easy Digital Downloads<\/h3>\n\n<ul>\n<li>view_item<\/li>\n<li>add_to_cart<\/li>\n<li>begin_checkout<\/li>\n<li>purchase<\/li>\n<\/ul>\n\n<h3>Serve the Google tag from your own domain<\/h3>\n\n<p>Ad blockers and browser tracking restrictions treat a script loaded from Google differently from one loaded by your own site. GTM Kit can serve the Google tag from your own domain instead, so the tag loads where a request to Google's domain would have been blocked. The measurement the tag sends still goes to Google; moving that to your domain as well needs Google's tag gateway through a CDN or host that supports it.<\/p>\n\n<p>Before you can switch it on, GTM Kit checks that your server can reach Google and that the address it would serve the tag from is actually reachable, and it repeats both checks once a day afterwards. If either stops working, GTM Kit goes back to loading the container the standard way and tells you, so your tracking never stops without warning.<\/p>\n\n<p>It is off by default, and it is an alternative to pointing GTM Kit at your own server-side container domain rather than something you run alongside one.<\/p>\n\n<h3>Flexible container implementation<\/h3>\n\n<p>Depending on how you use Google Tag Manager you can delay the loading of the container script until the browser is idle. This may be relevant to you be if are focusing on pagespeed.<\/p>\n\n<p>You may enter a custom domain name if you are using a custom server side GTM (sGTM) container for tracking. It's also possible to specify a custom loader. GTM Kit has full support for Stape server GTM hosting.<\/p>\n\n<p>You can also exclude specific pages from GTM entirely. Add URL patterns on the Container settings page and GTM Kit holds back the container, the noscript fallback, and its data layer scripts on matching pages. Useful for third-party checkout iframes, partner-hosted subpages, and in-app webview routes that run their own tracking. Glob patterns are supported by default, with optional regex for advanced matching.<\/p>\n\n<h3>Moving from another Google Tag Manager plugin<\/h3>\n\n<p>GTM Kit imports settings from Google Tag Manager for WordPress, Google Tag Manager for WooCommerce, Metronet Tag Manager and other GTM plugins, at any time, from the Tools page. Your container ID, data layer variables, Consent Mode defaults, excluded user roles and container environment come across in one step.<\/p>\n\n<p>Before anything is written you see exactly which of your settings will be replaced, and only settings the other plugin actually configured are touched.<\/p>\n\n<h3>Post data<\/h3>\n\n<p>You may specify which post data elements you wish to include in the dataLayer for use in Google Tag Manager.\n- Post type: include the type of the current post or archive page.\n- Page type: include a defined page type. I.e. post, page, product, category, cart, checkout etc.\n- Categories: include the categories of the current post or archive page.\n- Tags: include the tags of the current post or archive page.\n- Post title: include the post title of the current post.\n- Post ID: include the Post ID of the current post.\n- Post date: include the post date.\n- Post author name: include the post author name.\n- Post author ID: include the post author ID.<\/p>\n\n<h3>External services<\/h3>\n\n<h4>Stape<\/h4>\n\n<p>If your server-side Google Tag Manager container is hosted on Stape, GTM Kit can use the loader Stape issues for it. This is off by default. When you switch on \"Get the loader from Stape\" under Server-side Tagging, GTM Kit asks Stape's API (api.app.stape.io, or api.app.eu.stape.io for containers in Stape's EU region) for the loader.<\/p>\n\n<p>The request is sent only when you save a change to the settings the loader depends on, or press \"Refresh loader\". It is never sent on a schedule or when a visitor views a page. It contains your sGTM container identifier, your GTM container ID, your sGTM container domain, your data layer name and, when Cookie Keeper is on, the name of the Cookie Keeper cookie. No visitor data is sent.<\/p>\n\n<p>Stape terms of service: https:\/\/stape.io\/terms-conditions\nStape privacy policy: https:\/\/stape.io\/privacy-notice<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install GTM Kit either via the WordPress.org plugin repository or by uploading the files to your server.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Enter your GTM Container ID and click 'Save changes'.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20a%20gtm%20container%20id%3F\"><h3>Where do I get a GTM Container ID?<\/h3><\/dt>\n<dd><p>Create an account and container in <a href=\"https:\/\/tagmanager.google.com\/\">Google Tag Manager<\/a> and get it there.<\/p><\/dd>\n<dt id=\"is%20google%20analytics%204%20%28ga4%29%20supported%3F\"><h3>Is Google Analytics 4 (GA4) supported?<\/h3><\/dt>\n<dd><p>Yes! We strive to support the full feature set of Google Analytics 4 and will implement any future features of Analytics 4.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20cache%20friendly%3F\"><h3>Is this plugin cache friendly?<\/h3><\/dt>\n<dd><p>Yes! Pagespeed is one of our main focus points, and we strive to make the plugin compatible with full page caching.<\/p><\/dd>\n<dt id=\"how%20can%20i%20report%20security%20bugs%3F\"><h3>How can I report security bugs?<\/h3><\/dt>\n<dd><p>You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team help validate, triage and handle any security vulnerabilities. <a href=\"https:\/\/patchstack.com\/database\/vdp\/gtm-kit\">Report a security vulnerability.<\/a><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.20.0<\/h4>\n\n<p>Release date: 2026-09-22<\/p>\n\n<p>Find out about what's new in our <a href=\"https:\/\/gtmkit.com\/changelog\/gtm-kit-2-20\/\">our release post<\/a>.<\/p>\n\n<h4>New:<\/h4>\n\n<ul>\n<li>If your server-side container is hosted on Stape, GTM Kit can now use the loader Stape issues for it, which ad blockers find harder to recognise. Switch it on under Server-side Tagging. GTM Kit asks Stape for the loader only when you save or refresh it, and you can paste the code from Stape instead.<\/li>\n<\/ul>\n\n<h4>Bugfixes:<\/h4>\n\n<ul>\n<li>With Cookie Keeper enabled, Safari visitors now load your Stape custom loader when its identifier is longer than eight characters, as every identifier Stape issues today is. Safari previously asked Stape for a loader address it rejects, so those visitors were not tracked.<\/li>\n<li>On sites with a persistent object cache such as Redis, GTM Kit no longer re-runs its update routine on every admin page load when the cache still holds the previous version number. The update routine also no longer logs a notice from Action Scheduler on its first run.<\/li>\n<\/ul>\n\n<h4>Other:<\/h4>\n\n<ul>\n<li>The description of serving the Google tag from your own domain now says what the setting does and does not do: it changes where the tag loads from, while the measurement it sends still goes to Google unless Google's tag gateway is provided by your CDN or host.<\/li>\n<\/ul>\n\n<h4>2.19.0<\/h4>\n\n<p>Release date: 2026-09-14<\/p>\n\n<p>Find out about what's new in our <a href=\"https:\/\/gtmkit.com\/changelog\/gtm-kit-2-19\/\">our release post<\/a>.<\/p>\n\n<h4>New:<\/h4>\n\n<ul>\n<li>When Google for WooCommerce adds a Google tag beside your container, GTM Kit now names it as the source instead of saying it could not tell.<\/li>\n<li>Site Health now checks that GTM Kit's settings can be saved, and shows the error it got back when they cannot.<\/li>\n<li>When sending your system data from the Support screen cannot get through, the screen now says so instead of claiming your ticket was not found. With GTM Kit Premium you can then copy the data or download it to email instead.<\/li>\n<li>You can now serve the Google tag from your own domain, so ad blockers and browser tracking restrictions interfere less with loading it. If it stops working, GTM Kit falls back to the standard loader and tells you. It is off by default, and an alternative to your own sGTM container domain. (Corrected after publication: this entry originally said restrictions would interfere less with your measurement. The setting changes where the tag loads from. The measurement the tag sends still goes to Google unless your CDN or host provides Google's tag gateway, which this setting cannot switch on.)<\/li>\n<li>GTM Kit now points out setups that leave data unmeasured, such as a WooCommerce store with its ecommerce events switched off. At most one such notice appears at a time, and dismissing it keeps it away for 90 days.<\/li>\n<\/ul>\n\n<h4>Bugfixes:<\/h4>\n\n<ul>\n<li>A Google tag loading beside your container is no longer reported as duplicate tracking in the dashboard. It is now a notice, since the tag is only counted twice when it also fires inside your container. Two containers, or the same container loaded twice, are still reported as problems.<\/li>\n<li>When settings will not save, the settings screen now tells you why instead of quietly showing your old values again. It names any rejected setting, and on a site with a persistent object cache it names the cache as the likely cause.<\/li>\n<li>Password managers no longer fill in GTM Kit's settings fields. A filled-in value could previously be saved without you typing it, and came back after you removed it.<\/li>\n<li>Event names such as purchase and add_to_cart can no longer be renamed by translations in the settings screens, where they disagreed with the events GTM Kit actually sends.<\/li>\n<li>The order confirmation page now sends purchase data only to visitors WooCommerce or Easy Digital Downloads would show the order to. Anyone opening a shared or guessed link previously received the order contents, its value and the shopper's details. The buyer's own visit still reports the purchase.<\/li>\n<\/ul>\n\n<h4>Other:<\/h4>\n\n<ul>\n<li>New <code>gtmkit_active_cmp<\/code> and <code>gtmkit_cmp_display_name<\/code> filters let a site declare a consent platform GTM Kit cannot detect, such as one loaded by the theme or a code snippet, so Site Health stops reporting consent as unconfigured.<\/li>\n<li>The customer details sent with a purchase now come from the order itself, so they describe the buyer rather than whoever opened the confirmation page.<\/li>\n<li><code>WooCommerce::include_customer_data()<\/code> now takes the order as its second argument, before the order value, and reads every customer field from it. Code that calls this method directly must pass the order.<\/li>\n<\/ul>\n\n<h4>2.18.1<\/h4>\n\n<p>Release date: 2026-08-24<\/p>\n\n<p>Find out about what's new in our <a href=\"https:\/\/gtmkit.com\/changelog\/gtm-kit-2-18\/\">our release post<\/a>.<\/p>\n\n<h4>Bugfixes:<\/h4>\n\n<ul>\n<li>The daily check of your pages now keeps running on schedule on WooCommerce sites. It could previously stop after one run until an administrator next opened wp-admin.<\/li>\n<li>On a site using a Google Tag Manager environment, the fallback for visitors without JavaScript pointed at your live container instead of the environment. It now matches the rest of your setup.<\/li>\n<\/ul>\n\n<h4>2.18.0<\/h4>\n\n<p>Release date: 2026-08-24<\/p>\n\n<p>Find out about what's new in our <a href=\"https:\/\/gtmkit.com\/changelog\/gtm-kit-2-18\/\">our release post<\/a>.<\/p>\n\n<h4>New:<\/h4>\n\n<ul>\n<li>GTM Kit now checks one of your pages once a day and tells you when nothing on your site is loading your container, or when your pages load tracking twice.<\/li>\n<li>GTM Kit now reports on itself in WordPress's Site Health, with checks for your container, your consent setup, and what the daily page check found.<\/li>\n<li>GTM Kit no longer loads your container on sites WordPress reports as staging, development or local, so test traffic stays out of your analytics.<\/li>\n<li>You can now import settings from another Google Tag Manager plugin at any time from the Tools page, not only during setup.<\/li>\n<\/ul>\n\n<h4>Bugfixes:<\/h4>\n\n<ul>\n<li>The fallback for visitors who have JavaScript turned off is now added to your pages. It was missing on every placement setting, and you can switch it off under \"Container code noscript implementation\".<\/li>\n<li>On a block theme, adding a product to the cart from the product page no longer reloads the page.<\/li>\n<li>Importing settings during the setup wizard works again, reads the right customer data setting, and no longer produces an unusable container ID on sites with more than one container.<\/li>\n<\/ul>\n\n<h4>Other:<\/h4>\n\n<ul>\n<li>The footer fallback now sits at the standard WordPress footer position. If you added a body_footer hook to your theme to make that option work, you no longer need it.<\/li>\n<li>GTM Kit now requires WordPress 6.9 or later, and is tested with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>Earlier versions<\/h4>\n\n<p>For the changelog of earlier versions, please refer to <a href=\"https:\/\/gtmkit.com\/changelog\/\">the changelog on gtmkit.com<\/a>.<\/p>","raw_excerpt":"Google Tag Manager and GA4 integration. Including WooCommerce data for Google Analytics 4 and support for server side GTM.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/161832","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=161832"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tlamedia"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=161832"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=161832"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=161832"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=161832"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=161832"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=161832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}