> ## 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 同意，以及如何自行设置同意。

## TCF

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

## CMP

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

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

* **GDPR 和英国数据保护法要求明确的同意**才能进行个性化广告投放。没有 CMP，你无法合法地收集它。
* **没有有效的 TCF 字符串，填充率会下降。** 大多数广告主不会对没有同意信号的流量出价，或只以最低价购买纯情境广告位。
* **这是发布方的责任。** 视频 SDK 不自带同意弹窗；需要你自己接入一个 CMP。

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

## SDK 自动读取 TCF

一旦接入了兼容 TCF 的 CMP 并且观众完成了同意流程，SDK 会通过各平台的标准 IAB 存储读取同意字符串：iOS 上的 `UserDefaults` 键（`IABTCF_TCString`、`IABTCF_gdprApplies` 等），Android 上的 `SharedPreferences`。你不需要转发任何东西；每次广告请求都携带当前值。

## 自行设置同意

没有 CMP，或需要 TCF 之外的信号时，在共享实例上设置 `regulatory`。每个字段都是可选的；下一次请求携带你设置的值，来自 CMP 的值优先于这里设置的值。

```swift theme={null}
KontextVideo.shared.regulatory = .init(
    gdpr: true,
    gdprConsent: "<TCF string>",
    coppa: false,
    gpp: "<GPP string>",
    gppSid: [7],
    usPrivacy: "1YNN"
)
```

* **暂未接入 CMP**：在接入之前设置 `gdpr` 和 `gdprConsent`。
* **COPPA**：面向儿童的流量设置 `coppa: true`。TCF 不覆盖它，设备也无法判断。
* **美国隐私与 GPP**：针对美国州法使用 `usPrivacy`、`gpp` 和 `gppSid`。

完整情况见[合规](https://docs.kontext.so/zh/video/resources/compliance.md)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.