@financial-times/cmp-client

中文文档
7.10.2发布于 2026/11/05ESM + CJS近 30 天下载 2538

一个客户端库来帮助您在应用程序中添加一个CMP(目前由Sourcepoint提供).

中文使用文档
文档目录12 节
  1. 安装
  2. 使用脚本标签
  3. 使用国家防范机制一揽子计划
  4. 非FT.com属性上的用法
  5. FT.com 上的用户
  6. 打开隐私管理器
  7. 《议定书》/《公约》缔约方会议的配置方案:
  8. 可用属性( 正在不断更新)
  9. 应对《议定书》/《公约》缔约方会议的活动
  10. 调试
  11. 发展
  12. 分支预览

CMP 客户端

一个客户端库来帮助您在应用程序中添加一个CMP(目前由Sourcepoint提供).

如何运作

(关于相互作用的资料来源)

CMP Client Overview

安装

安装为 < cript> 标记 (建议:

<script async src="https://consent-notice.ft.com/cmp.js"></script>

为了启用开发分支预览(建议),将脚本引用者政策设置如下:

<script async src="https://consent-notice.ft.com/cmp.js" referrerpolicy="no-referrer-when-downgrade"></script>

从国家预防机制安装库:

npm install @financial-times/cmp-client

使用脚本标签

这个 src 属性 script 标记指向在主机页面上设置CMP客户端的立即被引用的函数表达式(IIFE). 当CMP客户端以这种方式安装时,不需要再做更多的工作.

使用这种集成方法的主要好处是,您的用户一旦获得新的更新,就会自动获得CMP客户端的更新,而不是要求版本的突起和应用程序的发布. 然而,要使这种方法成功,主机页必须是我们 注册属性。如果您不确定或想要注册一个财产,请联系 Ads & 隐私小组.

默认情况下,源链接整合了最新版本的CMP客户端. 如果您想要插入不同的版本, 您可以附加 version 查询参数到源链接如下:

<script async src="https://consent-notice.ft.com/cmp.js?version=4.0.0"></script>

使用国家防范机制一揽子计划

[!注] 我们将增加新的属性(即FT组下的网站)及其配置.

如果您认为您的域名需要新属性配置, 请联系 Ads 隐私小组

非FT.com属性上的用法

import {
  initSourcepointCmp,
  properties,
  interceptManageCookiesLinks,
  debug,
} from "@financial-times/cmp-client";

/**
 * Optionally enable debug mode to see CMP events in the console
 */
debug.logCmpEvents();

/**
 * Import your domain's CMP configuration from the `properties` module:
 * e.g. properties.MM_IGNITES_ASIA, properties.SP_THE_BANKER, etc.
 *
 * We will add more domains as we create new properties in Sourcepoint
 *
 * See below for the full list of initialisation options
 */
initSourcepointCmp({
  propertyConfig: properties["YOUR_PROPERTY_CONFIG_KEY"],
  useConsentStore: false, // Specialist Titles _must_ opt out of Single Consent Store
});
/**
 * Optionally enable "Manage Cookies" link util
 */
interceptManageCookiesLinks(properties["YOUR_PROPERTY_CONFIG_KEY"]);

FT.com 上的用户

import {
  initSourcepointCmp,
  properties,
  interceptManageCookiesLinks,
  debug,
} from "@financial-times/cmp-client";

/**
 * Optionally enable debug mode to see CMP events in the console
 */
debug.logCmpEvents();

/**
 * We suggest using a feature flag to disable the existing cookie banner
 * and enable the new one
 */
if (flagsClient.get("adsDisableInternalCMP")) {
  initSourcepointCmp({
    propertyConfig: FT_DOTCOM_TEST,
  });
  interceptManageCookiesLinks();
}

打开隐私管理器

使用 openPrivacyManager 打开应用的隐私管理器而无需导航 到 FT.com 首选项页面 :

import { initSourcepointCmp, openPrivacyManager, properties } from "@financial-times/cmp-client";

initSourcepointCmp({ propertyConfig: properties.FT_DOTCOM_PROD });

manageCookiesButton.addEventListener("click", () => {
  openPrivacyManager();
});

当 CMP 客户端作为静态脚本被加载时, 请使用在 window.FTConsent数字 :

window.FTConsent.cmp.openPrivacyManager();

函数使用传递到的属性配置 initSourcepointCmp 财务报告和审定财务报表 等待源点报告适用的立法,然后打开 隐私经理 当源点等待用户交互时它不会打开 当隐私管理器已经打开或可见时, 并忽略更多呼叫.

《议定书》/《公约》缔约方会议的配置方案:

选项 说明
propertyConfig (源代码Config) 此配置对象会被直接传递到Sourcepoint(我们的外部CMP),并且预设(导入如示例用法)将提供给FT组下的不同属性/标题. 此选项目前默认为 FT_DOTCOM_PROD 预设
userId (弦声) 如果用户为登录用户, 请提供用户ID 。 如果您的应用程序使用 FT 安全会话令牌, 您可以留空并设定 useFTSession 而不是真实的。 默认为 undefined 供匿名用户使用
useFTSession (布尔) 如果您想要用户的 Id 自动从其 FT 安全会话中导出, 请设置此旗帜 。 设定为 false 如果您的应用程序不使用 FT 安全会话 。 默认为 true
consentProxyHost (弦声) 您同意的完全合格的域名代理实例, 例如 https://consent.thebanker.com默认为 https://consent.ft.com
cookieDomain (弦声) FTConsent cookie将适用于例如: .thebanker.com默认为 .ft.com
formOfWordsId (弦声) 您所修改的 IAB 自定义分类可能会在不同的 FOW ID 下跟踪 。 目前,所有自定义类别都按以下方式跟踪: sourcepointCmp 单词形式,默认为 sourcepointCmp/VngD.XycZut.595cp9fWdp5XYP9vlFvk。使用所显示的同意横幅的属性应当使用默认值
useConsentStore (布尔) 指定用户的同意记录是否也应由单一同意存储器支持。 专家头衔等属性需要明确设置到 false 作为 true 是默认行为
disableFTCookies (布尔) 指定用户的同意记录是否应当保存到 FT Cookies 。 不使用 FT Cookie 的专家头衔等属性需要明确设置到 true 作为 false 是默认行为
events (标 题) 内部用于确定供应商提供的CMP模块所排放事件的处理者。 关于如何定义自定义事件处理器的细节,见下文"应对CMP事件"的说明

可用属性( 正在不断更新)

属性密钥 细节
FT_DOTCOM_TEST

使用此配置预设, 在尚未在 Sourcepoint 门户网站注册的属性上测试 CMP .

全体 *.ft.com 正在注册,此配置将窃取您的请求来自 https://local.ft.com

FT_DOTCOM_PROD FT.com域上的所有属性在生产环境中运行的配置预设 - https://*.ft.com
SP_THE_BANKER Banker.com域上的属性配置预设
SP_PWMNET Pwmnet.com域上的属性配置预设
SP_FDI_INTELLIGENCE Fdiintelligence.com域上的属性配置预设
SP_BANKING_RR Bankrisk和regulation.com域上的属性配置预设
SP_SUSTAINABLE_VIEWS 可持续views.com域上的属性配置预设
SP_FT_ADVISER Ftadviser.com域上的属性配置预设
SP_INVESTORS_CHRONICLE 投资者chronicle.co.uk域上的属性配置预设
MM_IGNITES_ASIA 点火sasia.com域上的属性配置预设
MM_IGNITES_EUROPE 点燃seurope.com域上的属性配置预设
SP_MANDATE_WIRE 任务wire.com域上的属性配置预设
SP_FT_LOCATIONS Ftloaces.com 域上的属性配置预设

应对《议定书》/《公约》缔约方会议的活动

如果您需要针对CMP 供应商模块(例如,初始化符合用户所赋予目的的供应商软件包)所引发的事件开展额外工作,您可以通过 window._sp_.addEventListener 方法 :

window._sp_.addEventListener("onMessageReady", (messageType) => {... });
window._sp_.addEventListener("onConsentReady", (legislation, consentUUID, consentString, consentMeta) => { ... });

[!注] 这个 onConsentReady 事件已启动

  1. 一旦CMP 装入完毕, 用户的同意选择即可使用
  2. 随后,每当用户同意的选择发生变化时

见 源点文件 完整列出您可以聆听的事件和向召回的参数.

调试

您可以使用 logCmpEvents 导出的方法 debug 模块 :

import { debug } from "@financial-times/cmp-client";

debug.logCmpEvents();

如果一切正常,你就会看到CMP模块 记录其生命周期事件到控制台, 即使它的UI没有显示。 。 。 .

这很容易发生 当你做了一个事先同意的选择 而CMP现在从本地存储。 为此,我们建议在开发期间在无人知晓的窗口中运行.

[!注] 请确保您的应用程序始终使用最新的 CMP 客户端库 .

您可以通过运行浏览器控制台中的以下操作来检查您的活应用程序所使用的版本 :

window.FT_CMP_CLIENT_VERSION

发展

如果你能接触到Github上的线人 你可以看看 参考执行 src/examples/cmp-client。 。 。 .

要在浏览器中看到演示, 请运行 :

npm run dev -w src/examples/cmp-client

访问 https://localhost: 5173 (请参见设置详情) src/examples/cmp-client)与横幅互动,看如何相应设置饼干

重置您的同意 cookie/record 和其他常见的故障排除问题, 请参看 解决问题指南

分支预览

在使用静态加载器脚本且配置如上描述的耗用应用程序中,也可以预览您分支上的更改. 附录a cmp_preview 查询参数如下, 其值设定为分支承诺散列的前七个位数 。 在基于 Git 的 VCS UI 中或使用时,这很容易获得 git rev-parse --short HEAD。然后作为附件附上: https://ft.com?cmp_preview=<SHORT_COMMIT_SHA>

资源

对于静态部署过程如何运作的详细深度(仅内部)设计 此处记录。如果需要允许访问,请联系Ads & Prive团队.

版本与发布记录

@financial-times/cmp-client 共发布 133 个版本,首次发布于 2023/10/24;过去 12 个月发布了 65 个版本。

版本发布日期距今
7.10.2latest2026/11/059 天前
7.10.12026/11/0410 天前
7.10.02026/10/2124 天前
7.9.22026/10/1629 天前
7.9.12026/10/1629 天前
7.9.02026/10/091 个月前

其他发布通道:pre-release → 5.2.1-beta.6。

关于 @financial-times/cmp-client 的常见问题

@financial-times/cmp-client 是什么?

一个客户端库来帮助您在应用程序中添加一个CMP(目前由Sourcepoint提供).

如何安装 @financial-times/cmp-client?

在项目目录运行 npm install @financial-times/cmp-client,或使用 pnpm add / yarn add / bun add。

@financial-times/cmp-client 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/financial-times__cmp-client 是否存在。

@financial-times/cmp-client 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@financial-times/cmp-client 可以商用吗?

@financial-times/cmp-client 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@financial-times/cmp-client 的下载量有多少?

根据 npm 官方下载统计,@financial-times/cmp-client 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,538 次,日均约 85 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@financial-times/cmp-client 还在维护吗?

最新版本 7.10.2 发布于 2026/11/05(9 天前);至今共发布 133 个版本,其中过去 12 个月发布了 65 个;首次发布于 2023/10/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。