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' 选项可能会成为默认选项。