与广告单元相比,键值对可用于更精细地定位广告。详细了解键值对。
针对每个广告请求,您可以传入一个或多个键,每个键可以有一个或多个关联的值。这些键值对将根据在 Ad Manager 中订单项一级配置的定位选项进行评估。例如,如果您传递自定义键值对 age=18-34
,那么定位到年龄段 18-34 的订单项便符合投放条件(假定其他所有条件均符合)。
设置定位条件
您可以根据自己的广告联盟需求,指定键值对以在广告位一级和网页一级配置定位条件。
- 槽级
可让您为网页上的各个广告位设置键值对。
借助广告位级定位,您可以按广告位配置定位条件。如果同一网页上的各个广告位需要不同的定位条件,这种方法非常有用,但如果将相同的键值对应用于所有广告位,这种方法可能会效率不高。使用 Slot.setTargeting() 利用槽级定位,如以下示例所示。
- 页面级
可让您为网页上的所有广告位设置键值对。
网页级定位可确保所有广告位具有一组相同的键值对。在某些情况下,这可能会减少配置定位所需的代码总量。使用 googletag.pubads().setTargeting() 来利用页面级定位,如以下示例所示。
<head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="description" content="Use key-value targeting to control the ads eligible to serve to specific ad slots." /> <title>Key-value targeting</title> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous" ></script> <script> window.googletag = window.googletag || { cmd: [] }; // GPT slots let adSlots = []; googletag.cmd.push(() => { // Configure slot-level targeting. adSlots[0] = googletag .defineSlot("/6355419/Travel/Asia", [728, 90], "banner-ad-1") .addService(googletag.pubads()) .setTargeting("color", "red") .setTargeting("position", "atf"); adSlots[1] = googletag .defineSlot("/6355419/Travel/Asia", [728, 90], "banner-ad-2") .addService(googletag.pubads()) .setTargeting("position", "btf"); // Configure page-level targeting. googletag.pubads().setTargeting("interests", "basketball"); // Enable SRA and services. googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> </head>
在此示例中,定义了两个广告位,其中指定了广告单元 /6355419/Travel/Asia
和广告尺寸 728x90
。然后,系统会应用键值对定位,以进一步限制和区分可能在每个广告位中投放的广告。
同时使用广告位级和网页级定位条件时,系统会组合键值对,并且只有满足所有条件的广告才有资格投放到给定广告位。在此示例中,每个广告位的有效定位条件如下:
广告位 | 有效定位 |
---|---|
1 | color=red AND position=atf AND interests=basketball |
2 | position=btf AND interests=basketball |
定位到多个键或值
在上例中,我们结合使用了广告位级定位和页面级定位,为单个广告位定义了多个定位键。以下是一些可实现同样有效定位的替代方法:
仅限槽级定位
在此示例中,系统会针对每个广告位重复使用共享的键值对。
// Slot-level targeting with multiple keys.
adSlots[0] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-1')
.addService(googletag.pubads())
.setTargeting('color', 'red')
.setTargeting('position', 'atf')
.setTargeting('interests', 'basketball');
adSlots[1] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-2')
.addService(googletag.pubads())
.setTargeting('position', 'btf')
.setTargeting('interests', 'basketball');
网页级默认定位
在此示例中,默认定位条件是在页面级设置的,并根据需要在槽级替换。
// Page-level default targeting.
googletag.pubads().setTargeting('interests', 'basketball')
.setTargeting('position', 'btf');
// Slot-level targeting overrides.
adSlots[0] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-1')
.addService(googletag.pubads())
.setTargeting('color', 'red')
.setTargeting('position', 'atf');
adSlots[1] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-2')
.addService(googletag.pubads());
您还可以通过在调用 setTargeting()
时提供值数组,针对单个键定位多个值:
// Page-level targeting with multiple values for a single key.
googletag.pubads().setTargeting('interests', ['baseball', 'basketball']);
明确定位条件
设置定位条件后,在广告位的整个生命周期内,系统都会随每个广告请求一起发送配置的键值对。不过,在某些情况下,您可能希望定位条件随着时间的推移而发生变化。虽然 setTargeting()
可用于添加和覆盖键值对,但无法以这种方式移除键值对。为此,必须改用 Slot.clearTargeting() 或 googletag.pubads().clearTargeting()。
// Step 0, define slot- and page-level targeting. adSlots[0] = googletag .defineSlot("/6355419/Travel/Asia", [728, 90], "banner-ad-1") .addService(googletag.pubads()) .setTargeting("color", "red") .setTargeting("position", "atf"); googletag.pubads().setTargeting("interests", "basketball"); // Step 1, clear slot-level color targeting. adSlots[0].clearTargeting("color"); // Step 2, clear all page-level targeting. googletag.pubads().clearTargeting();
使用特定键(在槽级或页面级)调用 clearTargeting()
时,系统只会移除该键。如果未指定键,系统会移除该级别的所有定位条件。
在前面的示例中,完成每个步骤后,广告位的有效定位条件如下:
步骤 | 有效定位 |
---|---|
0 | color=red AND position=atf AND interests=basketball |
1 | position=atf AND interests=basketball |
2 | position=atf |