键值对定位

与广告单元相比,键值对可用于更精细地定位广告。详细了解键值对

针对每个广告请求,您可以传入一个或多个键,每个键可以有一个或多个关联的值。这些键值对将根据在 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