ref: 1f1d955b56471e41d5288c57f1ef8333dc297120
parent: ffcf26e68cac843f8b257ee72f0282f405ad04a8
author: Bjørn Erik Pedersen <[email protected]>
date: Fri May 25 06:53:39 EDT 2018
Add anonymizeIP to GA privacy config See #4751
--- a/config/privacy/privacyConfig.go
+++ b/config/privacy/privacyConfig.go
@@ -48,6 +48,9 @@
// 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.
--- a/config/privacy/privacyConfig_test.go
+++ b/config/privacy/privacyConfig_test.go
@@ -34,6 +34,7 @@
[privacy.googleAnalytics]
disable = true
respectDoNotTrack = true
+anonymizeIP = true
[privacy.instagram]
disable = true
simple = true
@@ -59,6 +60,7 @@
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)
--- a/hugolib/embedded_templates_test.go
+++ b/hugolib/embedded_templates_test.go
@@ -47,7 +47,10 @@
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';")
--- a/hugolib/testhelpers_test.go
+++ b/hugolib/testhelpers_test.go
@@ -143,6 +143,23 @@
[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 {
--- a/tpl/tplimpl/embedded/templates.autogen.go
+++ b/tpl/tplimpl/embedded/templates.autogen.go
@@ -111,6 +111,7 @@
})(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 @@
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>
--- a/tpl/tplimpl/embedded/templates/google_analytics.html
+++ b/tpl/tplimpl/embedded/templates/google_analytics.html
@@ -10,6 +10,7 @@
})(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 }}
--- a/tpl/tplimpl/embedded/templates/google_analytics_async.html
+++ b/tpl/tplimpl/embedded/templates/google_analytics_async.html
@@ -7,6 +7,7 @@
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>