Google analytics 为什么谷歌分析需要一个GIF文件?

Google analytics 为什么谷歌分析需要一个GIF文件?,google-analytics,Google Analytics,为什么谷歌分析需要一个GIF文件 这是因为GIF允许访问比JavaScript本身更多的数据。是为了获取用户的IP地址吗?即使启用了JavaScript,analytics也会请求一个GIF文件。如果查看图像的GET参数,它包含许多关于浏览器的信息。类似于utmsr=1280x1024(屏幕大小)的内容。谷歌代码有一个新的功能 它使用图像请求发送有关浏览器的信息,而不使用XMLHttpRequest 现在,为了真正回答最初的问题,谷歌这样做可能是为了规避限制。谷歌的javascript必须以某种

为什么谷歌分析需要一个GIF文件


这是因为GIF允许访问比JavaScript本身更多的数据。是为了获取用户的IP地址吗?

即使启用了JavaScript,analytics也会请求一个GIF文件。如果查看图像的GET参数,它包含许多关于浏览器的信息。类似于
utmsr=1280x1024
(屏幕大小)的内容。谷歌代码有一个新的功能

它使用图像请求发送有关浏览器的信息,而不使用
XMLHttpRequest


现在,为了真正回答最初的问题,谷歌这样做可能是为了规避限制。

谷歌的javascript必须以某种方式将页面视图的详细信息传输到他们的服务器。Ajax不能跨域使用,因此提交信息的唯一方法是从Google服务器请求一个文件,并在查询字符串中传递必要的信息。为了方便这一点,必须使用标准HTML标记请求某种形式的内容。不影响页面本身的最简单方法是加载1x1透明gif。请注意,在Google脚本(以及其他脚本)的情况下,此图像实际上并没有添加到页面中。它只是通过javascript语句加载的

var img1 = new Image();
img1.src = 'http://path/to/file.gif?otherinfohere';
这将加载图像而不将其添加到页面中。还可以使用脚本标记加载信息,如下所示:

<script src="http://path/to/script.js?otherinfohere" type="text/javascript"><script>

但是,与图像相比,用户更有可能阻止javascript,因此更安全的方法是请求图像。至于为什么他们会使用gif而不是jpg,gif更安全,以防恶意浏览器将图像添加到页面中。透明gif不太可能对布局产生负面影响,因为1x1 jpg会在页面的某个地方留下一个1像素的点

编辑:要在我的评论中添加关于用户已阻止javascript的内容,可以在noscript标记中添加包含静态信息的gif请求,以允许在禁用javascript的情况下进行基本跟踪。据我所知,GA不这样做,但其他一些网络分析提供商这样做。

最小的透明GIF为43字节

最小的透明PNG-24(旧浏览器也无法显示)是67字节

最小(不透明)JPEG为134字节

数学很简单!尺寸越大=成本越高

  • 您可以在不使用javascript的情况下使用uuu utm.gif跟踪器(带有一些服务器帮助)

  • 您可以在电子邮件中使用它(在发送电子邮件之前提供一些编程帮助)

  • Urchin是在AJAX流行之前开发的(2005年)


  • 它与跨域无关。他们本可以使用JSONP来实现这一点。

    @Chacha102:Analytics JavaScript向GIF图像发出请求。@Chacha102:Chechl谷歌关于GIF请求结构的页面。仅供参考上述GA请求结构移动了67个字节,而不是73个字节。你必须读到最后才行!我相信谷歌使用图像请求只是因为他们不需要接收任何信息,只需要发送。图像请求是实现这一点的最轻量级的方法。这个答案没有给出任何有用的信息@mylesmg你的答案是正确的。JSONP用于获取数据,而Google Analytics只需要传输数据。图像标签用于获取数据,等等。你可以把querystring参数放在一个JSONP请求中,就像放在一个映像中一样…然后返回一个204I。我知道这是在试图讽刺,但我无法到达genious