这是 Medium 上关于 AMP 获利的大型系列文章的一部分,其中包括以下主题
- 确保 AMP 和非 AMP 页面上的广告密度相等
- 优化 AMP 页面以获得较高的广告可见度或观看次数
- 利用多种尺寸的广告和流体广告来获得更多广告竞争优势
- 优于标头竞价 → AMP RTC
- 利用 AMP 中的视频广告
- 利用 AMP 中的富媒体广告支持
- 使用 AMPHTML 广告以获得更好的广告效果、页面可用性和用户安全性
最初由 Google AMPHTML 广告产品经理 Vamsee Jasti 发布在 Medium 上。
到目前为止,此获利系列文章主要介绍如何确保从提供给 AMP 页面的基于 JavaScript(JS) 的现有广告中获得最大收益,而这些广告独立于网页面临许多挑战。在这篇文章中,我们来讨论如何改进展示广告生态系统。
我们在 AMP 页面上提供以用户为先的广告体验方面取得了许多进展,但在此过程中我们了解到,AMP 页面的原则可以转移到展示广告中,以实现阶跃式改进。
我们着手使用 AMPHTML 广告(原称 A4A/AMP 广告)解决安全性和性能问题,并且不仅让 AMP 页面受益,还让展示广告提供的任何环境受益,包括常规网页和移动应用。
AMP 技术负责人 Malte 在 这篇文章 中写到了 AMPHTML 广告的起源(我将在下面总结大部分内容,但你也可以考虑阅读它,了解我们从何开始以及如何随着时间的推移而发展)。
从那时起,我们已经取得了长足的进步,今天我想谈谈
- 什么是 AMPHTML 广告
- 什么是 AMPHTML 广告
- 为什么发布商需要 AMPHTML 广告
- 为什么广告商需要 AMPHTML 广告
- AMPHTML 在展示广告生态系统中的支持状态
什么是 AMPHTML 广告
AMPHTML 广告是一个框架,为广告开发人员、广告商、广告服务器和发布商提供构建模块,以创建和提供高性能且安全的广告。
与 AMP 类似,AMPHTML 广告只有在由 HTML + CSS + 开源 AMP 项目存储库 中的 JS 组成时才有效。
AMPHTML 广告是 AMP 页面规范的严格子集,并附带许多默认良好的广告 UI 组件、分析测量框架、垃圾邮件检测系统、可见度测量和其他好处。
一个简单的 AMPHTML 广告
<!doctype html>
<html ⚡4ads>
<head>
<meta charset=”utf-8">
<title>My amphtml ad</title>
<meta name=”viewport” content=”width=device-width,minimum-scale=1,initial-scale=1">
<style amp4ads-boilerplate>body{visibility:hidden}</style>
</head>
<body>
<a target=”_blank” href=”https://www.ampproject.org">
<amp-img width=”300" height=”250"
src=”https://www.ampproject.org/static/img/docs/ads/amp-300x250.png"></amp-img>
</a>
</body>
</html>
请注意,没有任意的 JavaScript,所有代码都是声明性的。
AMPHTML 广告不是什么(至少目前不是)
AMPHTML 广告不能确保广告的视觉内容高质量。
为什么发布商需要 AMPHTML 广告
当广告在 AMP 中开发时,该广告对网页的性能影响极小,并且它让发布者能够控制网页的用户体验。
广告创建者差异很大。即使是善意的广告商也可能创建锁定 CPU、使网页卡顿并导致访问者退出网站的广告。然后,少数恶意广告商会优先考虑自己的体验和用户。这些问题可能让知识渊博的访问者找到另一个安装广告拦截器的理由。这种行为的主要原因之一在于,网络上传统广告的早期设计决策允许嵌入任意(很多时候性能很差)JS 的广告 iframe。
如果我们能够保证广告中使用的 JS 始终具有良好的性能,并且不会过多地降低页面性能,那不是很好吗?我们希望 AMP 达到该标准,并且由于代码都是开源的,因此任何人都可以对其进行审查并提出改进建议。此外,AMP 的以下属性解决了展示广告生态系统中的许多问题
静态可分析
所有 AMPHTML 广告都是静态可分析的,这意味着广告无法运行
- 不属于公共 AMP GitHub 仓库的任何代码
- 不属于已呈现广告代码的附加 JS
可信
AMP 仓库中的所有代码都是经过仔细审查的开源代码。因此,它不能包含利用芯片组级别漏洞窃取输入到网站的密码之类的 JS。如果恶意行为者尝试添加此类代码,则AMP 维护人员有一个流程来确保此类代码不会合并到仓库中。
快速且通用的可升级性
如果我们在 AMP 代码或较低级别堆栈中发现利用或窃取网站用户信息的漏洞,则可以更新 AMPHTML 广告运行时,并且大多数用户将在一天内获得最新版本的安全广告运行时。
自我感知页面性能
广告中的动画可能会对页面性能产生很大影响。AMPHTML 广告在不在屏幕上时会自动暂停动画,从而节省宝贵的电池和 CPU。
缓存单个库
使用单一广告运行时标准的另一个性能优势是,不同的广告功能可以引用缓存中运行时,跨服务于同一浏览器的多个 AMPHTML 广告。随着网络上 AMPHTML 广告数量的增加,更多用户将在浏览器缓存中获得广告运行时。将此与加载两个不同的库以实现两个独立的功能进行对比,这两个库都较不可能在浏览器缓存中获得。
在同源 iframe 中高效渲染
对于 AMPHTML 广告,广告脚本可以将它们提供给与脚本标记同源的 iframe 中,与将广告加载到跨域 iframe 中相比,这更有效。这仅是因为 AMPHTML 无法拥有自定义 JS,因此从安全角度降低了风险。
广告商为何需要 AMPHTML 广告
内置广告 UI 组件
AMPHTML 广告附带了许多 UI 组件,允许广告创作者构建出色的广告,并完全访问网络动画 API、一流的分析框架和可见性支持。这些内置模块在开发时就考虑了性能,因此广告商可以确信他们正在使用同类最佳的浏览器/应用程序 API 来构建此功能。
无差异的可见性测量
可见性可能是广告商最关心的指标之一,而发布商、广告商和广告技术公司都希望自行验证可见性,从而导致每个人都插入自己的 JS 来收集可见性数据。
问题是,每个人都使用自己的技术来收集可见性。这不仅极大地浪费了 CPU,还导致三个收集器之间的可见性不匹配。AMPHTML 广告依赖于浏览器原生 API(如 Intersection Observer)来收集最准确的可见性测量,并将它们发送给任何请求它的人。由于所有这些代码都是开源的,因此广告商可以选择自行检查收集方法。
开发时验证器
更轻量/性能更好的广告可以带来更多点击和更高的可见性。这应该很容易理解,因为如果广告在屏幕上渲染不够快,用户就无法点击或查看广告。这意味着广告主应该有动力制作性能更好的广告,以便在相同的支出上获得更高的投资回报率。
然而,鉴于广告主、媒体代理商和创意代理商之间通常是分离的,广告主对创意代理商制作的广告的性能几乎没有控制权。AMPHTML 广告附带一个开发时间验证器,该验证器在开发者制作广告时会向他们提供布尔值答案,表明该广告是否是有效的 AMPHTML。如果有效,创建者可以确信该广告的性能会很好。
一劳永逸,随处投放
在不久的将来,广告主将能够制作一个 AMPHTML 广告,并在网页、AMP 页面和移动应用上投放。AMPHTML 广告还将原生支持SafeFrame API和MRAID API,因此广告主可以统一地利用高级主机(网络或应用)级别功能。
生态系统状态
要做出像这样的变革性改变,需要一个村庄,但一些行业思想领袖已经投入了大量时间和资源来帮助将更多 AMPHTML 广告带到网络上。你可以使用此链接了解其中每一个的当前状态。
最终目标是什么?
借助AMP 的新治理模式和行业参与,我们认为我们可以帮助广告主和发布商使用 AMPHTML 广告来投放网络和移动应用上投放的每一个广告。如果我们实现了这一目标,我们将进入一个世界,在这个世界中
- 广告将尊重用户的设备和发布商的网页
- 广告不会影响发布商页面的性能,从而为他们带来更高的收入
- 广告将为广告主带来更高的投资回报率,包括更好的可见性
- 用户在网络上会更加安全,因此会找到更少的理由来安装广告拦截器
我希望你能加入 AMP 团队,帮助解决开放网络上最重要的、最有趣的挑战之一——广告。
感谢Malte Ubl、Katharina Familia Almonte和Rudy Galfi。
最初由 Google 的 AMPHTML 广告产品经理 Vamsee Jasti 发布在 Medium 上。