Skip to content

Commit

Permalink
TRG-317: Provide support for Google Tag Manager
Browse files Browse the repository at this point in the history
This is a cherry-pick of 63b2a30 from grahampaulcook/tech-docs-gem which introduces support for Google Tag Manager.

A pull request has been raised to include this change: alphagov#187 however GDS have not yet picked it up, so we're pulling it in here for use at HMRC in the meantime.
  • Loading branch information
grahampaulcook authored and eddgrant committed May 23, 2023
1 parent 1b3ae4c commit d0cd672
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
12 changes: 12 additions & 0 deletions lib/source/layouts/_google_tag_manager_js.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<% if config[:tech_docs][:gtm_id].is_a?(String) && !config[:tech_docs][:gtm_id].empty? %>
<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','<%= config[:tech_docs][:gtm_id] %>');
</script>
<% end %>
4 changes: 4 additions & 0 deletions lib/source/layouts/_google_tag_manager_non_js.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<% if config[:tech_docs][:gtm_id].is_a?(String) && !config[:tech_docs][:gtm_id].empty? %>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=<%= config[:tech_docs][:gtm_id] %>"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<% end %>
2 changes: 2 additions & 0 deletions lib/source/layouts/core.erb
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@
<%= tag :meta, property: property, content: content %>
<% end %>
<%= partial 'layouts/google_tag_manager_js' %>
<%= yield_content :head %>
</head>

<body class="govuk-template__body">
<%= partial 'layouts/google_tag_manager_non_js' %>
<script>document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>

<div class="app-pane">
Expand Down

0 comments on commit d0cd672

Please sign in to comment.