javascriptgoogle-analytics

how to get the Google analytics client ID


When you are creating a new instance of analytics.js by running

ga('create', 'UA-XXXXXXX-Y', {'cookieDomain': 'none'});

GA creates a unique client Id. I want to fetch this id and use it for my own purposes, but I can find only setter for this parameter but can't find any getter method to get it.

GA send it later in a parameter called &cid=123123.232323

Does anyone knows how do I get it?


Solution

  • Google does have some documentation on getting the client id.

    Looks like this:

    ga(function(tracker) {
      var clientId = tracker.get('clientId');
    });
    

    I've used this before, too:

    ga.getAll()[0].get('clientId');
    

    EDIT: If you have more than one tracker on the page, it may be probable that at index 0 there is not the one you want, so an alternative function should be the following:

    function() {
      try {
        var trackers = ga.getAll();
        var i, len;
        for (i = 0, len = trackers.length; i < len; i += 1) {
          if (trackers[i].get('trackingId') === "ID-PROPERTY") {
            return trackers[i].get('clientId');
          }
        }
      } catch(e) {}  
      return 'false';
    }
    

    where ID-PROPERTY is the id of your Property (i.e. UA-XXXXX-XX).