将 Google 发布商代码 (GPT) 库集成到您的网站中并熟悉我们的常规最佳做法后,您就可以开始发出广告请求了。下面将介绍您在配置和使用广告位时应注意的一些其他最佳做法,以便最大限度地利用广告空间,同时最大限度地降低对性能的影响。
优先考虑“重要”广告位
并非所有广告位都具有相同的尺寸。例如,就可见度和创收情况而言,广告位在网页加载(首屏)后便立即可见的槽位通常要比滚动到用户视野范围之前(非首屏)不可见的槽位才更“重要”。考虑到这一点,请务必仔细考虑网页上每个广告位的相对重要性,并优先尽快加载最重要的广告位。
尽早加载首屏广告
对于将在网页加载后立即显示的广告,应为其指定最高优先级。建议您在文档的 <head>
中定义这些槽,并在页面加载过程中尽早请求这些槽。这有助于确保这些广告能够尽早加载(最大限度提高可见度),并且不会降低初始网页的加载速度。
延迟加载非首屏广告
对于需要滚动到用户视野范围内的广告,应延迟获取和呈现广告,直到广告位接近视口为止。此过程称为延迟加载。延迟加载会分别针对最有可能被用户浏览的广告位优先请求和呈现广告素材内容。这可以通过节省浏览器的有限资源来优化网页加载性能,在带宽和 CPU 通常具有严格限制的移动环境中,这一点尤为重要。
无需刷新页面即可刷新广告
在很多情况下,最好甚至必须替换广告位的当前广告内容。在这些情况下,最好使用 GPT 库的刷新功能实现这一目的。这样可以避免整页刷新,并可让您精确控制更新某个槽或槽组的条件。
刷新广告位时,请务必熟悉并遵循 refresh()
最佳做法。
以不当方式刷新广告可能会导致性能问题,并对可见率造成负面影响。
有效地定位广告
配置键值对定位时,请仔细考虑是使用广告位级还是页面级定位。对于在多个广告位之间共享的键值对,最有效的做法是通过 PubAdsService setTargeting()
方法使用网页级定位。广告位级定位只能用于注册所有广告位中不同或未包含的键值对。
请注意,您可以同时使用广告位级和页面级定位,如设置定位示例所示。强烈建议您先在网页级配置定位条件,然后仅在必要时应用广告位级替换值。这种方法不仅可以高效地使用 GPT API,还可以简化代码,并有助于保持思维模式会清晰理解页面上配置的所有定位条件。
正确使用单一请求架构
单一请求架构 (SRA) 是一种 GPT 请求模式,会将多个广告位的请求打包到单个广告请求中。这样可以确保遵循为网页配置的竞争排除和包版。因此,如果您的网页使用了 SRA,建议您启用 SRA,并了解如何正确使用 SRA。
采用默认配置时,SRA 将在您首次调用 display()
(如果初始加载已停用,则为 refresh()
)时请求页面上定义的所有广告位。因此,我们建议您在首次调用 display()
之前,在文档的 <head>
中定义网页的所有广告位。延迟加载可以与此方法结合使用,以确保位于非首屏的槽不会立即加载。
使用 SRA 时,请务必在首次调用 display()
之前完全配置所有广告位(例如,设置定位条件、类别排除等)。只有此时间点之前配置的值才会包含在初始 SRA 请求中。
不正确 - 广告位配置未包含在 SRA 请求中
<html>
<head>
<meta charset="utf-8">
<title>Single Request Architecture Example</title>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script>
window.googletag = window.googletag || {cmd: []};
var adSlot1, adSlot2;
googletag.cmd.push(function() {
// Define ad slot 1.
adSlot1 = googletag
.defineSlot('/6355419/Travel/Europe/France',[728, 90], 'banner-ad-1')
.addService(googletag.pubads());
// Define ad slot 2.
adSlot2 = googletag
.defineSlot('/6355419/Travel/Europe/France',[728, 90], 'banner-ad-2')
.addService(googletag.pubads());
// Enable SRA and services.
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
</head>
<body>
<div id="banner-ad-1" style="width: 728px; height: 90px;">
<script>
googletag.cmd.push(function() {
// This call to display requests both ad slots.
googletag.display(adSlot1);
});
</script>
</div>
<div id="banner-ad-2" style="width: 728px; height: 90px;">
<script>
googletag.cmd.push(function() {
// This call to display has no effect, since both ad slots have already
// been fetched by the previous call to display.
// Targeting configuration for ad slot 2 is ignored.
adSlot2.setTargeting('test', 'privacy');
googletag.display(adSlot2);
});
</script>
</div>
</body>
</html>
正确 - 广告位配置包含在 SRA 请求中
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Single Request Architecture Example</title>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script>
window.googletag = window.googletag || {cmd: []};
var adSlot1, adSlot2;
googletag.cmd.push(function() {
// Define ad slot 1.
adSlot1 = googletag
.defineSlot('/6355419/Travel/Europe/France',[728, 90], 'banner-ad-1')
.addService(googletag.pubads());
// Define and configure ad slot 2.
adSlot2 = googletag
.defineSlot('/6355419/Travel/Europe/France',[728, 90], 'banner-ad-2')
.setTargeting('test', 'privacy')
.addService(googletag.pubads());
// Enable SRA and services.
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
</head>
<body>
<div id="banner-ad-1" style="width: 728px; height: 90px;"></div>
<div id="banner-ad-2" style="width: 728px; height: 90px;"></div>
<script>
googletag.cmd.push(function() {
// This call to display requests both ad slots with all
// configured targeting.
googletag.display(adSlot1);
});
</script>
</body>
</html>
优化广告尺寸
定义广告位时,不仅要考虑可以投放的大小上限广告,还要考虑可以适应相同空间的较小尺寸的广告。一般而言,在定义广告位时指定的尺寸越多,能投放到广告位的广告就越多。从而实现更高的填充率和更高的收入