Key-Value を使用すると、広告ユニットよりも細かいレベルで広告のターゲットを設定できます。詳しくは、Key-Value をご覧ください。
広告リクエストごとに、1 つ以上のキーと、それぞれに 1 つ以上の関連する値を渡すことができます。これらの Key-Value は、アド マネージャーの広告申込情報単位で設定されたターゲティング オプションと照合されます。たとえば、カスタム Key-Value age=18-34 を渡すと、18 ~ 34 歳をターゲットとする広告申込情報が配信候補となります(他のすべての条件が一致すると想定)。
ターゲティングを設定する
ネットワークのニーズに応じて、Key-Value を指定して、スロットレベルとページレベルの両方でターゲティングを設定できます。
- スロットレベル
- ページ上の個々の広告スロットに Key-Value を設定できます。 - スロットレベルのターゲティングでは、スロットごとにターゲティングを設定できます。これは、同じページ内の個々のスロットで異なるターゲティングが必要な場合に便利ですが、すべてのスロットに同じ Key-Value が適用される場合は非効率的になる可能性があります。次の例のように、Slot.setTargeting() を使用してスロットレベルのターゲティングを使用します。 
- ページレベル
- ページ上のすべての広告スロットに Key-Value を設定できます。 - ページレベルでターゲットを設定すると、すべての広告スロットに同じ Key-Value の組み合わせが設定されます。これにより、ターゲティングの設定に必要なコードの総量を削減できる場合があります。次の例のように、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 を指定する 2 つの広告スロットが定義されています。次に、Key-Value ターゲティングが適用され、各スロットに配信される広告をさらに制限して差別化します。
スロットレベルとページレベルの両方のターゲティングを使用する場合、Key-Value は結合され、すべての条件を満たす広告のみが特定のスロットに配信されます。この例では、各スロットの有効なターゲティングは次のとおりです。
| 広告スロット | 効果的なターゲティング | 
|---|---|
| 1 | color=red AND position=atf AND interests=basketball | 
| 2 | position=btf AND interests=basketball | 
複数のキーまたは値をターゲットにする
上の例では、スロットレベルとページレベルのターゲティングを組み合わせて、1 つの広告スロットに複数のターゲティング キーを定義しています。同じ効果的なターゲティングを実現するための代替アプローチをいくつかご紹介します。
スロット単位のターゲティングのみ
この例では、共有 Key-Value が広告スロットごとに繰り返されています。
// 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() を呼び出すときに値の配列を指定して、1 つのキーの複数の値をターゲットにすることもできます。
// Page-level targeting with multiple values for a single key.
googletag.pubads().setTargeting('interests', ['baseball', 'basketball']);
ターゲティングをクリア
ターゲティングを設定すると、設定された Key-Value は、広告スロットの存続期間中、広告リクエストごとに送信されます。ただし、状況によっては、ターゲティングを時間の経過とともに変更することが望ましい場合があります。setTargeting() を使用して Key-Value を追加または上書きすることはできますが、この方法で削除することはできません。そのためには、代わりに 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 |