面向广告客户的 Google 代码网关:以第一方方式加载 Google 脚本

本文档面向使用服务器端代码植入并希望在第一方环境中传送 Google 脚本的开发者。

借助面向广告客户的 Google 代码网关,您可以从自己的第一方基础架构(而不是 Google 的服务器)直接加载 Google 脚本,例如 gtm.js。这样,您就可以通过代码植入服务器或 CDN 在第一方环境中提供数据。

准备工作

本指南假定您已经:

首先,请选择您希望如何提供 Google 脚本。

使用代码植入服务器传送脚本

您可以将代码植入服务器设置为从网站所用网域中的一个路径(如下所示)或作为网站上的子网域传送 Google 脚本。此设置会增加代码植入服务器的负载,并可能因服务器端实例发出的额外出站脚本请求而产生更高的费用。

服务器端代码植入的同源概览。

第 1 步:配置客户端

为了在您的网络容器与代码植入服务器之间建立第一方环境,需要通过您的服务器加载 Google 脚本。

如需通过您的服务器容器加载 Google 脚本,请执行下列操作:

  1. 打开 Google 跟踪代码管理器
  2. 在您的服务器容器中,点击客户端
  3. 点击新建
  4. 选择 Google 跟踪代码管理器:网络容器客户端类型。 突出显示了“Google 跟踪代码管理器:网络容器”客户端的“选择客户端类型”对话框

  5. 客户端配置中:

    • 添加容器 ID
      • 允许的容器 ID:您将在网站上使用的跟踪代码管理器网络容器的容器 ID。
      • 代码传送路径:用于传送此容器脚本的唯一路径。添加新的容器 ID 后,系统会自动生成一个由随机字母数字字符组成的路径,以帮助防止与代码植入服务器上的现有路径发生冲突。此路径必须以 / 开头(例如 /mypath)。请勿将其作为 server_container_url 的一部分。
    • 压缩 HTTP 响应:启用后,代码植入服务器将压缩受支持的响应(例如 JavaScript 文件)。这样可以减少从服务器传输的数据。

    “Google 跟踪代码管理器:网络容器”客户端的视图

  6. 为客户端命名并保存

  7. 发布工作区。

允许 Google Ads 代码和 Floodlight 代码进行第一方投放和收集

为增强数据并确保未来的兼容性,请使用以下任一实现选项,确保您的 Google Ads 代码和 Floodlight 代码以第一方请求的形式投放和衡量:

选项 1:将 Google Ads 代码和 Floodlight 代码移至服务器端容器

通过将服务器端 Google 跟踪代码管理器设为数据暂存区,您可以集中更好地控制数据。此实现选项支持基于价值的出价策略,并允许服务器端 Google 跟踪代码管理器拥有服务器设置的 Cookie。

  1. 通过 CDN 或负载平衡器或通过代码植入服务器实现 Google 代码网关。
  2. 将 Google Ads 代码和 Floodlight 代码移至服务器端容器,而不是将其留在客户端容器中。

选项 2:将 Google Ads 代码和 Floodlight 代码保留在客户端容器中

如果您有现有的 CDN,请使用以下实现:

  1. 通过 CDN 或负载平衡器实现 Google 代码网关,以便从第一方环境中加载客户端容器。

  2. 将 Google Ads 代码和 Floodlight 代码保留在客户端容器中。

第 2 步:更新脚本来源网域

默认情况下,跟踪代码管理器会从 Google 的服务器(例如 https://googletagmanager.com)加载其依赖项。您需要更新您网站上的脚本网址,以通过您自己的服务器加载依赖项。

跟踪代码管理器

如需使用服务器容器加载跟踪代码管理器代码,请执行以下操作:

  1. 找到页面上的现有跟踪代码管理器代码。
  2. 将字符串 https://example.com/metrics 替换为您的代码植入服务器网址,将 /tag_serving_path 替换为客户端中为要投放的容器配置的代码投放路径。将以下代码段放置在 Google 跟踪代码管理器安装代码的 <head><body> 中。
  • Head
<!-- Google Tag Manager -->
<script>(function(w,d,s,l){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'?l='+l:'';j.async=true;j.src=
'https://example.com/metrics/tag_serving_path/'+dl;f.parentNode.insertBefore(j,f);})
(window,document,'script','dataLayer');</script>
<!-- End Google Tag Manager -->
  • Body
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://example.com/metrics/ns.html?id=GTM-12345"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

gtag.js

如需使用服务器容器加载 Google 代码,请执行以下操作:

  1. 在您的代码中找到现有的 Google 代码,或复制以下代码段。
  2. 修改该代码段,以使用您的服务器基础架构:

    • 将字符串 https://www.googletagmanager.com 替换为您的代码植入服务器网址,例如 https://example.com/metrics
    • G-12345 替换为您的衡量 ID。
    • /tag_serving_path 替换为之前提及的衡量 ID 的已配置的投放路径。
<!-- Google tag (gtag.js) -->
<script async src="https://example.com/metrics/tag_serving_path/"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-12345', {
    server_container_url: 'https://example.com/metrics',
  });
</script>

第 3 步:验证脚本的来源

以下说明介绍了如何使用 Google Chrome 进行测试。您可以选择使用任何浏览器,但具体步骤可能会有所不同。

如需测试服务器容器能否正常加载依赖项,请执行下列操作:

  1. 在新的浏览器标签页中打开您的网站。
  2. 打开浏览器的开发者工具。在 Google Chrome 中,您可以在网页上的任意位置点击鼠标右键,然后选择检查
  3. 在开发者工具中,打开来源标签页。此窗口会显示您打开该网站时加载的所有依赖项。

    • ✅ 如果 gtm.jsgtag 从您指定的来源加载,则表示您的实现过程正确无误。

    开发者工具的屏幕截图,其中显示 Google 脚本的来源是您自己的服务器

    • ❌ 如果来源标签页显示 gtm.jsgtag 的来源是 www.googletagmanager.com,则表示依赖项仍是从 Google 服务器加载的。

    开发者工具的屏幕截图,其中显示 Google 脚本的来源是 www.googletagmanager.com

    • 如需检查您是否已在源代码中修改来源网址,请参阅第 2 步
    • 查看相应代码是否已发布到网站上。

后续步骤

如果您使用了意见征求模式,则可以设置针对特定区域的代码行为,以实现更全面的控制。