WordPress plugin intelligence profile

GTM4WP – A Google Tag Manager (GTM) plugin for WordPress

Advanced tag management for WordPress with Google Tag Manager

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version2.0.6
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.3 · PHP 8.0
Directory statusactive
Last directory update12 Oct 202622d ago
Active installations700K+Adoption metric — not a quality score
WordPress.org rating4.5 / 5 from 155 ratings
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records GTM4WP – A Google Tag Manager (GTM) plugin for WordPress version 2.0.6 as active, updated 22d ago and tested up to WordPress 7.1.

Overview

About this plugin

Google Tag Manager (GTM) is Google’s free tool for everyone to manage and deploy analytics and marketing tags as well as other code snippets

using an intuitive web UI. To learn more about this tool, visit the official website.

This plugin places the GTM container code snippets onto your WordPress website so that you do not need to add them manually.

Multiple containers are also supported, and each container can have its own environment parameters, custom domain and custom path.

The plugin complements your GTM setup by pushing page meta data and user information into the so-called data layer.

Google’s official help pages include more details about the data layer.

3 are required to use this plugin.

GTM container code placement

The original GTM container code is divided into two parts:

The first part is a javascript code snippet that is added to the <head> section of every page of the website.

This part is critical to enable all features of GTM, and this plugin helps to place this part

correctly on your site.

The second part is an iframe snippet that acts as a failsafe/fallback should users’ JavaScript be disabled.

Google recommends – for best performance – to place this code snippet directly after the opening <body> tag on each page.

Albeit not ideal, it will work when placed lower in the code. This plugin provides a code placement option for the second code snippet.

2, then this plugin will place this second snippet in the right place.

Users of the Genesis theme, GeneratePress theme, Elementor, Oxygen Builder and Beaver Builder Theme will also have it placed correctly.

To utilize this, set the compatibility mode in the plugin options to off.

All other users can place this second code snippet using custom PHP code (the “Manually coded” option), or select the so-called “Footer” option

to add the code lower on the page (this is not the recommended way, but it will work).

Basic data included

  • post/page titles
  • post/page dates
  • post/page category slugs
  • post/page tag slugs
  • post/page author ID and name
  • post/page ID
  • post types
  • post format
  • post count on the current page + in the current category/tag/taxonomy
  • custom terms associated with any post type
  • logged in status
  • logged in user role
  • logged in user ID (to track cross device behavior in Google Analytics)
  • logged in user email address (both unhashed and SHA256 hashed values to be used with tracking)
  • logged in user creation date
  • site search data
  • site name and id (for WordPress multisite instances)
  • IP address of the visitor (please obtain the visitor’s explicit consent before using this)
  • post author data from PublishPress Authors, including co-authors and guest authors

Content & engagement data

Optional page variables that help with behavior tracking and Google Analytics 4 content grouping:

  • content word count and estimated reading time
  • last modified date and content age in days
  • comment count and comment status
  • page template, featured image presence, page hierarchy and sticky flag
  • primary category, detected from Yoast SEO or Rank Math
  • page language, detected from WPML or Polylang

Browser / OS / Device data

  • browser data (name, version, engine)
  • OS data (name, version)
  • device data (type, manufacturer, model)

deviceData event.

Note that Safari and Firefox expose less detail than Chromium based browsers.

Media player events

Track users’ interactions with any embedded media:

  • YouTube
  • Vimeo
  • Soundcloud
  • HTML5 audio and video
  • Dailymotion
  • Mixcloud
  • Cloudflare Stream
  • Wistia
  • JW Player
  • VideoPress
  • Spotify
  • Twitch

You can choose to fire data layer events when the media player loads, when the media is played, when it is paused or stopped,

and optionally when the user reaches 10, 20, 30, …, 90, 100% of the media duration. Each event also populates Google Tag

Manager’s built-in Video variables (Video Status, Video URL, Video Title, Video Provider, Video Duration, Video Current Time,

Video Percent, Video Visible).

Tracking is supported for embedded media using the built-in oEmbed feature of WordPress, as well as most other media plugins

and copy/pasted embed codes. Players inserted into the page after it has loaded (for example in a popup, a lightbox or via

AJAX) can also be tracked by turning on the optional “Track dynamically inserted players” setting.

Tag restrictions: allowlist & blocklist Tag Manager tags, triggers and variables

To increase website security, you have the option to allowlist or blocklist tags, triggers and variables.

You can prevent specific tags from firing, or prevent the use of certain variable types, regardless of your GTM setup.

If the Google account associated with your GTM account is compromised, an attacker could easily

execute malware on your website without accessing its code on your hosting server. By blocklisting custom HTML tags,

custom JavaScript variables and sandboxed scripts (custom tag and variable templates), you can secure the Tag Manager container.

Integration

Google Tag Manager for WordPress integrates with several popular plugins. More integrations to come!

  • Contact Form 7: fire an event when a form is submitted with any result (mail sent, mail failed, spam detected, invalid input, submission aborted or terms not accepted). Optionally push the Google Analytics 4 recommended form events (form_start, form_submit, generate_lead) as well
  • WooCommerce:
  • Implementation of GA4 E-commerce
  • Support for the Cart, Checkout, Mini-Cart, Product Collection and cross-sell blocks, not only the classic shortcode based pages
  • Enhanced Conversions user data on the purchase event for Google Ads
  • Compatibility with High Performance Order Storage (HPOS)
  • Does not support promotions, since WooCommerce does not have such a feature (yet)
  • Does not support refunds
  • CheckoutWC: optional support for its multi step checkout template
  • PublishPress Authors: co-author and guest author data in the page variables
  • AMP: load your AMP container on the AMP version of your pages
  • Google Consent Mode v2: fire the “default” command with specific consent flags to integrate with non-certified Consent Management Platforms (CMPs) and plugins
  • Cookiebot: use automatic cookie blocking mode if needed
  • Axeptio: load the Axeptio SDK and push every consent change into the data layer
  • CookieYes: push a data layer event whenever the visitor’s consent changes

Server side containers

If you are using a server side container,

js from there. Both can be set per container, so you can mix

server side and standard containers on the same site.

Cache-safe data layer

(experimental, off by default)

On sites using a full page cache (LiteSpeed, WP Rocket, Varnish, Cloudflare APO), the HTML generated for one visitor is served

to everyone else as well. Any visitor specific value written into the data layer would therefore leak to other visitors – the

classic example being a page cached while an editor was logged in, then served to anonymous visitors with that editor’s email

address and role still in the data layer.

When this option is enabled, no visitor or session data is written into cacheable HTML at all. Those values are delivered in the

browser instead, under the same data layer variable names, so your existing Google Tag Manager setup keeps working.

Export & import your settings

You can export all plugin settings into a JSON file and import them on another site, which makes it easy to roll out the same

configuration across several websites. Imported files are treated as untrusted and every value is validated before it is stored.

Exclude specific user roles from being tracked

You can set which user roles need to be excluded from tracking when a user with that role visits the frontend. This will completely disable the container code for that user.

Staging and development sites

The container can be limited to production environments only, so a cloned or staging copy of your site does not send data into

your production Google Tag Manager container. This relies on the WP_ENVIRONMENT_TYPE setting of WordPress.

For developers

0 is a complete object oriented rewrite. Every feature is a module, and third party plugins can register their own

modules through the gtm4wp_register_modules action. All public template functions, filter and action names, wp-config constants

x versions are unchanged, so existing integrations keep working.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • google ads
  • google analytics
  • google tag manager
  • tag manager
  • gtm
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.3 · PHP 8.0
Update activity12 Oct 202622d ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version2.0.52.0.6
WordPress compatibility7.1.27.1.3
Version2.0.42.0.5
Version2.0.32.0.4
Version2.0.22.0.3
WordPress compatibility7.17.1.2
Version2.0.12.0.2
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.