使用者代理程式 出價要求過去已納入 標頭,提供實用的 指定資料,例如啟動裝置的瀏覽器和平台。不過 由於不易使用,因此瀏覽器經常遮蓋住使用者代理程式。 能進一步保護使用者隱私因此,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.brand
和UserAgent.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 22H2UserAgent.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_AGENT
:version
欄位可縮減為主要版本,或是 凍結 (視代理程式的政策而定)。請注意 表示該值已凍結。CLIENT_HINTS_LOW_ENTROPY
和CLIENT_HINTS_HIGH_ENTROPY
:項目為 並未依據任何條件排序;舉例來說,同一個瀏覽器可能會 將數量設為上限這些文章也可能包含 GREASE 項目, 請忽略。CLIENT_HINTS_HIGH_ENTROPY
:瀏覽器中顯示的所有version
欄位都可以 或是設為完整版本
平台
BrandVersion
這個例子可說明平台這個使用者代理程式可能無法與整個使用者代理程式相容
標頭和用戶端提示,因此如果要指定某些平台,可能需要先進行測試
有兩個名稱例如,Apple 的 Macintosh 作業系統為
將使用者代理程式標頭設為「Macintosh」,但在「Client Hints」中設為「macOS」。
以下說明 指標和 YAML 之間的其他差異
source
的值:
USER_AGENT
:version
欄位可縮減為主要版本,或是 已凍結。請注意,這裡不會顯示該值凍結的跡象。CLIENT_HINTS_LOW_ENTROPY
:系統不會填入version
欄位。CLIENT_HINTS_HIGH_ENTROPY
:version
欄位可設為完整的 版本。
行動裝置
指出是否應該針對小螢幕和/或 觸控輸入。請注意,這不一定是裝置類型的指標, 行動瀏覽器可設為要求「電腦版網站」。
架構
識別平台的架構,例如「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.architecture
和UserAgent.bitness
。
- 非行動裝置:
CLIENT_HINTS_LOW_ENTROPY
:系統不會填入model
欄位。CLIENT_HINTS_HIGH_ENTROPY
:只有以下指標會填入model
欄位: 行動裝置的裝置型號您並未針對電腦平台設定任何值。
來源
識別用於建立 UserAgent
的標頭。針對用戶端提示
這也會區分以下兩種情況:
CLIENT_HINTS_LOW_ENTROPY
:僅提供基本用戶端提示。CLIENT_HINTS_HIGH_ENTROPY
:提供用戶端提示,至少包括 屬於高熵量的類別