Google 分析:XHR 而不是像素跟踪
Google Analytics: XHR instead of pixel-tracking
默认情况下 google 分析使用像素跟踪技术将统计信息发送到服务器。我可以在 analytics.js 中看到一段用于生成新图像对象的代码。
ta = function (a) {
var b = M[u]("img");
b.width = 1;
b.height = 1;
b.src = a;
return b
}
但是浏览器加载这张图片太晚了,毕竟一个页面上有所有图片。所以使用 XHR 请求可能是一种解决方案。我找到了 analytics.js 这样的代码,它显示了 google 分析可以发送 xhr 请求而不是像素跟踪。
"image" == c ? wc(b, d, e) : "xhr" == c && wd(b, d, e) || "beacon" == c && x(b, d, e) || ba(b, d, e)
如何让它以这种方式工作?
您可以通过将 transport
选项设置为 'beacon'
来使用新的 navigator.sendBeacon 方法。这是一个例子:
ga('send', 'event', 'click', 'download-me', {transport: 'beacon'});
这是文档:
https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#transport
sendBeacon
是比 XHR 更好的选择,GA 会自动处理不支持它的浏览器的回退。如果你真的想使用 XHR,你可以将 transport
选项设置为 'xhr'
,但我建议在所有情况下都使用 'beacon'
。将来,'beacon'
选项可能会成为默认选项。
默认情况下 google 分析使用像素跟踪技术将统计信息发送到服务器。我可以在 analytics.js 中看到一段用于生成新图像对象的代码。
ta = function (a) {
var b = M[u]("img");
b.width = 1;
b.height = 1;
b.src = a;
return b
}
但是浏览器加载这张图片太晚了,毕竟一个页面上有所有图片。所以使用 XHR 请求可能是一种解决方案。我找到了 analytics.js 这样的代码,它显示了 google 分析可以发送 xhr 请求而不是像素跟踪。
"image" == c ? wc(b, d, e) : "xhr" == c && wd(b, d, e) || "beacon" == c && x(b, d, e) || ba(b, d, e)
如何让它以这种方式工作?
您可以通过将 transport
选项设置为 'beacon'
来使用新的 navigator.sendBeacon 方法。这是一个例子:
ga('send', 'event', 'click', 'download-me', {transport: 'beacon'});
这是文档: https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#transport
sendBeacon
是比 XHR 更好的选择,GA 会自动处理不支持它的浏览器的回退。如果你真的想使用 XHR,你可以将 transport
选项设置为 'xhr'
,但我建议在所有情况下都使用 'beacon'
。将来,'beacon'
选项可能会成为默认选项。