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

従来、開始デバイスのブラウザやプラットフォームなどの有用なターゲティング データを提供するために、User-Agent ヘッダーが入札リクエストに含まれていました。しかし、ユーザー エージェントは使用しづらいことから、ユーザーのプライバシー保護を強化するため、ブラウザはしばしばユーザー エージェントを大量に秘匿化しています。これを受けて、Google は User-Agent Client Hints をサポートしています。これは、User-Agent ヘッダーを補完するために利用できる場合に、入札リクエストに含まれます。これらの Client Hints(略して)は、Sec-Ch-UA* ヘッダーまたは JavaScript Client Hints API から取得できます。

使用するプロトコルに応じて、User-Agent ヘッダーは次のいずれかの文字列フィールドで公開されます。

  • Google: BidRequest.user_agent
  • OpenRTB: BidRequest.device.ua

UserAgent メッセージには、Client Hints が利用可能な場合は入力されますが、それ以外の場合は User-Agent ヘッダーから解析された値に基づいて入力されます。使用されるプロトコルに応じて、次のいずれかのフィールドとして公開されます。

  • Google: BidRequest.user_agent_data
  • OpenRTB: BidRequest.device.sua

ビッダーには、ユーザー エージェント文字列ではなく UserAgent メッセージを使用することを強くおすすめします。

UserAgent の入力方法

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

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

  • リクエストに低エントロピーの Client Hints が少なくとも 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

ユーザー エージェント ヘッダーに基づく入力と Client Hints による入力

一部のフィールドは、User-Agent ヘッダーと Client Hints のどちらに基づいて設定されるかによって異なります。違いの概要を以下に示します。

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

通常、Client Hints に基づく UserAgent のデータは、凍結または除去された情報の不正確な置き換えにはなりません。Client Hints に基づく User-Agent ヘッダーと UserAgent の間に不整合がある場合は、UserAgent からの情報が優先されます。

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

このセクションでは、Google RTB 固有の動作とおすすめの方法を中心に、各フィールドの概要を説明します。

ブラウザ

通常、具体的な順に並べられた BrandVersion エントリのリストが含まれています。たとえば、browsers の内容をリストする場合、各エントリの brand は次の順序で表示されます。

ブランド 意味
Mozilla Mozilla 互換
AppleWebKit AppleWebKit ベース(Mozilla のサブセット)です。
Chrome Chrome ブラウザ(AppleWebKit 互換ブラウザのサブセット)
Safari モバイルではなく PC 版。

UserAgent は、特に Client Hints に基づく場合は、ブラウザを常に特定の順序で一覧表示するわけではありません。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 オペレーティング システムは、ユーザー エージェント ヘッダーでは「Macintosh」とブランドされますが、Client Hints では「macOS」とブランド名が付けられます。source の値に基づいて想定されるその他の違いは次のとおりです。

  • USER_AGENT: version フィールドは、メジャー バージョンに縮小されるか、固定されます。値が固定されるとは限りません。
  • CLIENT_HINTS_LOW_ENTROPY: version フィールドには値が入力されません。
  • CLIENT_HINTS_HIGH_ENTROPY: version フィールドは完全バージョンに設定できます。

モバイル

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

アーキテクチャ

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

Client Hints に基づく UserAgent の場合は、sourceCLIENT_HINTS_HIGH_ENTROPY に設定されている場合にのみ入力されます。

ビット

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

Client Hints に基づく 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 の作成に使用されたヘッダーを示します。Client Hints では、次の 2 つのケースも区別されます。

  • CLIENT_HINTS_LOW_ENTROPY: 基本的な Client Hints のみ使用できます。
  • CLIENT_HINTS_HIGH_ENTROPY: 高エントロピーとして分類されるフィールドが 1 つ以上あるなど、Client Hints を使用できます。