键值对定位

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

对于每个广告请求,您可以传递一个或多个键,每个键均有一个或多个关联的值。系统会根据在 Ad Manager 的订单项级别配置的定位选项来评估这些键值对。例如,如果您传递 age=18-34 的自定义键值对,那么定位到 18-34 岁年龄段的订单项将符合投放条件(假设所有其他条件均符合)。

设置定位条件

您可以根据网络需求指定键值对,以便同时在广告位级和网页级配置定位条件。

广告位级

可让您为网页上的各个广告位设置键值对。

通过广告位级定位,您可以按广告位来配置定位。 这适用于同一网页上的各个广告位需要不同的定位,但在将相同的键值对应用于所有广告位的情况下,效率可能并不高。使用 Slot.setTarget() 可以实现广告位级定位,如以下示例所示。

页面级

用于为网页上的所有广告位设置键值对。

网页级定位可确保所有广告位都使用同一组键值对。在某些情况下,这可能会减少配置定位所需的代码总量。使用 googletag.pubads().setTarget() 可以实现网页级定位,如以下示例所示。

<head>
  <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
  <script>
    window.googletag = window.googletag || {cmd: []};

    // GPT slots
    var adSlots = [];

    googletag.cmd.push(function() {
      // 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.clearTarget()googletag.pubads().clearTarget()

// 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