Skip to content

A Hugo module to add Google Analytics to your Hinode site

License

Notifications You must be signed in to change notification settings

gethinode/mod-google-analytics

Repository files navigation

Hinode Module - Google Analytics

A Hugo module to add Google Analytics to your Hinode site

About

Logo

Hinode is a clean blog theme for Hugo, an open-source static site generator. Hinode is available as a template, and a main theme. This repository maintains a Hugo module to enable Google Analytics, part of the Google Marketing Platform, for a Hinode site. Visit the Hinode documentation site for installation instructions.

Contributing

This module uses semantic-release to automate the release of new versions. The package uses husky and commitlint to ensure commit messages adhere to the Conventional Commits specification. You can run npx git-cz from the terminal to help prepare the commit message.

Configuration

Note

By convention, Hinode uses kebab case as naming convention for module names. However, the module name in the site parameters is renamed to GoogleAnalytics to align with Hugo's privacy settings.

Set you G-tag in your site configuration (usually hugo.toml) in the following section:

[services]
  [services.googleAnalytics]
    ID = "G-xxxxxxxxxx"

You can modify the privacy configuration in the following section:

[privacy]
  [privacy.googleAnalytics]
    disable = false
    respectDoNotTrack = false

This module supports the following parameters (see the section params.modules in config.toml):

Setting Default Description
GoogleAnalytics.force false Trigger to force include the analytics scripts, bypassing other settings. Use this setting for debugging and testing only.
GoogleAnalytics.gcm false Trigger to enable Google Consent Mode v2 (advanced mode).
GoogleAnalytics.nonce false Trigger to pass nonces to tag manager, only applicable when GCM is enabled. See Google documentation for more details.

Google Consent Mode v2

This module supports Google Consent Mode v2. Use the following parameters in your site configuration to enable this.

Warning

Make sure you have properly configured Cookie Consent before enabling GCMv2.

[params.modules.GoogleAnalytics]
  integration = "critical"
  state = "immediate"
  category = "necessary"
  gcm = true
  nonce = false

Content Security Policy

The module includes the policies required for Google Tag Manager's Preview Mode and Google Analytics 4. Review Google's Content Security Policy to review the settings required for Google Ads, Google Ads User Data Beacon, Floodlight, and Service Worker.