Consent 授权
按「行为 / 错误 / 性能」三维管理采集授权,满足隐私合规(GDPR 端侧)。
可在 Playground · Consent 授权 在线体验授权驱动的插件启停。
如何使用
在用户做出隐私选择后,调用 updateConsent 启停对应采集:
ts
// 用户在 Cookie 弹窗里关闭了「行为分析」
trace.updateConsent({ tracking: false });
// 用户撤回全部授权
trace.revokeConsent();
// 读取当前授权状态
trace.consentState; // { tracking, errors, performance, updated_at }三维授权
每一维对应一个 opt-in 采集插件;归因(attribution)与身份(identity)不受 Consent 管控,始终采集。
| 维度 | 受控插件 | 关闭后 |
|---|---|---|
tracking | TrackingPlugin(行为埋点) | teardown,行为不再采集 |
errors | ErrorPlugin(错误收集) | teardown,错误不再采集 |
performance | PerformancePlugin(性能收集) | teardown,性能不再采集 |
API 说明
trace.consentState
- 含义与作用:当前授权状态快照。
- 类型:
get consentState: ConsentState,即{ tracking: boolean; errors: boolean; performance: boolean; updated_at: number }。
trace.updateConsent(partial)
- 含义与作用:更新指定维度,差量启停受控插件(新授权 → setup 对应插件;撤销 → teardown)。
- 类型:
(partial: Partial<Record<'tracking' | 'errors' | 'performance', boolean>>) => void。 - 注意:只需传变化的维度,未传的维度保持不变。
trace.revokeConsent()
- 含义与作用:撤销全部授权(GDPR 端侧部分):teardown 全部受控插件 + 清空端侧队列与持久化快照。
- 类型:
() => void。 - 注意:服务端历史数据删除归网关 / 合规服务,本方法只负责端侧。
实现原理
- 授权状态持久化在 localStorage;
init()时读回,无则用合规默认值。 updateConsent/revokeConsent会广播内部consent.changed信令,并驱动插件注册表差量启停——只动发生变化的维度,不全量重建。- 未授权维度对应的业务 API 调用走静默 no-op(不硬拦截、不报错)。
注意事项
- 当前合规默认值为「全开」:无本地状态时
tracking/errors/performance默认true(最终默认开/关、是否分地域由产品 / 法务拍板,是单点常量)。 - 未授权时 API 安全 no-op:如未授权
tracking时调trace.track(...),静默跳过、不报错。 - 归因 / 身份不受管控:它们是基础采集能力,不随 Consent 开关变化。