自 2022 年 1 月 24 日起,SafeFrame 将始终使用随机子网域来隔离 SafeFrame 内容并提供更强的安全保证。这意味着将不再采用 SafeFrame 安全设置。
如果您以前选择了“固定”设置,您的 SafeFrame 安全机制将会更新。
SafeFrame 是一种支持 API 的 iframe,能够在广告客户与发布商内容之间建立一种统一的通信机制。Ad Manager 中的 SafeFrame 技术不仅能够在网页内容与广告之间实现透明且丰富的互动,还能用于阻止外部人员获取敏感数据,同时更精准地控制通过将 SafeFrame 容器与 GPT 结合使用来呈现的广告素材。
根据 IAB 标准,发布商必须更新其网站才能在 SafeFrame 容器内呈现广告。不过,Ad Manager 支持 SafeFrame,而且当您使用 GPT 代码时,系统会默认启用 SafeFrame。
为了最大限度地降低恶意广告素材投放的可能性,我们建议您尽可能启用 SafeFrame,并将其与 HTML5 沙盒
属性结合使用,以阻止顶层导航。详细了解沙盒
属性
如需了解详情(包括完整的 SafeFrame 规范),请阅读 IAB 文档。
SafeFrame 和广告素材类型
SafeFrame 默认处于开启或关闭状态,具体取决于所使用的展示广告素材类型。
无论是为要在非 SafeFrame 网页中投放的广告素材启用 SafeFrame,还是不为要在 SafeFrame 网页中投放的广告素材启用 SafeFrame,都可能会导致该广告素材无法呈现。请了解广告素材的目标投放位置,并相应地设置 SafeFrame。
- 自定义和第三方广告:当您添加新的第三方广告素材或自定义广告素材时,“投放到 SafeFrame”选项会默认处于开启状态。
- 标准和自定义广告素材模板:对于标准和自定义广告素材模板,“投放到 SafeFrame”选项会默认处于关闭状态。
SafeFrame 和 Google 发布商代码 (GPT)
在 Ad Manager 中,您可以明确控制是否使用 SafeFrame 呈现以下四类广告素材:
- 自定义
- 第三方
- 系统定义的模板
- 用户定义的模板
当您添加新广告素材,或为这几类广告素材创建模板时,请选中投放到 SafeFrame 复选框。
在开启 SafeFrame 之前,请先与提供广告素材的广告客户或供应商一起确定相应广告素材是否与 SafeFrame 兼容。如果您使用了沙盒
属性,请与代理机构或广告客户一起确保点击操作会在新标签页中打开着陆页(而不是会从当前页面转到着陆页)。
SafeFrame 不支持广告素材预览。
借助 setForceSafeFrame
参数,您可以使用 Google Publisher Tag API 强制网页上的任何特定广告位或所有广告位使用 SafeFrame 容器呈现。
将 SafeFrame 与 AMP 网页搭配使用
SafeFrame API 与任何使用 Ad Manager AMP 广告代码在 AMP 网页上投放的非 AMPHTML 广告兼容。
SafeFrame 容器的最大展开尺寸不得超过视口的最大展开尺寸。SafeFrame 不允许视口内的广告位仅针对 AMP 网页调整自身的尺寸,因此只有当广告位不在视口范围内时,广告素材的尺寸调整请求才会被满足。
对于 AMP 网页,无论您如何选择,系统都会始终将标准 HTML 广告素材投放到 SafeFrame。请确保您的广告素材代码与 SafeFrame 兼容。
AMPHTML 广告
默认情况下,AMPHTML 广告会投放到友好型 iframe(而不是 SafeFrame)中,这是因为 AMPHTML 更安全。
如果您有针对自己网站的内容安全政策 (CSP),那么 CSP 规定的限制也适用于友好型 iframe 中的 AMPHTML 广告。在这种情况下,请在发出任何广告请求之前调用 googletag.pubads().setForceSafeFrame(true)
,以允许广告在不受 CSP 限制的跨网域 iframe 中呈现。
SafeFrame 的运作方式
GPT SafeFrame 集成包含三个部分:
- 由 GPT 在系统显示广告时创建的 SafeFrame iframe 容器本身。
- 插入到广告素材中的代码。该代码可为广告素材提供(外部)SafeFrame API,并使用
postMessage
与托管网页通信。 - 作为 GPT 的一部分在 SafeFrame iframe 外部运行的代码。其是
postMessage
通信渠道的另一端。该代码将执行可见度的所有扩展和几何衡量。
Ad Manager 支持使用 Safeframe API 与网站互动的广告素材,例如在用户点击广告时展开广告位(无论是下推方式还是叠加方式)。不过,您必须使用 setSafeFrameConfig
函数修改代码,这样才能使广告位展开并允许进行下推式/叠加式互动。
GPT 并非在外部托管此 API 实现,因为 SafeFrame 的呈现是由 GPT 处理的。您可以继续使用 GPT API 来设置广告,而无需对 GPT 进行任何更改。
GPT 会实现 SafeFrame 外部方 API,以允许广告素材与网站进行互动。
支持的 SafeFrame API 方法
$sf.ext.register
$sf.ext.supports
$sf.ext.geom
$sf.ext.status
$sf.ext.inViewPercentage
/* supports expansion in both push and overlay modes;
not supported for fluid-sized native ads */
$sf.ext.expand
不支持或部分支持的 API 方法
- 不支持
$sf.ext.cookie
,因为我们不允许广告素材访问发布商 Cookie。 - 不支持对发布商定义的对象使用
$sf.ext.meta
,此方法仅可用于下列系统定义的对象:{String} sf_ver
SafeFrame 当前版本的字符串表示形式。{Number} ck_on
用于指示浏览器是否启用了 Cookie:1
表示启用了 Cookie,0
表示未启用 Cookie。
SafeFrame 对富媒体和可见度的支持
SafeFrame 可增强发布商的控制力,因为它要求广告与发布商内容之间的互动只能通过该 API 提供的方法实现。此技术实现了富媒体格式的标准化,使得采用该 API 的广告素材可在任何支持 SafeFrame 的广告资源网中投放。
可见度
您可以使用 SafeFrame 提供的 API 计算可见度。虽然 SafeFrame 1.1 不会直接报告可见度指标,但该 API 允许您访问广告客户可以使用的广告素材信息,以确定 SafeFrame 容器是否“可见”。
可通过该 API 获得的信息包括:SafeFrame 容器及其内容的几何尺寸和位置(相对于浏览器或应用窗口以及屏幕边界)。此外,您还可以嵌入一个监听器,以确定广告的可见时间有多长,从而获取有关持续时间的信息。
Active View 是 Google 针对广告的可见展示提供的一种解决方案,但它并未包含在 SafeFrame 可见度规范中。因此,这项功能没有任何变化,可以继续正常使用。
使用 Google 发布商控制台
您可以使用 Google 发布商控制台查看广告位是否使用了 SafeFrame。