常见的最佳做法

将 Google 发布商代码 (GPT) 库集成到网站中,在许多方面与集成任何其他第三方脚本相同。不过,在使用 GPT 时,您必须考虑一些独特方面,才能确保充分利用广告空间,同时尽可能减少对网站性能的影响。毕竟,广告速度至关重要。

以下部分介绍了在进行集成时应遵循的最佳实践。

从官方来源加载 GPT

为确保您能使用最新功能和隐私保护措施,请务必使用下表中列出的网址之一,从官方来源请求 GPT 库。要使用的网址取决于您是否打算手动启用受限广告 (LTD) 模式。

集成类型 脚本标记
标准

包括已与 IAB Europe TCF 集成的发布商。
<script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous" async></script>
手动启用受限广告

如果您想手动启用受限广告 (LTD)。
<script src="https://pagead2.googlesyndication.com/tag/js/gpt.js" async></script>

受限广告 (LTD) 模式可让 GPT 在不访问客户端存储空间(例如 Cookie 或本地标识符)的情况下投放广告。您可以通过以下两种方式之一启用受限广告:

  1. 标准(自动):意见征求管理服务提供商 (CMP) 会告知 GPT 用户未同意存储空间访问权限,通常使用 IAB TCF v2.0 信号。如果您使用经 Google 认证的 CMP 来管理用户意见征求情况,GPT 会根据用户的偏好设置自动进入受限广告模式。

    • 网址:从标准网址 (doubleclick.net) 加载 GPT。
    • 无需手动操作:使用 CMP 时,无需手动调用 setPrivacySettings({limitedAds: true}),因为信号由库自动处理。
  2. 手动:您显式调用 GPT API 来请求受限广告。

    • 网址:如果您打算使用 googletag.pubads().setPrivacySettings({limitedAds: true}) API 手动启用受限广告,则必须从受限广告网址 googlesyndication.com 加载 GPT。
    • 原因:从 googlesyndication.com 网域加载 GPT 默认情况下可提供额外的安全措施,防止访问客户端存储空间。
    • 错误配置的后果:如果从标准网址加载 GPT 并调用手动 API,则启用受限广告的请求会被忽略,并且系统会在发布商控制台中记录警告。

不提供 GPT 的缓存版本

切勿从您自己的服务器投放 gpt.js、pubads_impl.js 或其加载的任何库的版本,也不要从非官方来源加载这些版本。

使用本地缓存的 GPT 库版本可能无法在较新版本的浏览器或操作系统中正常使用,而且可能无法及时使用新功能和改进功能。旧版 GPT 库可能会随时停止工作,如果广告停止向您的代码投放,可能会导致广告收入损失。

这也适用于服务工作线程。如果您使用 service worker 来缓存或修改来自您网站的 HTTP 请求的响应,请在处理 gpt.js 的请求时使用仅限网络策略,以便提取最新版本。

尽早加载 GPT

GPT 库 (gpt.js) 仅包含加载广告所需的一小部分代码。该代码的大部分内容都包含在单独的文件(例如 pubads_impl_XX.js)中,这些文件由 gpt.js 根据需要加载。

通过提前加载核心 GPT 库,这些依赖脚本也能更早加载。这样可以避免与提取这些脚本(如果未缓存)相关的任何额外延迟,并允许更快地加载广告。所有这些都有助于缩短呈现首个广告的时间指标,从而提高广告的可见度。

在适当的时候使用预加载

有时,您可能无法直接控制 GPT 的加载时间或方式。例如,当使用代表您加载 GPT 的第三方广告脚本时。在这些情况下,预加载 gpt.js 的请求可能比较合适。预加载请求会指示浏览器立即下载对网页加载至关重要的指定资源。如果指定的资源是 JavaScript 文件,系统会立即提取脚本内容,但会延迟执行,直到需要该脚本时才执行。

标准集成功能的预加载请求示例

<link rel="preload" href="https://securepubads.g.doubleclick.net/tag/js/gpt.js" as="script">

受限广告集成方案的预加载请求示例

<link rel="preload" href="https://pagead2.googlesyndication.com/tag/js/gpt.js" as="script">

使用 fetchpriority 优先加载脚本

您可以使用 fetchpriority 属性向浏览器表明提取 GPT 资源的相对优先级。默认情况下,gpt.js 会自动请求其核心实现脚本 (pubads_impl.js) 和 Google 隐私权与消息脚本 (fetchpriority="high"),以优化网络调度并缩短广告加载延迟时间。提高优先级可能会影响网页上其他资源的加载以及Core Web Vitals指标。为了最大限度地提高设置为高的 fetchpriority 的延迟影响,我们建议直接在 gpt.js 上进行设置。

如需优先提取 gpt.js 加载器脚本本身(或配置 pubads_impl.js 和 Google 隐私权和消息脚本的继承优先级),您可以直接向 gpt.js <script> 标记添加 fetchpriority 属性:

<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" fetchpriority="high"></script>

如果您在 gpt.js 加载程序 <script> 代码中指定 fetchpriority 属性,则动态插入的实现脚本和 Google 隐私权与消息脚本会自动继承指定的 fetchpriority 值(例如 "high"、"low" 或 "auto")。

在预渲染的网页上使用 GPT

预渲染是指指示浏览器预先下载并呈现用户尚未请求但很可能会访问的网页。当在预渲染的网页上加载时,GPT 库仅在网页变为可见状态时才请求广告。

静态加载 GPT

避免以动态方式将 GPT 库注入到网页中,或从外部脚本加载该库。您可以改为在网页的 <head> 中静态加载库,如 Google 发布商代码使用入门中所述。这样可以防止其他资源延迟提取和加载 GPT 库,进而延迟加载广告。

如需了解详情,请参阅 Lighthouse 发布商广告评估服务静态加载广告脚本审核文档。

异步加载 GPT

在脚本标记定义中添加 async 关键字,如开始使用 Google 发布商代码中所述。这会指示浏览器与其他资源和网页内容并行加载 GPT 库,而不是在脚本加载完成之前阻止执行。

如需了解详情,请参阅 Lighthouse 发布商广告评估服务异步加载广告代码审核文档。

安全地加载 GPT

始终通过 HTTPS 加载 GPT 库,如开始使用 Google 发布商代码中所述。这不仅可为用户提供更安全的网络环境,还可提高网页性能。由于 GPT 发出的广告请求始终使用 HTTPS,因此使用 HTTPS 加载库本身可确保浏览器只需为与广告投放相关的所有请求打开 1 个连接。

如需了解详情,请参阅 Lighthouse 发布商广告评估服务文档,了解如何通过 HTTPS 加载广告代码和从推荐的主机加载 GPT。

实践良好的网页性能

虽然本指南中的最佳实践主要侧重于优化 GPT 集成,但许多其他因素也会影响网页的整体效果。在对网站进行更改时(尤其是根据本指南中的广泛建议进行更改时),请务必评估这些更改对网页效果各个方面的影响。建议您定期运行 Lighthouse 和 Lighthouse 发布商广告评估服务等工具,以找出并解决性能问题,并为您的网站找到合适的优化平衡点。