commit 1f1d955b56471e41d5288c57f1ef8333dc297120
parent ffcf26e68cac843f8b257ee72f0282f405ad04a8
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Fri, 25 May 2018 10:53:39 +0200
Add anonymizeIP to GA privacy config
See #4751
Diffstat:
7 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/config/privacy/privacyConfig.go b/config/privacy/privacyConfig.go
@@ -48,6 +48,9 @@ type GoogleAnalytics struct {
// Enabling this will make the GA templates respect the
// "Do Not Track" HTTP header. See https://www.paulfurley.com/google-analytics-dnt/.
RespectDoNotTrack bool
+
+ // Enabling this will make it so the users' IP addresses are anonymized within Google Analytics.
+ AnonymizeIP bool
}
// Instagram holds the privacy configuration settings related to the Instagram shortcode.
diff --git a/config/privacy/privacyConfig_test.go b/config/privacy/privacyConfig_test.go
@@ -34,6 +34,7 @@ disable = true
[privacy.googleAnalytics]
disable = true
respectDoNotTrack = true
+anonymizeIP = true
[privacy.instagram]
disable = true
simple = true
@@ -59,6 +60,7 @@ simple = true
assert.True(pc.Disqus.Disable)
assert.True(pc.GoogleAnalytics.Disable)
assert.True(pc.GoogleAnalytics.RespectDoNotTrack)
+ assert.True(pc.GoogleAnalytics.AnonymizeIP)
assert.True(pc.Instagram.Disable)
assert.True(pc.Instagram.Simple)
assert.True(pc.SpeakerDeck.Disable)
diff --git a/hugolib/embedded_templates_test.go b/hugolib/embedded_templates_test.go
@@ -47,7 +47,10 @@ Disqus:
b.Build(BuildCfg{})
// Gheck GA regular and async
- b.AssertFileContent("public/index.html", "'script','https://www.google-analytics.com/analytics.js','ga');\n\tga('create', 'ga_id', 'auto')", "<script async src='//www.google-analytics.com/analytics.js'>")
+ b.AssertFileContent("public/index.html",
+ "'anonymizeIp', true",
+ "'script','https://www.google-analytics.com/analytics.js','ga');\n\tga('create', 'ga_id', 'auto')",
+ "<script async src='//www.google-analytics.com/analytics.js'>")
// Disqus
b.AssertFileContent("public/index.html", "\"disqus_shortname\" + '.disqus.com/embed.js';")
diff --git a/hugolib/testhelpers_test.go b/hugolib/testhelpers_test.go
@@ -143,6 +143,23 @@ shortname = "disqus_shortname"
[services.googleAnalytics]
id = "ga_id"
+[privacy]
+[privacy.disqus]
+disable = false
+[privacy.googleAnalytics]
+respectDoNotTrack = true
+anonymizeIP = true
+[privacy.instagram]
+simple = true
+[privacy.speakerDeck]
+[privacy.twitter]
+enableDNT = true
+[privacy.vimeo]
+disable = false
+[privacy.youtube]
+disable = false
+privacyEnhanced = true
+
`
func (s *sitesBuilder) WithSimpleConfigFile() *sitesBuilder {
diff --git a/tpl/tplimpl/embedded/templates.autogen.go b/tpl/tplimpl/embedded/templates.autogen.go
@@ -111,6 +111,7 @@ if (!doNotTrack) {
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{ . }}', 'auto');
ga('send', 'pageview');
+ {{ if $pc.AnonymizeIP }}ga('set', 'anonymizeIp', true);{{ end -}}
}
</script>
{{ end }}
@@ -133,6 +134,7 @@ if (!doNotTrack) {
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', '{{ . }}', 'auto');
ga('send', 'pageview');
+ {{ if $pc.AnonymizeIP }}ga('set', 'anonymizeIp', true);{{ end -}}
}
</script>
<script async src='//www.google-analytics.com/analytics.js'></script>
diff --git a/tpl/tplimpl/embedded/templates/google_analytics.html b/tpl/tplimpl/embedded/templates/google_analytics.html
@@ -10,6 +10,7 @@ if (!doNotTrack) {
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{ . }}', 'auto');
ga('send', 'pageview');
+ {{ if $pc.AnonymizeIP }}ga('set', 'anonymizeIp', true);{{ end -}}
}
</script>
{{ end }}
diff --git a/tpl/tplimpl/embedded/templates/google_analytics_async.html b/tpl/tplimpl/embedded/templates/google_analytics_async.html
@@ -7,6 +7,7 @@ if (!doNotTrack) {
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', '{{ . }}', 'auto');
ga('send', 'pageview');
+ {{ if $pc.AnonymizeIP }}ga('set', 'anonymizeIp', true);{{ end -}}
}
</script>
<script async src='//www.google-analytics.com/analytics.js'></script>