Google Analytics空客户端ID

时间:2017-01-11 21:34:13

标签: javascript google-analytics analytics clientid

为什么有时候我会得到空客户端ID? 例如,对于约90%的网页访问者,Google Analytics正常设置了clientID,我正在通过以下方式进行检查:

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

并返回一些xxxxx.xxxxx数字。但对于约10%的访客来说,它会返回空值。为什么呢?

我通过以下方式检查ga是否已加载:

if (typeof ga === 'function')

似乎没关系。 我的整个功能看起来像:

function check_ga() {
  var clientId = "";
  if (typeof ga === 'function') {
    ga(function(tracker) {
      clientId = tracker.get('clientId');
    });

    if(clientId == "") 
    {
      ga('create', 'UA-XXXXXX-X', 'auto'); //trying to create new ga object
      ga(function(tracker) {
        clientId = tracker.get('clientId');
      });
    }

    if(clientId == "") 
    {
      clientId = "No CID";
    }
  } else {
    clientId = "GA Not loaded";
  }
  return clientId;
}

我不时会得到“无CID”值。为什么?? 如你所见,我试图创建新的GA对象,但它也不起作用。

1 个答案:

答案 0 :(得分:0)

调用ga命令队列时,只有在完全加载分析库后才会执行传入的函数。在您的代码中,您将回调函数排队以评估客户端ID并将其分配给您的变量,但是当您确定它是否为空时,它实际上仍然是空的,因为分析库仍然没有完全加载,因此导致"没有CID"被分配。

比照。 GA command queue