指定使用者代理程式

使用者代理程式 出價要求過去已納入 標頭,提供實用的 指定資料,例如啟動裝置的瀏覽器和平台。不過 由於不易使用,因此瀏覽器經常遮蓋住使用者代理程式。 能進一步保護使用者隱私因此,Google 支援 使用者代理程式用戶端提示, ,可補充「使用者代理程式」標頭。 這些用戶端提示 (簡稱) 可以從 Sec-Ch-UA* 標頭或 擷取及寫入資料

視所使用的通訊協定而定,User-Agent 標頭會 下列字串欄位:

  • OpenRTB:BidRequest.device.ua
  • Google RTB (已淘汰):BidRequest.user_agent

系統會為 UserAgent 訊息填入用戶端提示 但在其他情況下,則會依據從 使用者代理程式標頭。視使用的通訊協定而定,這個 ID 會顯示為一個 以下欄位:

  • OpenRTB:BidRequest.device.sua
  • Google RTB (已淘汰):BidRequest.user_agent_data

強烈建議出價方使用 UserAgent 訊息,而非 使用者代理程式字串。

UserAgent 的填入方式

與 User-Agent 標頭不同,UserAgent 訊息代表使用者代理程式 將資訊細分為多個欄位,方便查看特定資訊

視廣告請求中是否提供用戶端提示而定, 可透過下列方式填入 UserAgent 訊息:

  • 如果請求包含 低熵 「用戶端提示」,系統會根據其內容填入 UserAgent
  • 如果要求中只包含 User-Agent 標頭,UserAgent 會是 要根據從標頭剖析的內容來填入
,瞭解如何調查及移除這項存取權。

範例:根據使用者代理程式標頭填入 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

範例:根據用戶端提示填入 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

設有至少低熵用戶端提示的情況時,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

根據「使用者代理程式」標頭和用戶端提示來填入

部分欄位的填入方式取決於欄位是否填寫資料 「使用者代理程式」標頭或「用戶端提示」以下摘要說明 差異:

  • 相同的瀏覽器和平台:UserAgent.browsers.brandUserAgent.platform.brand 每個 UserAgent 通常因為 「使用者代理程式」標頭或「用戶端提示」例如: UserAgent.platform.brand 可能會顯示「Windows NT」 若是以「Client-Agents」為基礎,則輸入「Windows」。
  • 部分 UserAgent.browsers 項目屬於 User-Agent 標頭或 「用戶端提示」例如,假設 UserAgent 顯示「AppleWebKit」, 與 User-Agent 標頭為依據,而「Chromium」 若以「用戶端提示」為基礎
  • 只有以 User-Agent 標頭為依據的 UserAgent 才能包含凍結值。 例如,如果平台是 Windows 11 22H2 UserAgent.platform.brand 會設為「Windows NT」, UserAgent.platform.version 會設為 [“10”, “0”],因為 超過 10 的 Windows 版本的凍結值。

以「用戶端提示」為基礎的「UserAgent」資料通常不會 以不正確的方式取代凍結或遮蓋資訊。如果有任何 User-Agent 標頭與基於用戶端的 UserAgent 不一致 建議最好採用來自 UserAgent 的資訊。

使用者代理程式物件欄位

本節概述各欄位,並著重於 Google 即時出價相關 行為及最佳做法

瀏覽器

包含指定 BrandVersion 項目通常按照專有程度排序 列出 browsers 的內容,每個項目的 brand 可能都會顯示 順序:

品牌 意義
Mozilla 與 Mozilla 相容
AppleWebKit 以 AppleWebKit 為基礎,是 Mozilla 的子集。
Chrome Chrome 瀏覽器 (與 AppleWebKit 相容的部分瀏覽器)
Safari 桌機變化版本,而非行動裝置。

UserAgent 不一定會以任何特定順序列出瀏覽器,尤其是 以「用戶端提示」為基礎以下說明其他差異 您預期看到的是 source 的值:

  • USER_AGENTversion 欄位可縮減為主要版本,或是 凍結 (視代理程式的政策而定)。請注意 表示該值已凍結。
  • CLIENT_HINTS_LOW_ENTROPYCLIENT_HINTS_HIGH_ENTROPY:項目為 並未依據任何條件排序;舉例來說,同一個瀏覽器可能會 將數量設為上限這些文章也可能包含 GREASE 項目, 請忽略。
  • CLIENT_HINTS_HIGH_ENTROPY:瀏覽器中顯示的所有 version 欄位都可以 或是設為完整版本

平台

BrandVersion 這個例子可說明平台這個使用者代理程式可能無法與整個使用者代理程式相容 標頭和用戶端提示,因此如果要指定某些平台,可能需要先進行測試 有兩個名稱例如,Apple 的 Macintosh 作業系統為 將使用者代理程式標頭設為「Macintosh」,但在「Client Hints」中設為「macOS」。 以下說明 指標和 YAML 之間的其他差異 source 的值:

  • USER_AGENTversion 欄位可縮減為主要版本,或是 已凍結。請注意,這裡不會顯示該值凍結的跡象。
  • CLIENT_HINTS_LOW_ENTROPY:系統不會填入 version 欄位。
  • CLIENT_HINTS_HIGH_ENTROPYversion 欄位可設為完整的 版本。

行動裝置

指出是否應該針對小螢幕和/或 觸控輸入。請注意,這不一定是裝置類型的指標, 行動瀏覽器可設為要求「電腦版網站」。

架構

識別平台的架構,例如「x86」或「arm」。

針對以用戶端提示為基礎的 UserAgent,系統只會填入這項資訊 當 source 設為 CLIENT_HINTS_HIGH_ENTROPY 時。

位元

識別平台的位元,例如其是否支援 32 位元或 64 位元 也就是 CPU這個欄位是整數字串,提供關於 架構;例如,「x86」架構可以設為 「32」或「64」

針對以用戶端提示為基礎的 UserAgent,系統只會填入這項資訊 當 source 設為 CLIENT_HINTS_HIGH_ENTROPY 時。

型號

用於識別裝置型號。如果是行動裝置,也就是不要使用筆記型電腦或 這會填入型號名稱,例如「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_LOW_ENTROPY:僅提供基本用戶端提示。
  • CLIENT_HINTS_HIGH_ENTROPY:提供用戶端提示,至少包括 屬於高熵量的類別