为什么Google Analytics使用__utm.gif?

时间:2010-11-13 00:28:03

标签: google-analytics

只是想了解他们为什么不使用REST API。

3 个答案:

答案 0 :(得分:29)

在REST中,客户端向服务器发起对资源的请求;服务器处理这些请求并返回适当的响应。

utm.gif 不涉及服务器到客户端的数据传输,而是涉及向另一个方向移动数据。

当然,REST有HTTP方法供客户端与服务器通信(GET和POST),实际上,Google Analytics会指示客户端的浏览器通过GET请求将所有分析数据发送到GA服务器。更确切地说,GET请求由请求URL和请求标题(例如,Referer和User-Agent标题)组成。

所有GA数据 - 每个项目 - 都被汇编并打包到 请求网址的查询字符串 (“?”之后的所有内容)。但是为了使数据从客户端(创建它)到GA服务器(记录和聚合),必须有HTTP请求,所以ga.js(谷歌分析脚本已下载,除非它是由客户端缓存作为页面加载时调用的函数的结果)指示客户端汇集所有分析数据 - 例如,cookie,位置栏,请求标题等 - 将其连接成单个字符串并将其作为查询字符串附加到网址( http://www.google-analytics.com/__utm.gif ?)并成为请求网址

当然没有资源就没有HTTP请求;所以资源是从服务器请求的客户端?它不需要来自服务器的任何东西,而是想要将信息发送到服务器。因此,客户端请求的实际服务器资源纯粹是预先设置的 - 客户端甚至不需要该资源,它仅被要求遵守传输协议运营商。因此,使该资源尽可能小和不引人注意是有意义的,这就是为什么它是gif格式的1 x 1透明像素。它是最小的可能尺寸和最不密集的图像格式(字节/像素);我认为它有点超过30个字节。其他常见格式(例如,jpeg,png,tiff)中的1​​ x 1图像较大。

这种在客户端和服务器之间传输数据的一般方案已经存在;这可能是更好的方法,但这是我所知道的唯一方式(满足托管分析服务所施加的限制)。

(Google Analytics确实有两个API - “Data Export" and "Management” - 这两个都是RESTful Web服务。)

答案 1 :(得分:7)

您可以使用< noscript>在不支持javascript的浏览器中使用__utm.gif标签(在服务器上有一些工作),以及电子邮件消息(在发送电子邮件之前有一些工作)。

您将如何在电子邮件中发送REST请求?

答案 2 :(得分:0)

因为它是图像,所以即使您无法执行JS,也可以将其粘贴在可以使用的任何位置并添加图像标签。早在几年前,该Google就将其用于跟踪电子邮件广告系列。您可以将此格式化的字符串粘贴在html电子邮件中,然后任何显示该消息的客户端都会将该请求发送到GA服务器,并且您将获得最低IP信息(也可以获取地理位置信息),具体取决于您也可以使用的客户端获取操作系统,语言和所有其他浏览器设置。您无法从现代JS跟踪脚本中获得所有精美的分析结果,但仍然可以使用。

这是一个可以帮助您格式化请求字符串的站点,并提供了更多详细信息。 Google pixel generator