google_analytics.html 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. {{ $ga := site.Params.marketing.google_analytics | default site.GoogleAnalytics | default "" }}
  2. {{ $gtm := site.Params.marketing.google_tag_manager | default "" }}
  3. {{ if (in (slice (getenv "HUGO_ENV") hugo.Environment) "production") | and $ga | and (not $gtm) }}
  4. {{ $gtag_config := cond site.Params.privacy_pack "{ 'anonymize_ip': true }" "{}" }}
  5. <script async src="https://www.googletagmanager.com/gtag/js?id={{$ga}}"></script>
  6. <script>
  7. window.dataLayer = window.dataLayer || [];
  8. function gtag() {
  9. dataLayer.push(arguments);
  10. }
  11. function trackOutboundLink(url) {
  12. gtag('event', 'click', {
  13. 'event_category': 'outbound',
  14. 'event_label': url,
  15. 'transport_type': 'beacon',
  16. 'event_callback': function () {
  17. document.location = url;
  18. }
  19. });
  20. console.debug("Outbound link clicked: " + url);
  21. }
  22. function onClickCallback(event) {
  23. if ((event.target.tagName !== 'A') || (event.target.host === window.location.host)) {
  24. return;
  25. }
  26. trackOutboundLink(event.target); // Send GA event.
  27. }
  28. gtag('js', new Date());
  29. gtag('config', '{{$ga}}', {{$gtag_config|safeJS}});
  30. // Outbound link tracking.
  31. document.addEventListener('click', onClickCallback, false);
  32. </script>
  33. {{ end }}