> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kontext.so/llms.txt
> Use this file to discover all available pages before exploring further.

# TCF 与 CMP

> SDK 如何自动从你的 CMP 读取 IAB TCF v2.2 consent，以及通过 regulatory 对象进行手动控制的方式。

## TCF 是什么

**IAB Transparency and Consent Framework（TCF）** 是欧盟 / 英国广告技术领域用于收集与传递 GDPR consent 的标准。发布方展示同意弹窗，用户选择允许的内容，结果被编码为一个 **TCF v2.2 consent 字符串**。下游所有广告合作方——包括 Kontext——都会读取该字符串，据此判断可以如何使用用户的数据。

## CMP 是什么

**CMP（Consent Management Platform，同意管理平台）** 是负责展示同意弹窗并产出 TCF 字符串的工具。CMP 会把该字符串写入一个所有兼容 TCF 的 SDK 都能读取的标准存储位置。

如果你的应用面向欧盟或英国用户，你需要一个 CMP：

* **GDPR 与英国数据保护法要求获得明确的同意** 才能进行个性化广告投放。没有 CMP，你就无法合法地收集这种同意。
* **没有有效的 TCF 字符串会导致填充率下降。** 大多数 DSP 不会对没有 consent 信号的流量出价——或者只会以最低价做纯上下文相关广告。
* **这是发布方的责任，不是 SDK 的责任。** Kontext SDK 不自带同意弹窗，需要你自己接入一个 CMP。

任何在 IAB 注册的 CMP 都可以——OneTrust、Sourcepoint、CookieBot / Usercentrics、Didomi 等。

## SDK 自动读取 TCF

一旦你接入了兼容 TCF 的 CMP 并且用户完成了同意流程，SDK 会通过各平台的标准 IAB 接口读取 consent 字符串：

* **iOS** —— `UserDefaults` 中的标准 key（`IABTCF_TCString`、`IABTCF_gdprApplies` 等）
* **Android** —— `SharedPreferences` 中的同名 key
* **Web** —— CMP 暴露的 `__tcfapi` window 函数

你不需要手动转发——`gdpr` 与 `gdprConsent` 会在每次 `/preload` 时被自动带上。

## 手动覆盖：regulatory 对象

如果你还没有接入 CMP、想要覆盖 SDK 自动读取的值、或者需要设置 TCF 范围之外的字段（COPPA、GPP、US Privacy），可以使用 session 上的 **regulatory 对象**。完整字段见 [合规](/resources/compliance)。常见场景：

* **暂未接入 CMP** —— 在你接入 CMP 之前手动传入 `gdpr` 与 `gdprConsent`。
* **COPPA** —— 面向儿童的流量请设置 `coppa: 1`。TCF 不覆盖这个信号。
* **美国隐私 / GPP** —— 针对美国州法可传入 `usPrivacy`、`gpp` 或 `gppSid`。
