Google Tag Manager on ProcessWire | OpsBlu Docs

Google Tag Manager on ProcessWire

How to install and configure Google Tag Manager on ProcessWire. Covers installation method, container setup, verification, and ProcessWire-specific...

For general GTM concepts, see Google Tag Manager Overview

Overview

ProcessWire is a PHP content management framework. Add GTM in your site profile's template files.

Prerequisites

Installation

Where to Add GTM Code

Edit site/templates/_head.php (or your layout include file) for the head snippet, and site/templates/_main.php after <body> for the noscript fallback

Plugin / Extension

The Google Tag Manager module is available in ProcessWire's module directory. Install via Modules → Install → Add New and search for GTM.

GTM Head Snippet

Add this in the <head> section:

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');</script>
<!-- End Google Tag Manager -->

GTM Body Snippet

Add this immediately after the opening <body> tag:

<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

Replace GTM-XXXXXXX with your actual Container ID in both snippets.

ProcessWire-Specific Considerations

ProcessWire's template system is pure PHP with full API access. You can conditionally load GTM based on user role: if(!$user->isSuperuser()) to exclude admin tracking.

Template System

ProcessWire uses PHP templates in site/templates/. When editing templates directly, note that the GTM JavaScript snippet (inside <script> tags) will not conflict with the template engine's syntax.

Verification

After installation, verify GTM is working:

  1. GTM Preview Mode — In GTM, click Preview, enter your site URL, and verify the container loads.
  2. Browser Console — Open DevTools (F12) and run console.log(window.google_tag_manager). You should see an object (not undefined).
  3. Network TabFilter for googletagmanager.com and verify gtm.js loads with a 200 response.
  4. Data Layer Check — Run console.log(window.dataLayer) to verify the data layer array exists.

Next Steps