Fixed Google Analytics Template is incorrect

JamieSinn

Active member
Affected version
1.5.16
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>
 
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.
 
Back
Top Bottom