ユーザー エージェント ターゲティング

これまで、User-Agent ヘッダーは、リクエスト元のデバイスのブラウザやプラットフォームなどの有用なターゲティング データを提供するために入札リクエストに含められていました。ただし、使用が困難であることやユーザーのプライバシーを保護するため、ブラウザは User-Agent を大幅に削除することがよくあります。Google は、この問題に対応するため、User-Agent Client Hints をサポートしています。この機能は、利用可能な場合に入札リクエストに含まれ、User-Agent ヘッダーを補完します。これらのクライアント ヒントは、Sec-Ch-UA* ヘッダーまたは Javascript Client Hints API から取得できます。

User-Agent ヘッダーは、BidRequest.device.ua フィールドに文字列として公開されます。

UserAgent メッセージには、利用可能な場合は Client Hints が入力されます。利用できない場合は、User-Agent ヘッダーから解析された値に基づいて入力されます。これは BidRequest.device.sua フィールドで公開されます。

入札者は、User-Agent 文字列ではなく UserAgent メッセージを使用することを強くおすすめします。

UserAgent の入力方法

User-Agent ヘッダーとは異なり、UserAgent メッセージは、特定の情報を複数のフィールドに分割したユーザー エージェント情報を表します。

広告リクエストでクライアント ヒントを使用できるかどうかに応じて、UserAgent メッセージは次の方法で入力できます。

  • リクエストに 低エントロピーのクライアント ヒントが 1 つ以上含まれている場合、UserAgent はその内容に基づいて入力されます。
  • リクエストに User-Agent ヘッダーのみが含まれている場合、UserAgent には、ヘッダーから解析できる内容が入力されます。

例: User-Agent ヘッダーに基づいて UserAgent にデータを入力する

ブラウザが次のヘッダーを送信する広告リクエストがあるとします。

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
            AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

User-Agent ヘッダーのみに基づいて入力された UserAgent は次のようになります。

browsers: [{ brand: "Mozilla", version: ["5", "0"] },
           { brand: "AppleWebKit", version: ["537", "36"] },
           { brand: "Chrome", version: ["103", "0", "0", "0"] },
           { brand: "Safari", version: ["537", "36"] }],
platform: { brand: "Windows NT", version: ["10", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
model: "x64",
source: USER_AGENT_STRING

例: Client Hints に基づく UserAgent への入力

ブラウザが次のヘッダーを送信する広告リクエストがあるとします。

User-Agent:                 Mozilla/5.0 (Windows NT 10.0; Win64; x64)
                            AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Sec-Ch-Ua:                  ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"
Sec-Ch-Ua-Arch:             x86
Sec-Ch-Ua-Full-Version:     103.0.5060.134
Sec-Ch-Ua-Mobile:           ?0
Sec-Ch-Ua-Platform:         Windows
Sec-Ch-Ua-Platform-Version: 15.0.0

低エントロピーの Client Hints が少なくとも含まれている場合、User-Agent ヘッダーが存在していても、UserAgent にはこれらのヘッダーの内容に基づいて値が設定されます。次のように表示されます。

browsers: [{ brand: ".Not/A)Brand", version: ["99", "0", "0", "0"] },
           { brand: "Google Chrome", version: ["103", "0", "5060", "134"] },
           { brand: "Chromium", version: ["103", "0", "5060", "134"] }],
platform: { brand: "Windows", version: ["15", "0", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
source: CLIENT_HINTS_HIGH_ENTROPY

User-Agent ヘッダーとクライアント ヒントに基づくデータの入力

一部のフィールドは、User-Agent ヘッダーに基づくか、クライアント ヒントに基づくかによって、入力内容が異なります。これらの違いの概要は次のとおりです。

  • 同じブラウザとプラットフォームの場合、UserAgent.browsers.brandUserAgent.platform.brand は、User-Agent ヘッダーまたは Client Hints に基づく UserAgent と異なることがよくあります。たとえば、UserAgent.platform.brand は、User-Agent ヘッダーに基づいている場合は「Windows NT」、Client Hints に基づいている場合は「Windows」と表示されます。
  • 一部の UserAgent.browsers エントリは、User-Agent ヘッダーまたは Client Hints に固有です。たとえば、UserAgent が User-Agent ヘッダーに基づいている場合は「AppleWebKit」が表示されますが、Client Hints に基づいている場合は「Chromium」のみが表示されます。
  • フリーズされた値を含めることができるのは、User-Agent ヘッダーに基づく UserAgent のみです。たとえば、プラットフォームが Windows 11 22H2 の場合、UserAgent.platform.brand は「Windows NT」に設定され、UserAgent.platform.version[“10”, “0”] に設定されます。これは、10 以上の Windows バージョンの固定値であるためです。

通常、クライアント ヒントを基盤とする UserAgent のデータは、凍結または削除された情報の不正確な代替物ではありません。User-Agent ヘッダーと Client Hints に基づく UserAgent の間に不整合がある場合は、UserAgent の情報が優先されます。

UserAgent オブジェクトのフィールド

このセクションでは、Google RTB 固有の動作と使用に関するベスト プラクティスに重点を置いて、各フィールドの概要を説明します。

ブラウザ

通常は特定度順に並べられた BrandVersion エントリのリストが含まれます。たとえば、browsers の内容を一覧表示すると、各エントリの brand は次の順序で表示されます。

ブランド 意味
Mozilla Mozilla 互換
AppleWebKit AppleWebKit ベースで、Mozilla のサブセット。
Chrome Chrome ブラウザ(AppleWebKit 互換ブラウザのサブセット)
Safari モバイルではなく、パソコン向けのバリエーション。

UserAgent では、特にクライアント ヒントをベースとしている場合、ブラウザが特定の順序でリストされるとは限りません。source の値に基づいて発生するその他の違いは次のとおりです。

  • USER_AGENT: version フィールドは、メジャー バージョンに縮小または凍結される場合があります(エージェント固有のポリシーによって異なります)。値が凍結されていることを示す兆候はありません。
  • CLIENT_HINTS_LOW_ENTROPYCLIENT_HINTS_HIGH_ENTROPY: エントリは特定の条件で並べ替えられません。たとえば、同じブラウザでも、リクエストごとに異なる順序でエントリを送信する場合があります。また、GREASE エントリが含まれる場合がありますが、これは無視してください。
  • CLIENT_HINTS_HIGH_ENTROPY: ブラウザで見つかったすべての version フィールドは、完全なバージョンに設定できます。

プラットフォーム

プラットフォームを記述する BrandVersion エントリ。これは、User-Agent ヘッダーと Client Hints で互換性がない可能性があるため、一部のプラットフォームのターゲティングでは、2 つの名前をテストする必要があります。たとえば、Apple の Macintosh オペレーティング システムは、User-Agent ヘッダーでは「Macintosh」と表示されますが、クライアント ヒントでは「macOS」と表示されます。次に、source の値に基づいて発生する可能性のあるその他の違いについて説明します。

  • USER_AGENT: version フィールドは、メジャー バージョンに縮小または固定される場合があります。値が凍結されていることを示す表示はありません。
  • CLIENT_HINTS_LOW_ENTROPY: version フィールドには値が設定されません。
  • CLIENT_HINTS_HIGH_ENTROPY: version フィールドは完全なバージョンに設定できます。

モバイル

広告などのコンテンツを小画面やタップ入力用に最適化するかどうかを示します。ただし、モバイル ブラウザは「パソコン向けサイト」をリクエストするように設定できるため、必ずしもデバイスタイプを示すものではありません。

アーキテクチャ

プラットフォームのアーキテクチャ(「x86」や「arm」など)を識別します。

クライアント ヒントを基盤とする UserAgent の場合、sourceCLIENT_HINTS_HIGH_ENTROPY に設定されている場合にのみ入力されます。

ビット数

32 ビット CPU か 64 ビット CPU かなど、プラットフォームのビット数を識別します。このフィールドは、アーキテクチャに関する追加情報を提供する整数文字列です。たとえば、「x86」アーキテクチャでは、ビット数を「32」または「64」に設定できます。

クライアント ヒントを基盤とする UserAgent の場合、sourceCLIENT_HINTS_HIGH_ENTROPY に設定されている場合にのみ入力されます。

モデル

デバイスのモデルを識別します。モバイル デバイス(ノートパソコンやデスクトップではないデバイス)の場合は、「Google Pixel 6 Pro」などのモデル名が入力されます。

source の値に基づいて想定される違いは次のとおりです。

  • USER_AGENT
    • モバイル以外のデバイス: model フィールドには、多くの場合、アーキテクチャとビット数の組み合わせ値(Windows の場合は「x64」など)が含まれます。この値はクロスプラットフォームではありません。たとえば、Linux では同じハードウェアに「x86_64」が使用される場合があります。
    • モバイル デバイス: このフィールドには、アーキテクチャとビット数は含まれません。これらの値に興味がある場合は、UserAgent.architectureUserAgent.bitness をご覧ください。
  • CLIENT_HINTS_LOW_ENTROPY: model フィールドには値が設定されません。
  • CLIENT_HINTS_HIGH_ENTROPY: model フィールドは、モバイル デバイスのデバイスモデルにのみ入力されます。パソコン用プラットフォームには値が設定されていません。

ソース

UserAgent の作成に使用されたヘッダーを識別します。クライアント ヒントの場合、これは次の 2 つのケースを区別します。

  • CLIENT_HINTS_LOW_ENTROPY: 基本的なクライアント ヒントのみが使用できます。
  • CLIENT_HINTS_HIGH_ENTROPY: エントロピーが高いと分類されるフィールドが 1 つ以上含まれるクライアント ヒントが使用可能。