_google_analytics.pug 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. if (typeof(ExposedSettings.gaTokenV4) != "undefined" || typeof(ExposedSettings.gaToken) != "undefined")
  2. script(type="text/javascript", nonce=scriptNonce, id="ga-loader" data-ga-token=ExposedSettings.gaToken data-ga-token-v4=ExposedSettings.gaTokenV4 data-cookie-domain=ExposedSettings.cookieDomain).
  3. var gaSettings = document.querySelector('#ga-loader').dataset;
  4. var gaid = gaSettings.gaTokenV4;
  5. var gaToken = gaSettings.gaToken;
  6. var cookieDomain = gaSettings.cookieDomain;
  7. if(gaid) {
  8. window.dataLayer = window.dataLayer || [];
  9. function gtag(){
  10. dataLayer.push(arguments);
  11. }
  12. gtag('js', new Date());
  13. gtag('config', gaid, { 'anonymize_ip': true });
  14. }
  15. if (gaToken) {
  16. window.ga = window.ga || function () {
  17. (window.ga.q = window.ga.q || []).push(arguments);
  18. }, window.ga.l = 1 * new Date();
  19. }
  20. var loadGA = window.olLoadGA = function() {
  21. if (gaid) {
  22. var s = document.createElement('script');
  23. s.setAttribute('async', 'async');
  24. s.setAttribute('src', 'https://www.googletagmanager.com/gtag/js?id=' + gaid);
  25. document.querySelector('head').append(s);
  26. }
  27. if (gaToken) {
  28. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  29. (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  30. m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  31. })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  32. ga('create', gaToken, cookieDomain.replace(/^\./, ""));
  33. ga('set', 'anonymizeIp', true);
  34. ga('send', 'pageview');
  35. }
  36. };
  37. // Check if consent given (features/cookie-banner)
  38. var oaCookie = document.cookie.split('; ').find(function(cookie) {
  39. return cookie.startsWith('oa=');
  40. });
  41. if(oaCookie) {
  42. var oaCookieValue = oaCookie.split('=')[1];
  43. if(oaCookieValue === '1') {
  44. loadGA();
  45. }
  46. }
  47. if typeof(ExposedSettings.gaTokenV4) === "undefined"
  48. script(type="text/javascript", nonce=scriptNonce).
  49. window.gtag = function() { console.log("would send to GA4", arguments) };
  50. if typeof(ExposedSettings.gaToken) === "undefined"
  51. script(type="text/javascript", nonce=scriptNonce).
  52. window.ga = function() { console.log("would send to GA", arguments) };