Groundworx GTM – Simple Insert for Google Tag Manager

Plugin Banner

Groundworx GTM – Simple Insert for Google Tag Manager

by Groundworx

Download
Description

Groundworx GTM is a lightweight plugin that cleanly adds Google Tag Manager (GTM) to your WordPress site.

It uses core WordPress hooks like wp_head and wp_body_open, ensuring compatibility and avoiding messy theme edits.

Features:
* Injects GTM scripts in the proper locations (<head> and after <body>)
* Option to disable tracking for logged-in users, by user role
* No ads, no tracking — just works

License

GPLv2 or later

  1. Upload the plugin folder to /wp-content/plugins/ or install via Plugins > Add New.
  2. Activate the plugin.
  3. Go to Settings > Groundworx GTM and enter your GTM ID.
  4. Optionally choose user roles to exclude from GTM injection.

External services

This plugin relies on the following third-party service:

Google Tag Manager (GTM)
Purpose: Loads your GTM container so you can manage analytics/marketing tags from GTM.
When it runs: Only when a valid GTM Container ID (e.g., GTM-XXXXXXX) is saved in the plugin settings and output is enabled. If no ID is set or output is disabled, nothing is loaded.
What is sent and where: The plugin outputs the standard GTM bootstrap script and a <noscript> iframe. The visitor’s browser then requests:
https://www.googletagmanager.com/gtm.js
https://www.googletagmanager.com/ns.html
These requests send standard browser metadata (IP, user agent, referrer, page URL) to Google to serve the files.
Scope: Front-end pages only. The plugin does not transmit admin data.
Policies:
Google Tag Manager Terms of Service
Google Privacy Policy
Data stored by this plugin: None. The plugin does not log, transmit, or store visitor data in WordPress.

  1. Settings panel with GTM ID and role exclusions.

    Settings panel with GTM ID and role exclusions.

Will this track logged-in users?

No, not if you exclude their role from the settings panel.

Where is the GTM code inserted?

  • The <script> is injected in the <head> using wp_head.
  • The <noscript> fallback is injected after <body> using wp_body_open.

What if my theme doesn’t use `wp_body_open`?

You’ll see an admin notice prompting you to update your theme.
If your theme doesn’t support wp_body_open, you can manually add it by inserting <?php wp_body_open(); ?> immediately after the opening <body> tag in your theme’s header.php file.

Do I need to edit my theme?

Usually no — most modern themes include wp_head and wp_body_open. But if your theme is older or custom, you might need to add wp_body_open() manually after <body>.

1.1.0

  • Rebuilt settings page with React using WordPress components
  • Moved settings under shared Groundworx admin menu
  • Added REST API for settings (replaces Settings API)
  • Added settings link to plugin action links
  • Added keyboard shortcut (Ctrl/Cmd+S) to save settings
  • Lowered PHP requirement to 7.4

1.0.0

  • Initial release: inject GTM via wp_head and wp_body_open
Back to top