什么是服务器端代码植入?

代码植入是指在网站上添加代码段,以便营销团队、营销合作伙伴或 Google Analytics(分析)等工具进行衡量。

适用于网站的跟踪代码管理器与基于服务器的 Google 跟踪代码管理器

在服务器端代码植入之前,客户端代码植入是您放置和执行代码的唯一选择。您可能会想:“服务器端代码植入会取代客户端代码植入吗?”

答案是不会,但服务器端代码植入可以极大地补充和改进客户端代码所做的工作。通过服务器端代码植入,用户与营销供应商之间会插入额外的控制层借助这个控制层,您可以控制供应商接收的数据的确切组成。

其他好处包括:

  • 提升了网页速度,因为用户浏览器中加载的第三方代码量大幅减少了。
  • 内容安全政策的限制可以更为严格,因为浏览器不再需要与供应商网域直接通信。
  • 隐私保护得到了加强,因为系统会从发送给供应商的数据中移除个人数据(如用户的 IP 地址)。
  • Cookie 可以变得更加安全和持久,因为它们是在您自己的网域中设置的,而不是由网页上的 JavaScript 设置的。

服务器容器与网站容器之间的区别

服务器容器 网站容器
服务器容器在服务器中运行 网站容器在浏览器中运行
服务器容器汇总 HTTP 请求 网站容器使用 dataLayer
服务器容器仅使用在沙盒中运行的 JavaScript 网站容器可以部署 HTML 代码,并在运行时运行自定义 JavaScript 代码
服务器容器可能会因维护服务器环境而产生费用 网站容器是免费的

服务器端代码植入的工作原理

在本课程中,需要将代码放置在跟踪代码管理器服务器容器中。
服务器容器是一种 JavaScript 应用,可在基于 Node.js 的服务器环境中运行。
该应用以 Docker 映像的形式打包和分发,这意味着它与许多不同的服务器环境和云服务兼容。

跟踪代码管理器服务器容器可与跟踪代码管理器网站容器或 gtag.js 库搭配使用。客户端库有从网络浏览器收集数据并将其发送到服务器端代码植入环境的机制。


显示 GA4 客户端与网站容器如何交互的示意图
术语 定义
客户端 客户端是指仅在服务器容器中可用的跟踪代码管理器资源。

客户端的主要用途是解析传入的 HTTP 请求,并生成事件数据对象供代码使用。

单个传入 HTTP 请求只能由一个客户端进行“声明”。一旦客户端声明该请求,就无法再为该请求激活其他客户端。
请求 请求是指发送到服务器容器的 HTTP 请求。使服务器容器处理数据的唯一方式就是向其发送 HTTP 请求。服务器容器完成工作后,会将响应发回 HTTP 请求来源。
事件数据 客户端会将传入的 HTTP 请求解析为标准化的事件数据格式。

事件数据类似于网站容器中的“数据层”。您可以使用生成的事件数据对象来触发和丰富您的服务器端代码。
触发器 服务器容器中的触发器始终与客户端生成的事件数据对象相关。例如,不存在 clickscroll 触发器。
代码 只有在客户端生成事件数据对象时,才能使用代码。并非所有客户端都会执行此操作,因此在服务器容器中安装客户端时,您需要了解相应客户端的工作原理。

在本演示中,我们将使用内置的 Google Analytics(分析)4 (GA4) 客户端来生成标准化事件数据对象,以便根据传入的 GA4 请求轻松触发代码。
变量 服务器容器中的变量通常会引用事件数据对象中的项。您可以将变量配置为直接从传入 HTTP 请求中提取值(例如请求标头)。您可以创建自定义模板,以提高灵活性。

在哪里放置代码?

如果您在服务器端代码植入环境中部署的代码需要知道用户在网页或应用中执行了哪些操作,那么部分代码仍然需要在相应浏览器或应用中运行。由于您的服务器容器在服务器端环境中运行,因此它无权了解网页或应用中发生的情况。网页或应用中的容器可通过网络请求与服务器容器进行通信。

例如,如果您要收集网页上的用户互动数据(例如点击次数、滚动次数和表单互动次数),您仍然需要在网络浏览器中运行的 GA4 配置代码,以将这些信息发送给服务器端代码植入端点。同样,如果您要收集与网站互动相关的自定义事件,则需要在跟踪代码管理器网站容器中放置 GA4 事件代码。

总结

总的来说,服务器容器增强了网站容器的功能。这样一来,您就可以更轻松地满足隐私保护要求,同时提升网站性能。如果您的代码依赖于用户浏览器中发生的活动,请将其放置在网站容器中。所有其他代码都可以在服务器容器中运行。