Shiny Google Analytics User Tracking

shiny
rstudio

#1

Hi!

I am developing a Shiny Dashboard and have followed this tutorial (https://shiny.rstudio.com/articles/usage-metrics.html). However, I can't get the script to set a User ID for user tracking. This is the script I have embedded on the header.

// Initial Tracking Code
(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', 'UA-XXXXXXXX-1', 'auto');
ga('send', 'pageview');

// User Tracking Code
$(document).one('shiny:idle', function() {
ga('set','userId', Shiny.user);
});

Can anyone help me? :slight_smile:

Thanks!


#2

You need to set the user ID before you send the pageview. More info at https://developers.google.com/analytics/devguides/collection/analyticsjs/creating-trackers.

Google Analytics Debugger and Tag Assistant (Google) are Chrome add-ins that help see what's going on with the GA tags.

FWIW, I've had better luck tweaking via Google Tag Manager, because this blog https://www.simoahava.com/ is a fantastic resource for GTM.