为什么谷歌分析使用一个像素的图片来传输数据

Why does Google Analytics use a one-pixel picture to transfer data?

本文关键字:像素 一个 数据 传输 谷歌 为什么      更新时间:2023-09-26

Google Analytics嵌入了一个1像素的GIF, URL如下:

http://www.google-analytics.com/__utm.gif?utmwv=5.1.5&utms=5&utmn=1532897343&utmhn=www.douban.com&utmcs=UTF-8&utmsr=1440x900&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.3%20r181&utmdt=%E8%B1%86%E7%93%A3&utmhid=571356425&utmr=-&utmp=%2F&utmac=UA-7019765-1&utmcc=__utma%3D30149280.1785629903.1314674330.1315290610.1315452707.10%3B%2B__utmz%3D30149280.1315452707.10.7.utmcsr%3Dbiaodianfu.com%7Cutmccn%3D(referral)%7Cutmcmd%3Dreferral%7Cutmcct%3D%2Fgoogle-analytics-architecture.html%3B%2B__utmv%3D30149280.162%3B&utmu=qBM~

为什么不使用AJAX调用?使用一个像素的GIF有什么好处?

因为您不能真正实现跨域AJAX (CORS除外,但这是另一回事,而且是最近出现的现象,没有得到普遍支持)。AJAX用于同源请求。此外,Google Analytics源自Urchin,后者实际上早于AJAX技术的采用。

请求图像是分析服务"请求"某些东西作为向第三方服务器发送某些东西的一种相当标准的做法。AJAX/CORS没有真正意义的原因是,您实际上并没有请求一个重要的资源以在页面上使用,因此您希望请求本身尽可能快速和少开销。

分析服务偶尔处理从客户端发送数据的另外两种方式是:
  1. 包含一个不可见的iframe,使用iframe src上的查询字符串传递分析数据

  2. 请求一个图像,而不是返回一个图像,返回一个空的HTTP 204头响应。

最大化兼容性。例如,手机浏览器可能不支持AJAX,因此可能提供不充分的结果。但是,嘿,谷歌做了很多没人能解释的奇怪的事情。