diff options
Diffstat (limited to 'app/views/layouts/_google_tag_manager_head.html.haml')
-rw-r--r-- | app/views/layouts/_google_tag_manager_head.html.haml | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/app/views/layouts/_google_tag_manager_head.html.haml b/app/views/layouts/_google_tag_manager_head.html.haml index 48eb9e40cc4..25af51ca9cb 100644 --- a/app/views/layouts/_google_tag_manager_head.html.haml +++ b/app/views/layouts/_google_tag_manager_head.html.haml @@ -1,8 +1,19 @@ -- if google_tag_manager_enabled? +- return unless google_tag_manager_enabled? + +- if Feature.enabled?(:gtm_nonce, type: :ops) + = javascript_tag nonce: content_security_policy_nonce do + :plain + (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;j.setAttribute('nonce', + '#{content_security_policy_nonce}');f.parentNode.insertBefore(j,f); + })(window,document,'script','dataLayer','#{google_tag_manager_id}'); +- else = javascript_tag do :plain (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','#{extra_config.google_tag_manager_id}'); + })(window,document,'script','dataLayer','#{google_tag_manager_id}'); |