Consent Ready API

只需添加一次 UniConsent 标签并填入您的许可证密钥。该标签会立即定义两个函数,然后在后台加载完整的 CMP。

<script src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>

您可以在安装与设置部分找到许可证密钥。完整的安装指南(包括面向现有安装的经典两段式标签)请参阅安装 UniConsent 网页标签

unicReady(callback)

在同意状态最终确定时触发一次。

  • GDPR:用户做出选择后,或已存储的选择被恢复后。
  • CCPA / 美国各州法律 / 其他退出制(opt-out)地区:CMP 加载完成后立即触发。

如果在触发之后才订阅,回调会立即执行。

unicReady(function (status) {
  if (status.UNIC_P_1) {
    loadAnalytics();
  }
});

unicUpdate(callback)

unicReady 同时触发,之后每次同意状态变化时再次触发(例如用户重新打开设置并更改某个目的)。 延迟订阅会立即以当前状态回调,之后每次变化时再次回调。未改变任何内容的保存会被忽略。

unicUpdate(function (status) {
  applyConsent(status);
});

DOM 事件

相同的数据会以 unic:readyunic:update 的形式在 window 上派发。 请在标签之前注册监听器,以便事件触发时监听器已经存在。

window.addEventListener('unic:update', function (e) {
  applyConsent(e.detail);
});

同步加载

将您的代码放在标签之后的任意位置即可,无需其他配置。

<script src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
<script>
  unicReady(function (status) { /* 同意状态已最终确定 */ });
  unicUpdate(function (status) { /* 每次变化 */ });
</script>

异步加载

使用 async 时,您的内联代码可能在标签之前执行。请添加下面两行队列保护代码,这样提前发出的调用会在标签加载后被重放。

<script async src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
<script>
  window.unicReady  = window.unicReady  || function (cb) { (window.unicReady.q  = window.unicReady.q  || []).push(cb); };
  window.unicUpdate = window.unicUpdate || function (cb) { (window.unicUpdate.q = window.unicUpdate.q || []).push(cb); };

  unicReady(function (status) { /* 同意状态已最终确定 */ });
  unicUpdate(function (status) { /* 每次变化 */ });
</script>

状态对象

字段类型含义
IS_LOADboolean同意状态已最终确定,可以加载标签
LOCstring检测到的用户位置
GEOstring适用规则的地区,无适用规则时为 N
EU, US, CA, BR, CN, Nboolean适用的地区标志
NPA0 或 1为 1 时仅应投放非个性化广告
customVendorsobject自定义供应商 ID 到布尔同意值的映射
UNIC_P_1UNIC_P_10booleanTCF 目的 1 至 10(仅 GDPR)
UNIC_SF_1, UNIC_SF_2booleanTCF 特殊功能(仅 GDPR)
UNIC_EP_1UNIC_EP_4boolean扩展目的(仅退出制地区)

注意事项

  • unicReadyunicUpdatewindow 上的保留名称。请勿将这些名称用于其他用途的函数。
  • 回调被包裹在 try/catch 中。某个回调出错不会影响其他回调。
  • 两个函数都可接受任意数量的订阅者。
  • 如果页面上已经存在 CMP 脚本,该标签会自动忽略自身。
  • 该标签会设置 Google Consent Mode 默认值:所有存储均为 denied,wait_for_update 为 3 秒。如果您已自行设置 Consent Mode 默认值,请将其放在该标签之后,否则会被覆盖。

相关文档

还有疑问?

联系我们:support@uniconsent.com