これまで、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.brand
とUserAgent.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_ENTROPY
とCLIENT_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
の場合、source
が CLIENT_HINTS_HIGH_ENTROPY
に設定されている場合にのみ入力されます。
ビット数
32 ビット CPU か 64 ビット CPU かなど、プラットフォームのビット数を識別します。このフィールドは、アーキテクチャに関する追加情報を提供する整数文字列です。たとえば、「x86」アーキテクチャでは、ビット数を「32」または「64」に設定できます。
クライアント ヒントを基盤とする UserAgent
の場合、source
が CLIENT_HINTS_HIGH_ENTROPY
に設定されている場合にのみ入力されます。
モデル
デバイスのモデルを識別します。モバイル デバイス(ノートパソコンやデスクトップではないデバイス)の場合は、「Google Pixel 6 Pro」などのモデル名が入力されます。
source
の値に基づいて想定される違いは次のとおりです。
USER_AGENT
- モバイル以外のデバイス:
model
フィールドには、多くの場合、アーキテクチャとビット数の組み合わせ値(Windows の場合は「x64」など)が含まれます。この値はクロスプラットフォームではありません。たとえば、Linux では同じハードウェアに「x86_64」が使用される場合があります。 - モバイル デバイス: このフィールドには、アーキテクチャとビット数は含まれません。これらの値に興味がある場合は、
UserAgent.architecture
とUserAgent.bitness
をご覧ください。
- モバイル以外のデバイス:
CLIENT_HINTS_LOW_ENTROPY
:model
フィールドには値が設定されません。CLIENT_HINTS_HIGH_ENTROPY
:model
フィールドは、モバイル デバイスのデバイスモデルにのみ入力されます。パソコン用プラットフォームには値が設定されていません。
ソース
UserAgent
の作成に使用されたヘッダーを識別します。クライアント ヒントの場合、これは次の 2 つのケースを区別します。
CLIENT_HINTS_LOW_ENTROPY
: 基本的なクライアント ヒントのみが使用できます。CLIENT_HINTS_HIGH_ENTROPY
: エントロピーが高いと分類されるフィールドが 1 つ以上含まれるクライアント ヒントが使用可能。