用户代理客户端提示

上次更新: 2023-11-01
  • 主题:
  • Web SDK
    查看有关此主题的更多信息
  • 创建对象:
  • Developer
    User
    Admin
    Leader

概述

每次Web浏览器向Web服务器发出请求时,请求的标题都包含有关浏览器和浏览器运行环境的信息。 所有这些数据都会聚合为一个字符串,称为用户代理字符串。

下面是一个用户代理字符串在请求中的外观示例,该请求来自在上运行的Chrome浏览器 Mac OS 设备。

注意

多年来,用户代理字符串中包含的浏览器和设备信息量增长并多次修改。 以下示例显示了一组最常见的用户代理信息。

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36`
字段
软件名称 Chrome
软件版本 105
完整软件版本 105.0.0.0
版面引擎名称 AppleWebKit
版面引擎版本 537.36
Operating system Mac OS X
操作系统版本 10.15.7
设备 英特尔Mac OS X 10_15_7

用例

长期以来,用户代理字符串一直被用来为营销和开发团队提供有关浏览器、操作系统和设备如何显示网站内容以及用户如何与网站交互的重要见解。

出于其他各种目的,用户代理字符串还用于阻止垃圾邮件并过滤抓取站点的机器人。

Adobe Experience Cloud中的用户代理字符串

Adobe Experience Cloud解决方案以各种方式利用用户代理字符串。

  • Adobe Analytics利用用户代理字符串来补充和获取与用于访问网站的操作系统、浏览器和设备相关的其他信息。
  • Adobe Audience Manager和Adobe Target根据用户代理字符串提供的信息,使最终用户有资格参加分段和个性化活动。

引入用户代理客户端提示

近年来,网站所有者和营销供应商使用用户代理字符串以及请求标头中包含的其他信息来创建数字指纹。 这些指纹可以用作在用户不知情的情况下识别用户的手段。

尽管用户代理字符串对网站所有者具有重要用途,但浏览器开发人员已决定更改用户代理字符串的操作方式,以限制最终用户的潜在隐私问题。

他们开发的解决方案称为 用户代理客户端提示. 客户端提示仍然允许网站收集必要的浏览器、操作系统和设备信息,同时还可以增强对隐蔽跟踪方法(如指纹)的防范。

客户端提示允许网站所有者访问用户代理字符串中提供的许多相同信息,但保护隐私的方式更加严格。

当现代浏览器将用户发送到Web服务器时,无论是否需要,都会在每次请求时发送整个用户代理字符串。 另一方面,客户端提示会强制实施一种模型,其中服务器必须向浏览器询问它想要了解的有关客户端的其他信息。 在收到此请求后,浏览器可以应用自己的策略或用户配置来确定返回的数据。 与默认情况下对所有请求公开整个用户代理字符串不同,现在可以明确且可审核的方式管理访问。

浏览器支持

用户代理客户端提示 引入了 Google Chrome版本89。

其他基于Chromium的浏览器支持客户端提示API,例如:

  • Microsoft Edge
  • Opera
  • Brave
  • Chrome for Android
  • Opera for Android
  • Samsung Internet

类别

用户代理客户端提示分为两类:

低熵客户端提示

低熵客户端提示包括无法用于指纹识别的用户的基本信息。 信息,例如浏览器品牌、平台以及请求是否来自移动设备。

默认情况下,Web SDK中会启用低熵客户端提示,并在每个请求中传递。

HTTP 标头 JavaScript 默认情况下包含在用户代理中 默认情况下包含在客户端提示中
Sec-CH-UA brands
Sec-CH-UA-Platform platform
Sec-CH-UA-Mobile mobile

高熵客户端提示

高熵客户端提示是有关客户端设备的更详细信息,例如平台版本、架构、模型、位(64位或32位平台)或完整操作系统版本。 这些信息可能被用于指纹。

HTTP 标头 JavaScript 默认包含在用户代理中 默认情况下包含在客户端提示中
Sec-CH-UA-Platform-Version platformVersion
Sec-CH-UA-Arc architecture
Sec-CH-UA-Model model
Sec-CH-UA-Bitness Bitness
Sec-CH-UA-Full-Version-List fullVersionList

默认情况下,Web SDK中禁用高熵客户端提示。 要启用它们,您必须手动配置Web SDK以请求高熵客户端提示。

高熵客户端提示对Experience Cloud解决方案的影响

某些Adobe Experience Cloud解决方案在生成报告时依赖高熵客户端提示中包含的信息。

如果您没有在环境中启用高熵客户端提示,则下面描述的Adobe Analytics和Audience Manager报表和特征将不起作用。

Adobe Analytics报告依赖于高熵客户端提示

操作系统 维度包括操作系统版本,该版本存储为高熵客户端提示。 如果未启用高熵客户端提示,则对于从Chromium浏览器收集的点击,操作系统版本可能不准确。

依赖高熵客户端提示的Audience Manager特征

Google 已更新 Chrome 浏览器功能最大限度地减少通过收集的信息 User-Agent 标题。 因此,Audience Manager客户使用 DIL 将不再收到基于以下特征的 平台级别键.

使用平台级别关键值进行定位的Audience Manager客户必须切换到 Experience PlatformWeb SDK 而不是 DIL,并启用 高熵客户端提示 以继续接收可靠的特征数据。

启用高熵客户端提示

要在Web SDK部署中启用高熵客户端提示,您必须包含其他 highEntropyUserAgentHints 上下文选项,如 配置文档,以及您现有的配置。

例如,要从Web属性检索高熵客户端提示,您的配置将如下所示:

context: ["highEntropyUserAgentHints", "web"]

示例

浏览器向Web服务器发出的第一个请求的标头中包含的客户端提示将包含浏览器品牌、浏览器的主要版本以及客户端是否为移动设备的指示器。 每段数据都有自己的标题值,而不是分组到单个用户代理字符串中,如下所示:

Sec-CH-UA: "Chromium";v="101", "Google Chrome";v="101", " Not;A Brand";v="99"

Sec-CH-UA-Mobile: ?0

Sec-CH-UA-Platform: "macOS

等同的 User-Agent 同一浏览器的标题将如下所示:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36

尽管信息类似,但对服务器的第一个请求包含客户端提示。 这些仅包括用户代理字符串中可用内容的子集。 请求中缺少的是操作系统体系结构、完整操作系统版本、版面引擎名称、版面引擎版本和完整浏览器版本。

然而,在随后的请求中, Client Hints API 允许Web服务器询问有关设备的其他详细信息。 在请求这些值时,根据浏览器策略或用户设置,浏览器响应可能包含该信息。

以下是由返回的JSON对象示例 Client Hints API 当请求高熵值时:

{
   "architecture":"x86",
   "bitness":"64",
   "brands":[
      {
         "brand":" Not A;Brand",
         "version":"99"
      },
      {
         "brand":"Chromium",
         "version":"100"
      },
      {
         "brand":"Google Chrome",
         "version":"100"
      }
   ],
   "fullVersionList":[
      {
         "brand":" Not A;Brand",
         "version":"99.0.0.0"
      },
      {
         "brand":"Chromium",
         "version":"100.0.4896.127"
      },
      {
         "brand":"Google Chrome",
         "version":"100.0.4896.127"
      }
   ],
   "mobile":false,
   "model":"",
   "platformVersion":"12.2.1"
}

在此页面上