google-analytics - 为什么 Google Analytics 使用 __utm.gif?

标签 google-analytics

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

最佳答案

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

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

当然,REST 具有客户端与服务器通信的 HTTP 方法(GET 和 POST),事实上,Google Analytics 会引导客户端的浏览器通过 GET 请求将所有分析数据发送到 GA 服务器。更准确地说,GET 请求由请求 URL 和请求 header (例如,Referer 和用户代理 header )组成。

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

当然不可能有没有资源的 HTTP 请求;那么资源是客户端从服务器请求的吗?它不需要来自服务器的任何东西,而是想向服务器发送信息。所以客户端请求的实际服务器资源纯粹是借口——客户端甚至不需要资源,它只是请求遵守传输协议(protocol)运算符(operator)。因此,使该资源尽可能小且不引人注目是有意义的,这就是为什么它是 gif 格式的 1 x 1 透明像素的原因。它是可能的最小尺寸和最不密集的图像格式(字节/像素);我认为它是 30 多字节。其他常见格式(例如 jpeg、png、tiff)的 1 x 1 图像更大。

这种在客户端和服务器之间传输数据的通用方案一直存在。很可能有更好的方法来做到这一点,但这是我所知道的唯一方法(满足托管分析服务施加的限制)。

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

关于google-analytics - 为什么 Google Analytics 使用 __utm.gif?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4170190/

相关文章:

java - 问题 com.google.gdata.util.ResourceNotFoundException : Not Found with Google Analytic

google-analytics - 从分析中过滤掉旧的垃圾邮件 URI

javascript - GA 发送事​​件,不适用于自定义维度

regex - 用于Google目标跟踪的正则表达式

javascript - Google Analytics 的这个正则表达式实际上有什么作用吗?

firebase - 有多少客户端连接到我的 Firestore?

google-analytics - 对于addtransaction,收入始终为零

google-analytics - 使用网站脚本通过 Google Analytics 跟踪移动网络应用

r - 在GoogleAnalyticsR中找不到函数 “ga_clientid_activity”

node.js - 截至 2021 年 6 月 17 日,Google Analytics UA 测量协议(protocol)事件在多个媒体资源中不起作用