• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Fixed Google Analytics Template is incorrect

Affected version
1.5.16

JamieSinn

Active member
#1
Current Template:
Code:
<xen:if is="{$xenOptions.googleAnalyticsWebPropertyId}"><script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
    
    ga('create', '{$xenOptions.googleAnalyticsWebPropertyId}', 'auto');
    ga('send', 'pageview');

</script></xen:if>
Google's correct template:
Code:
<xen:if is="{$xenOptions.googleAnalyticsWebPropertyId}"><!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-X"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-XXXXX-X');
</script>
</xen:if>
 
#6
Is there a way to set up this code so that we can differentiate between guests/registered?
Ideally you'd want to use the full tag manager system where this code is kind of a hybrid between UA and GTM. For user differentiation you'll want to setup the variables in GTM then in XenForo have it output the dataLayer varible to indicate whether it's a user or guest. I'm setting up my GTM at the moment so I'll be adding this.