我们正在通过Google跟踪代码管理器安装Google Analytics。 我们有自定义变量,应该接受GA客户ID,并将其发送给我们的GA。 变量定义如下:
function() {
try {
var cookie = {{GA_ID_Cookie}}.split(".");
return cookie[2] + "." + cookie[3];
} catch(e) {
return 'N/A';
}
}
While {{GA_ID_Cookie}}
是名为“_ga
”的第一方Cookie变量。
在大多数情况下,此值有效,但在某些情况下GA_ID_Cookie
未定义(并抛出异常)。
它发生在所有浏览器中。有足够的用户使用“N / A”,所以它不是关于cookie禁用的问题。
GTM在页面查看事件上安装GA;它使用这个有问题的变量作为自定义维度。
我的问题是ga id是如何为空的,我们如何克服这个问题并以其他方式获取id。
答案 0 :(得分:0)
在生成Cookie之前,您的代码可能已被触发。 尝试将页面视图更改为窗口加载。清除cookie,然后重试,它应该可以工作。
答案 1 :(得分:0)
就像Ashley指出的那样,您可能正面临一种竞争状况,您尝试在GA设置Cookie之前尝试访问它。
请注意,从识别用户的角度来看, GA cookie ID包含一些无关的信息,即应删除的版本。
如果您的GA Cookie如下所示:
_ga=GA1.2.1033501218.1368477899;
那么您感兴趣的部分是:
1033501218.1368477899
要通过浏览器检索客户端ID ,官方方法如下: https://developers.google.com/analytics/devguides/collection/analyticsjs/accessing-trackers
// Initializing the `ga` command queue so that commands
// can be queued even if the GA snippet is not loaded
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
// Queuing a command to retrieve the Client ID when the tracker is ready
ga(function(tracker) {
// Logs the client ID for the current user.
console.log(tracker.get('clientId'));
});
如果您使用的是GTM,则需要创建任务:
https://www.simoahava.com/analytics/13-useful-custom-dimensions-for-google-analytics/#13-client-id
function() {
return function(model) {
return model.get('clientId');
};
}
如果您要通过服务器检索客户端ID ,则只需使用HTTP库解析cookie
HTTP标头(以下示例是从请求到stackoverflow网站)您可以选择并摆脱领先的GA\d\.\d\.
模式,该模式代表Cookie的版本。
cookie: prov=f67bae3b-f99c-2f22-84fc-7c2a62862f3d; _ga=GA1.2.1380536973.1571212618; ...