如果发布商或用户需要加强隐私保护,Google 可能会 减少用户代理字段中提供的信息量。当 因此系统会将这些用户代理表示法视为 泛化处理。
广义的用户代理表示法可通过以下方式增强隐私保护: 可能会将特定浏览器或设备与 其他浏览器或设备。
概览
出价请求中包含两种形式的用户代理信息:
User-Agent
字符串和 UserAgent
对象
(Google 协议、
OpenRTB).
这两个字段都包含相应请求的用户代理提供的信息
HTTP 标头。
非通用化用户代理可以包含精细的浏览器和操作系统 以及以泛化形式缩减过来的详细数据, 用户代理。
泛化可向后兼容进行浏览器和设备类型检测。
出价请求会指明用户代理字段是否已泛化
PrivacyTreatments
字段(Google 协议、
OpenRTB).
已泛化的 UserAgent 对象
在通用的 UserAgent
中,所有 browser
条目中的 version
字段
从 platform
缩减为仅包含主要版本,
用零替换任何更精细的版本组件。无其他信息
UserAgent
对象中的 Pod 被移除。
以下示例将 UserAgent.browser
的原始内容与
其广义形式:
原图
brand: "Chrome" version: ["96", "0", "4664", "92"]
泛化
brand: "Chrome" version: ["96", "0", "0", "0"]
Google 并不会总是泛化浏览器和平台版本,尤其是
完整版本被浏览器冻结时触发。例如,以下
值“UserAgent.browser
”不会被修改:
brand: "AppleWebKit" version: ["537", "36"]
。
在对 UserAgent
对象进行泛化后,出价请求还会包含
PrivacyTreatments
对象中的 user_agent_data
字段:
Google 协议
BidRequest.privacy_treatments: { user_agent_data: USER_AGENT_DATA_COARSENED }
OpenRTB 协议
BidRequest.ext.privacy_treatments: { user_agent_data: USER_AGENT_DATA_COARSENED }
已泛化的 User-Agent
字符串
在通用的 User-Agent
字符串中,浏览器和平台标识符为
简化为仅主要版本。例如:"Chrome/96.0.4664.92"
会变为 "Chrome/96.0.0.0"
。冻结版本组件,例如
"AppleWebKit/537.36"
等。这些更改相当于
对 UserAgent
对象的说明。
与 user-Agent
字符串、某些详细信息或非标准元素是唯一的
也可能会被隐去,例如设备的 build 或固件版本;或者
某些应用专属数据,通常添加在字符串末尾。
以下示例比较了 User-Agent
字符串的原始内容
扩展为通用形式:
原图
Mozilla/5.0 (Linux; Android 11; M2007J20CG Build/RKQ1.200826.002; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
Chrome/96.0.4664.92 Mobile Safari/537.36 [MyApp:CustomSignals:ABC123]
泛化
Mozilla/5.0 (Linux; Android 11; M2007J20CG; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
Chrome/96.0.0.0 Mobile Safari/537.36
在对 User-Agent
字符串进行泛化后,出价请求会包含
PrivacyTreatments
对象中的 user_agent
信号:
Google 协议
BidRequest.privacy_treatments: { user_agent: USER_AGENT_COARSE }
OpenRTB 协议
BidRequest.ext.privacy_treatments: { user_agent: USER_AGENT_COARSE }
Google 使用类似的方法来泛化 User-Agent
字符串和
UserAgent
对象。因此,通用的 User-Agent
字符串和
通用的 UserAgent
对象都携带了类似数量的信息。