GPT 版本说明

本页面记录了 Google 发布商代码 (GPT) 库的正式版更新。您可以定期查看本页面,了解有关新增功能、功能更新、bug 修复、已知问题和功能弃用的公告。

若要让系统向您推送更新,请将此页面的网址添加到您所选的 Feed 阅读器中,或者使用一个直接指向版本说明 Feed(Atom 1.0Feed 图标RSS 2.0Feed 图标 格式)的链接。

关于发布日期

在发布之前,我们会对 GPT 库的所有更改进行全面测试。此外,发布版本会逐步向用户推出,以进一步防范意外的回归问题。如果在发布过程中的任何时间点发现回归,可以在发布面向所有用户之前快速放弃整个版本。

因此,发布日期并不完全准确;发布可能需要几天到几周的时间才能完全完成。这意味着用户会在不同时间遇到更改。这些发布说明中提供的日期反映了相应变更完成向所有用户推出时所在周的开始日期。

2025 年 7 月 28 日当周

许多现有的网页级和展示位置级设置已迁移到新的统一 GPT 配置 API。此迁移带来了多项改进:

  • 改进了发现功能:设置已在文档和类型定义中分组。
  • 更直观:您可以使用单个界面单独配置设置,也可以一次性配置所有设置。
  • 更清晰的错误:配置错误提供更详细的信息,并使用标准化语言来简化问题排查。

旧版配置方法仍可正常运行,但已更新为在内部使用新的配置框架。因此,即使使用旧版方法,您也可能会遇到引用新配置 API 属性的错误消息。

SafeFrameConfig 对象已从 googletag 命名空间移至 googletag.config 命名空间。

下表列出了已弃用的旧版配置方法,以及建议的替代配置 API。

旧版配置方法 GPT 配置 API 替代方案
PubAdsService.set() PageSettingsConfig.adsenseAttributes
PubAdsService.clearCategoryExclusions()
PubAdsService.setCategoryExclusion()
PageSettingsConfig.categoryExclusion
PubAdsService.setCentering() PageSettingsConfig.centering
PubAdsService.collapseEmptyDivs() PageSettingsConfig.collapseDiv
PubAdsService.disableInitialLoad() PageSettingsConfig.disableInitialLoad
PubAdsService.enableLazyLoad() PageSettingsConfig.lazyLoad
PubAdsService.setLocation() PageSettingsConfig.location
PubAdsService.setForceSafeFrame()
PubAdsService.setSafeFrameConfig()
PageSettingsConfig.safeFrame
PubAdsService.enableSingleRequest() PageSettingsConfig.singleRequest
PubAdsService.clearTargeting()
PubAdsService.setTargeting()
PageSettingsConfig.targeting
PubAdsService.enableVideoAds()
PubAdsService.setVideoContent()
PageSettingsConfig.videoAds
PubAdsService.isInitialLoadDisabled()
PubAdsService.get()
PubAdsService.getAttributeKeys()
PubAdsService.getTargeting()
PubAdsService.getTargetingKeys()
googletag.getConfig()
Slot.set() SlotSettingsConfig.adsenseAttributes
Slot.clearCategoryExclusions()
Slot.setCategoryExclusion()
SlotSettingsConfig.categoryExclusion
Slot.setClickUrl() SlotSettingsConfig.clickUrl
Slot.setCollapseEmptyDiv() SlotSettingsConfig.collapseDiv
Slot.setForceSafeFrame()
Slot.setSafeFrameConfig()
SlotSettingsConfig.safeFrame
Slot.clearTargeting()
Slot.setTargeting()
Slot.updateTargetingFromMap()
SlotSettingsConfig.targeting
Slot.get()
Slot.getAttributeKeys()
Slot.getCategoryExclusions()
Slot.getTargeting()
Slot.getTargetingKeys()
Slot.getConfig()

2025 年 7 月 21 日当周

threadYield 功能已更新,现在还会在生成广告请求网址之前让出 JS 线程,以处理仅包含首屏下方位置的请求。事实证明,这有助于提升核心网页指标,且不会对展示次数产生负面影响。

已在 GPT 中更新
属性 googletag.config.PageSettingsConfig.threadYield

2025 年 6 月 2 日所在的周

网站插页式广告现已全面支持单页应用 (SPA)

GPT 用户现在可以在支持 SPA 的网站中无缝展示网站插页式广告,而无需重新加载整个网页。此增强功能可实现以下目的:

  • 提升用户体验:在 SPA 中的自然间歇点投放广告,确保顺畅过渡并减少干扰。
  • 提升变现效果:通过在 SPA 驱动的动态内容上有效投放插页式广告,发掘新的增收机会。
  • 保持优质广告标准:继续提供优质的广告体验,提供明确的退出选项和可配置的频次上限,同时遵循行业最佳实践。

您无需对现有的 SPA 实现进行任何更改。GPT 将自动检测和管理 SPA 内网页更改的插页式广告展示。如需详细了解如何实现由 GPT 管理的网站插页式广告和可选的插页式广告触发器,请参阅 展示网站插页式广告 示例。

2025 年 5 月 26 日当周

H5 游戏插页式广告的频次上限已从 120 秒缩短为 30 秒。

2025 年 4 月 28 日当周

2025 年 1 月 27 日当周

以下 ComponentAuctionConfig.auctionConfig 属性已重命名,以与 Protected Audience API 规范保持一致。

旧媒体资源名称 新媒体资源名称
decisionLogicUrl decisionLogicURL
trustedScoringSignalsUrl trustedScoringSignalsURL

2024 年 10 月 21 日当周

修改 threadYield 以在可用时使用 Scheduler.yield 而不是 Scheduler.postTask。如需了解详情,请参阅收益文档

已在 GPT 中更新
属性 googletag.config.PageSettingsConfig.threadYield

2024 年 9 月 2 日所在的周

2024 年 8 月 19 日当周

用于控制 GPT 线程让步行为的设置已从 adYield 重命名为 threadYield,以明确该功能侧重于让步 JS 线程,而不是优化广告收益。该功能及其关联的 API(名称除外)的行为保持不变。adYield 属性将在未来的 GPT 版本中移除。

可以使用 googletag.setConfig({threadYield: 'DISABLED'}); 停用默认的线程让步行为,也可以使用 googletag.setConfig({threadYield: 'ENABLED_ALL_SLOTS'}); 将其应用于所有广告位,而无论这些广告位相对于视口的位置如何。

已在 GPT 中更新
属性 googletag.config.PageSettingsConfig.threadYield

2024 年 7 月 29 日所在的周

GPT 现在会在渲染广告素材之前,使用 Scheduler.postTask(如果可用)以“user-blocking”优先级让出 JS 线程。事实证明,此功能对展示次数的影响极小,但可显著提升核心网页指标。 默认情况下,只有当广告资源位于视口之外时,GPT 才会让出。

可以使用 googletag.setConfig({adYield: 'DISABLED'}); 停用默认行为,也可以使用 googletag.setConfig({adYield: 'ENABLED_ALL_SLOTS'}); 将默认行为应用于所有广告位,而无论它们相对于视口的位置如何。

GPT 中的新功能
属性 googletag.config.PageSettingsConfig.adYield

2024 年 2 月 12 日当周

修复了 SlotRenderEndedEvent.slotContentChanged 始终为 true 的 bug。今后,只有在广告位的内容发生变化时,此属性才会为 true,否则为 false(例如,如果广告未填充)。

2024 年 1 月 29 日当周

广告请求的网络故障将通过触发 googletag.events.SlotRenderEndedEvent(并将 isEmpty 设置为 true)来模拟“未填充”的情况。如需查看如何监听此事件的示例,请参阅广告事件监听器。此项更改包括在使用 collapseEmptyDivs 时自动收起 slot。

2023 年 12 月 11 日当周

2023 年 11 月 13 日当周

添加了对 Chrome 预呈现的支持。 当 GPT 检测到网页处于预渲染状态时,广告请求会延迟,直到网页对用户可见。

2023 年 10 月 23 日当周

新增了对可选网站插页式广告触发器的支持。

GPT 中的新功能
对象 googletag.config.InterstitialConfig
属性 googletag.config.SlotSettingsConfig.interstitial
类型 googletag.config.InterstitialTrigger

2023 年 7 月 24 日当周

Protected Audience API(以前称为 FLEDGE)将随着 7 月份 Chrome 版本的发布正式推出。这样一来,GPT 中与组件竞价相关的功能现在被视为稳定版。

2023 年 6 月 19 日当周

更新:自 2023 年 7 月 5 日起,GPT 将不再提供过时的 JavaScript 库版本,也不会向这些版本投放广告。如需了解详情,请参阅之前的公告

从 www.googletagservices.com/tag/js/gpt.js 提供服务的发布商可以继续这样做。不过,建议切换到首选网域,因为这可能会提高性能,并且将来可能会停止在 www.googletagservices.com 上提供 gpt.js。

2023 年 6 月 6 日当周

自 2023 年 7 月 5 日起,GPT 将不再提供过时的 JavaScript 库版本。对于从官方网址加载 GPT 的发布商,不会有任何影响。 如果发布商投放的是 gpt.js、pubads_impl.js 或其加载的任何库的缓存版本,则必须更新其网页以使用官方网址。如需了解详情,请参阅使用入门指南。

2023 年 5 月 22 日当周

现在,系统会自动移除提供给 googletag.defineSlot()SizeMappingBuilder.addSize() 的负值和零值大小值,因为这些值无效。因此,提供此类无效值的现有集成可能会看到发布商控制台消息数量增加。 不过,这不会对现有的有效广告请求产生任何影响。

2023 年 5 月 18 日当周

现在,GPT 将在执行过程中更早地安装 Secure Signals 出价方脚本。这有助于提高广告请求的信号覆盖率。

2023 年 5 月 1 日当周

修复了以下 bug:刷新多尺寸锚定广告资源块时,广告素材可能会显示不完整。

2023 年 3 月 27 日当周

对于不原生支持 Intersection Observer API 的浏览器,GPT 不再支持基于观看情况的功能。请注意,所有支持的浏览器都原生支持此 API。

方法或事件
googletag.events.ImpressionViewableEvent
googletag.events.SlotVisibilityChangedEvent
googletag.pubads().enableLazyLoad()

2023 年 2 月 6 日当周

2023 年 1 月 30 日当周

Service.addEventListener() 的行为已更改,以便在发生事件时,所有关联的监听器都会先执行,然后再处理后续事件。在此更改之前,同一广告位的 slot 渲染开始和结束事件监听器可能会无序执行。

2022 年 8 月 15 日当周

Service.removeEventListener() 的返回类型已从 boolean 更改为 void

2022 年 7 月 25 日当周

添加了对 FLEDGE 组件竞价的实验性支持,以便尽早测试有多个卖方的 FLEDGE

GPT 中的新功能
方法 Slot.setConfig()
对象 ComponentAuctionConfig
SlotSettingsConfig

2022 年 7 月 18 日当周

ContentService API 已停用。现在,调用 googletag.content().setContent 除了记录警告之外,没有任何其他效果。googletag.content 属性即将完全移除;之后,尝试调用该属性将抛出异常。请改用浏览器的内置 DOM API 将所需内容直接添加到 div 元素中。

2022 年 5 月 23 日当周

添加了对配置广告请求流量来源的支持。

GPT 对流量来源的支持
枚举 TrafficSource.ORGANIC
TrafficSource.PURCHASED
属性 PrivacySettingsConfig.trafficSource

2022 年 3 月 7 日所在的周

适合在网站中展示的激励广告已推出。如需了解详情,请访问 Ad Manager 帮助中心

GPT 对网站激励广告的支持
枚举 OutOfPageFormat.REWARDED
事件 RewardedSlotClosedEvent
事件 RewardedSlotGrantedEvent
事件 RewardedSlotReadyEvent
对象 RewardedPayload

2022 年 2 月 28 日当周

CommandArray.push 现在明确将提供的函数绑定到 globalThis,而不是其自身的 arguments 对象。

2021 年 12 月 8 日当周

枚举现在还公开了从值到键的反向映射,以匹配 TypeScript 枚举的行为。采用枚举值的 API 保持不变,不应使用这些新的反向映射。

2021 年 8 月 9 日当周

添加了 removeEventListener 方法。

现在,使用相同的 eventType 和回调函数实例多次调用 addEventListener 不再是无操作。换句话说,如果单个回调函数实例针对同一事件类型注册了 n 次,那么当事件发生时,它只会执行一次,而不是 n 次。

2021 年 7 月 29 日当周

现在,GPT 的可视性事件:ImpressionViewableEventSlotVisibilityChangedEvent 将在长时间的网页会话中继续触发。之前,它们会在网页加载后一小时关闭。

2021 年 5 月 3 日当周

GPT 不再在提取广告之前为广告位设置空间。此变更可减少未使用 CSS 预留空间的网站上的累计布局偏移 (CLS)。 为了进一步减少网站上的 CLS,我们建议您使用 CSS 为广告预留非零面积。了解详情

2021 年 3 月 22 日所在的周

更新了 enableLazyLoad() 的行为,以延迟呈现后台标签页上的首屏下方广告位。

2021 年 2 月 23 日当周

现在,可以在 displayrefresh 之前的任何时间调用 googletag.pubads().setSlot.set 方法。之前,set 仅在调用 googletag.enableServices 之前调用时适用。

2021 年 2 月 16 日当周

现在可以随时调用 googletag.pubads().setPublisherProvidedId API。之前,只有在 googletag.enableServices 之前调用时,此方法才有效。

2021 年 1 月 4 日当周

现在可以重复调用 googletag.pubads().collapseEmptyDivs API 来更改设置。之前重复的调用会被忽略。

2020 年 10 月 12 日所在的周

推出了网站插页式广告公开 Beta 版,请参阅帮助中心

2020 年 8 月 31 日所在的周

废弃了 definePassback()defineOutOfPagePassback()。如需了解如何正确创建回传,请参阅回传文档

2020 年 6 月 15 日所在的周

更新了 enableLazyLoad() 的行为,使其与 collapseEmptyDivs(true) 兼容。

2020 年 5 月 25 日所在的周

GPT 将不再支持发布商设置的精确 GPS 位置信息。具体而言,googletag.pubads().setLocation() 将不再支持纬度、经度或半径参数,而是采用自由格式的地址。

2020 年 4 月 27 日所在的周

GPT 呈现逻辑不再模块化为单独的文件。这意味着 GPT 在执行时会提取更少的文件,从而略微减少延迟,但对用户带宽没有净影响。

当在 GPT 中触发请求(通过调用 googletag.display()googletag.pubads().refresh())时,我们现在会在内部冻结所有发布商提供的状态,以便在发送请求之前无法对其进行更改。因此,当请求触发时,系统只会使用在该时间点之前添加的状态来处理该请求。之后修改的任何状态都只会应用于后续请求。

2019 年 11 月 11 日当周

现在,为方便您创建 GPT 回传代码,我们推荐了一个新的代码段。最好不要使用 definePassback()defineOutOfPagePassback(),因为这些函数行为同步,可能会被某些浏览器屏蔽。了解详情

添加了 Slot.updateTargetingFromMap() 方法。

添加了 PubAdsService.setPrivacySettings() 作为启用隐私设置的新方法。未来,您可以在此处找到更多设置。

2019 年 3 月 25 日当周

现在,在调用 googletag.enableServices() 后,Pubads 服务会立即全面运行,而不是异步初始化。这意味着,在调用 googletag.enableServices() 后,googletag.pubadsReady 现在保证为 true。不再需要轮询来检查 googletag.pubadsReady 的值。

2019 年 2 月 4 日当周

更新了 enableLazyLoad() 的行为,以允许在调用 enableServices() 后更改延迟加载配置,并在显示每个 slot 时冻结该 slot 的延迟加载配置。

2019 年 1 月 21 日当周

添加了新的受支持事件 SlotResponseReceived,该事件会在收到针对某个 slot 的广告响应时触发。

2019 年 1 月 14 日当周

添加了一个新的受支持事件 SlotRequestedEvent,该事件会在为广告资源位发出广告请求时触发。

2018 年 8 月 27 日当周

修改了 googletag.display() 以接受 googletag.Slot 作为实参。

2018 年 8 月 6 日当周

在 GPT 中添加了 googletag.PubAdsService.enableLazyLoad() 以实现广告延迟加载。

2018 年 6 月 18 日当周

修复了导致 googletag.events.SlotOnloadEvent 无法触发的 bug。

2018 年 4 月 30 日当周

添加了 googletag.PubAdsService.setTagForUnderAgeOfConsent(),用于控制面向未达到同意年龄的用户的广告;添加了 googletag.PassbackSlot.setTagForUnderAgeOfConsent(),用于将回传广告位标记为来自未达到同意年龄的用户。

2018 年 4 月 23 日当周

添加了 googletag.PubAdsService.setRequestNonPersonalizedAds() 以控制广告个性化。

2018 年 3 月 12 日所在的周

回滚了以下更改:如果现有内容不是由 GPT 放置在 slot 中的,则在刷新之前停止移除这些内容。内容现在将被清除。

2018 年 2 月 19 日当周

使用异步呈现模式时:尽可能使用 HTTP GET 方法通过 XMLHttpRequest 请求广告,所有广告请求的长度上限为 8,192 个字符。以前,对于超过 4,096 个字符的广告请求,系统会使用 HTTP POST 方法,但不得超过 8,192 个字符的限制。

如果现有内容不是由 GPT 放置在插槽中的,则在刷新之前停止移除这些内容。 此注释不正确;请参阅 2018 年 3 月 12 日当周的条目

2018 年 1 月 8 日当周

支持将 [..., ['fluid'], ...] 的替代语法作为多尺寸数组中的 NamedSized。之前,只有 [..., 'fluid', ...] 被视为有效。

2017 年 7 月 10 日当周

googleTag.ResponseInformation 中移除了 labelIds 字段。

2017 年 6 月 5 日当周

修改了 googletag.display()googletag.pubads().display,使其能够接受 div 元素以及 div ID。这样便可在 shadow DOM 中的 div 内呈现 slot。

2017 年 2 月 27 日当周

2016 年 11 月 7 日当周

发布了服务上的 getSlots() API,用于检索与服务关联的 slot 列表。

2016 年 10 月 17 日当周

修改了 Slot.clearTargeting()PubAdsService.clearTargeting(),以接受可选的键参数。

2016 年 9 月 5 日当周

googletag.cmd.push() 中捕获的错误不再是不可见的,而是会打印到控制台。

2016 年 8 月 8 日当周

发布了 SlotOnloadEvent API,以允许监听广告素材何时完成加载。

2016 年 7 月 25 日当周

在 PubAdsService 上发布了 getTargeting()getTargetingKeys() API,用于检索自定义服务级定位参数。

2016 年 6 月 20 日当周

发布了 openConsole() API,用于打开 Google 发布商控制台,而无需刷新页面。

2016 年 6 月 6 日所在的那一周

发布了 getTargeting()getTargetingKeys() API,用于检索自定义定位参数。

添加配置选项,用于指定 SafeFrame 应允许通过推送内容进行展开:allowPushExpansion

2016 年 5 月 16 日当周

支持多尺寸广告请求中的自适应尺寸

2016 年 4 月 18 日所在的那一周

发布了 getResponseInformation API,该 API 可返回广告展示位置的广告响应信息。

发布了 setAdIframeTitle API,该 API 将输入设置为之后创建的任何广告容器 iframe 的标题。

2016 年 4 月 4 日当周

HTTP GET 广告请求长度上限增加到 4,096 个字符。

2016 年 3 月 28 日所在的周

添加配置选项,以指定 Safeframe 是否应允许通过叠加内容进行展开:allowOverlayExpansion

添加配置选项,使 SafeFrame 应使用 HTML5 沙盒属性来阻止顶层导航:sandbox

2016 年 2 月 22 日所在的那一周

添加了为广告容器 iframe 设置标题的功能:setAdIframeTitle()

添加了一个 API,用于配置网页级和广告位级 SafeFrame 属性:setSafeFrameConfig()

2016 年 2 月 15 日当周

添加了销毁广告位并重新使用 div 的功能:destroySlots()

添加了一个 API,用于强制在具有精细控制功能的广告展示位置上使用 SafeFrame:setForceSafeFrame()

2015 年 12 月 7 日当周

添加了广告位展示事件 (SlotVisibilityChangedEvent)。

2015 年 10 月 26 日当周

添加展示可见率 (ImpressionViewableEvent)。

根据 JSON 映射 (Passback.updateTargetingFromMap()) 更新回传定位。

支持回传广告位的 set()get() AdSense 属性 page_url

2015 年 10 月 12 日当周

支持页外回传

2015 年 8 月 31 日当周

将 GPT 架构重构为精简的加载程序和更大的实现。

支持 GPT 中的流体大小