自定义用途

自定义用途允许您定义超出标准 IAB TCF 用途和 Google Consent Mode 类型的自定义同意用途。它们会显示在同意界面中,与 TCF 同意分开存储,并且可以通过 JavaScript API 查询或与 UnicScript 标签加载配合使用。

设置自定义用途

1. 启用自定义用途

  1. 登录 UniConsent 控制面板。
  2. 导航至 同意收集 -> 同意管理器,选择您的网站。
  3. 进入 步骤 4:高级功能
  4. 启用自定义用途 切换为开启。
  5. 点击 保存更改

2. 定义自定义用途

  1. 启用后,将出现一个新的 自定义用途 选项卡。
  2. 点击 自定义用途 选项卡。
  3. 点击 添加自定义用途 创建新用途。
  4. 填写:
    • ID:唯一标识符字符串(例如 custom_analyticsab_testingnewsletter_tracking)。此 ID 用于存储、dataLayer、标签加载和 API 查询。
    • 名称:在同意界面中向用户显示的名称(例如"自定义分析")。
    • 描述:用户点击用途时显示的详细说明。
  5. 点击 保存更改,然后 发布 以部署。

您可以添加多个自定义用途,每个用途必须有唯一的 ID。

自定义用途的工作原理

  • 自定义用途与标准用途一起显示在同意界面中。用户可以单独切换每个用途。
  • 同意状态存储在单独的存储键(__unic_custom_consent)中,独立于 TCF 同意字符串和 Google Consent Mode。
  • 当用户点击"全部同意"时,所有自定义用途都会被授权。当用户点击"全部拒绝"时,所有用途都会被拒绝。
  • 自定义用途适用于所有法律框架:GDPR、TCF Canada、CCPA、US State Privacy、简单模式(EZ)、LGPD、PIPL 和 POPIA。

JavaScript API

查询自定义同意状态

使用 getCustomConsent 获取所有自定义用途的当前同意状态:

__tcfapi('getCustomConsent', 2, function(data, success) {
  if (success) {
    console.log(data);
    // 示例输出:{ "custom_analytics": true, "ab_testing": false }
  }
});

或使用 __unicapi 别名:

__unicapi('getCustomConsent', 2, function(data, success) {
  if (success) {
    if (data['custom_analytics']) {
      // 自定义分析同意已授权
    }
  }
});

通过 DataLayer 访问

自定义用途同意状态以 UNIC_CP_{id} 的形式推送到 dataLayer:

(function waitCMP() {
  var readyCMP;
  if (!readyCMP && window['dataLayer']) {
    window['dataLayer'].forEach(function(event) {
      if (event['event'] === 'unic_data') {
        readyCMP = 1;
        console.log(event['UNIC_CP_custom_analytics']); // true 或 false
        console.log(event['UNIC_CP_ab_testing']);        // true 或 false
      }
    });
  }
  if (!readyCMP) {
    setTimeout(waitCMP, 100);
  }
})();

UnicScript 标签加载

您可以使用 unic-cp-idunic-cp-ids 属性,根据自定义用途的同意状态有条件地加载脚本和 iframe。

加载单个自定义用途的脚本

<script type="text/unicscript" unic-cp-id="custom_analytics">
  console.log('自定义分析同意已授权');
</script>

加载外部脚本

<script type="text/unicscript" unic-cp-id="custom_analytics" src="https://example.com/analytics.js"></script>

加载多个自定义用途的脚本

所有指定的用途都必须获得同意才能加载脚本:

<script type="text/unicscript" unic-cp-ids="custom_analytics,ab_testing">
  console.log('两个自定义用途均已同意');
</script>

加载自定义用途的 Iframe

<iframe
  data-unicscript
  unic-cp-id="custom_analytics"
  width="560"
  height="315"
  data-src="https://example.com/widget"
  frameborder="0"
></iframe>

Google Tag Manager 集成

在 GTM 中,您可以使用 dataLayer 变量 UNIC_CP_{id} 创建基于自定义用途同意的触发器:

  1. 在 GTM 中创建一个 数据层变量,名称为 UNIC_CP_custom_analytics
  2. 创建一个 触发器,当 UNIC_CP_custom_analytics 等于 true 时触发。
  3. 将触发器附加到您要控制的标签上。

存储

自定义同意数据存储在 localStorage(Web)或原生键值存储(移动应用)中的 __unic_custom_consent 键下。格式为:

{
  "custom_analytics": true,
  "ab_testing": false
}

当用户通过 CMP 重置同意时,自定义同意数据会被清除。

还有问题?

联系我们:support@uniconsent.com