Просмотр исходного кода

Add abbility to use Google Tag Manager for analytics (#514)

* Add ability to embed custom code to <head>

* add myself to CONTRIBUTORS.md

* implement dedicated template for Google Tag Manager

* move google tag manager to bottom of the body tag
Viktar Patotski 4 лет назад
Родитель
Сommit
963dc43f0f

+ 1 - 0
CONTRIBUTORS.md

@@ -94,3 +94,4 @@
 - [Alex Miranda](https://ammiranda.com)
 - [Alphonse Mariya](https://github.com/alfunx)
 - [Ziwei Pan](https://github.com/PanZiwei/)
+- [Viktar Patotski](https://github.com/xp-vit)

+ 4 - 0
exampleSite/config.toml

@@ -87,6 +87,10 @@ disqusShortname = "yourdiscussshortname"
     # For cloud-hosting, use provided URL, e.g. example.matomo.cloud
     serverURL = "analytics.example.com"
 
+# If you want to use Google Tag Manager(https://analytics.google.com/) for analytics, add this section
+[params.googleTagManager]
+    id = "gid"
+
 # If you want to implement a Content-Security-Policy, add this section
 [params.csp]
 	  childsrc = ["'self'"]

+ 4 - 0
layouts/_default/baseof.html

@@ -147,6 +147,10 @@
     {{ if and .Site.Params.matomo .Site.Params.matomo.serverURL }}
       {{- partial "analytics/matomo" . -}}
     {{ end }}
+
+    {{ if and .Site.Params.googleTagManager .Site.Params.googleTagManager.id }}
+      {{- partial "analytics/googletagmanager" . -}}
+    {{ end }}
   </body>
 
 </html>

+ 9 - 0
layouts/partials/analytics/googletagmanager.html

@@ -0,0 +1,9 @@
+<!-- Global site tag (gtag.js) - Google Analytics -->
+<script async src="https://www.googletagmanager.com/gtag/js?id={{ $.Site.Params.googleTagManager.id }}"></script>
+<script>
+  window.dataLayer = window.dataLayer || [];
+  function gtag(){dataLayer.push(arguments);}
+  gtag('js', new Date());
+
+  gtag('config', '{{ $.Site.Params.googleTagManager.id }}');
+</script>