Skip to content
Snippets Groups Projects
solotandem's avatar
Issue #3301684 by jessey With array_reduce() callback pass parameter by value...
Jim Berry authored
Issue #3301684 by jessey With array_reduce() callback pass parameter by value not reference. [php 8]
dec8d1cb
History

CONTENTS OF THIS FILE

  • Introduction
  • Requirements
  • Installation
  • Configuration
  • Troubleshooting
  • Maintainers

INTRODUCTION

This project integrates the site with the Google Tag Manager (GTM) application. GTM allows you to deploy analytics and measurement tag configurations from a web-based user interface (hosted by Google) instead of requiring administrative access to your website.

REQUIREMENTS

Sign up for GTM and obtain a 'container ID' for your website. Enter the
'container ID' on the settings form for this module (see Configuration).

INSTALLATION

Place the project files in an appropriate modules directory and enable the module as you would any other contributed module. For further information see:

CONFIGURATION

Users in roles with the 'Administer Google Tag Manager' permission will be able to manage the module settings and containers for the site. Configure permissions as usual at:

  • Administration » People » Permissions
  • admin/people/permissions

From the module settings page, configure the snippet URI and the default conditions on which the tags are inserted on a page response. Conditions exist for: page paths, user roles, and response statuses. See:

  • Administration » Configuration » System » Google Tag Manager
  • admin/config/system/google-tag/settings

From the container management page, manage the containers to be inserted on a page response. Add one or more containers with separate container IDs and the snippet insertion conditions. See:

  • Administration » Configuration » System » Google Tag Manager
  • admin/config/system/google-tag

For development purposes, create a GTM environment for your website and enter the 'environment ID' on the 'Advanced' tab of the settings form.

TROUBLESHOOTING

If the JavaScript snippets are not present in the HTML output, try the following steps to debug the situation:

  • Confirm the snippet files exist at the snippet base URI shown on the module settings page. By default this is public://google_tag/ which on most sites equates to sites/default/files/google_tag/.

    If missing or stale, then invoke a cache rebuild (see note below) or visit the container management page, edit each container, and submit the form to recreate the snippet files for the container.

    The need to do this may arise if the project is deployed from one environment to another (e.g. development to production) but the snippet files are not deployed.

    NOTE: Snippet files will only be recreated on cache rebuild if the 'Recreate snippets on cache rebuild' setting is enabled (this is the default). A cache rebuild can be triggered from the command line using drush or from the site performance administration page.

  • Enable debug output on the module settings page to display the result of each snippet insertion condition in the message area. Modify the insertion conditions as needed.

If you retain the default module setting to 'Include the snippet as a file', then the Google Search Console will report that the site is NOT setup to use the Tag Manager. This report is a FALSE POSITIVE as the bot only checks for inline code on the script tag. It does not load the snippet file and inspect the code therein. Instead of relying on this bot, check whether the GTM snippets are loaded as a result of the snippet added by this project.

If you run Drush as other than the web user, then do not enable the 'Recreate snippets on cache rebuild' module setting. Otherwise snippet files will be created and owned by the user running Drush. On the next cache rebuild the web user may not be able to delete the files (resulting in a fatal error).

MAINTAINERS

Current maintainer: