为什么有时候我会得到空客户端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对象,但它也不起作用。
答案 0 :(得分:0)
调用ga命令队列时,只有在完全加载分析库后才会执行传入的函数。在您的代码中,您将回调函数排队以评估客户端ID并将其分配给您的变量,但是当您确定它是否为空时,它实际上仍然是空的,因为分析库仍然没有完全加载,因此导致"没有CID"被分配。
比照。 GA command queue