# 消费者隐私法合规性

> 遵守各类消费者隐私法。为用户提供拒绝数据收集和个性化广告的选项，并尊重他们的数据隐私权。

## Unity Ads SDK 支持的隐私框架##supported-privacy-frameworks-by-the-unity-ads-sdk

所有版本的 Unity Ads SDK 都符合以下消费者隐私行为：

* 《加州消费者隐私法》(CCPA) 于 2019 年 1 月在加州生效。
* 《巴西通用数据保护法》(LGPD) 于 2021 年 8 月生效。
* 《弗吉尼亚州消费者数据隐私法》(VCDPA) 于 2023 年 1 月在弗吉尼亚州生效。
* 《科罗拉多州隐私法》(CPA) 于 2023 年 7 月在科罗拉多州生效。
* 《康涅狄格州数据隐私法》(CTDPA) 于 2023 年 7 月在康涅狄格州生效。
* Quebec Law 25 (QCLAW25) 于 2023 年 9 月在加拿大魁北克省生效。
* 《犹他州消费者隐私法》(UCPA) 于 2023 年 12 月在犹他州生效。
* 《佛罗里达州数字权利法案》(FDBR) 于 2024 年 7 月在佛罗里达州生效。
* 《俄勒冈州消费者隐私法》(OCPA) 于 2024 年 7 月在俄勒冈州生效。
* 《德克萨斯州数据隐私和安全法》(TDPSA) 于 2024 年 7 月在德克萨斯州生效。
* 《蒙大拿州消费者数据隐私法》(MCDPA) 于 2024 年 10 月在蒙大拿州生效。
* 《爱荷华州消费者数据保护法》(ICDPA) 于 2025 年 1 月 1 日在爱荷华州生效。
* 《内布拉斯加州数据隐私法》(NDPA) 于 2025 年 1 月 1 日在内布拉斯加州生效。
* 《新罕布什尔州数据隐私法》(NHDPA) 于 2025 年 1 月 1 日在新罕布什尔州生效。
* 《特拉华州个人数据隐私法》(DPDPA) 于 2025 年 1 月 1 日在特拉华州生效。
* 《新泽西州数据隐私法》(NJDPA) 于 2025 年 1 月 16 日在新泽西州生效。
* 《田纳西州信息保护法》(TIPA) 于 2025 年 7 月 1 日在田纳西州生效。
* 《明尼苏达州消费者数据隐私法》(MNCDPA) 于 2025 年 7 月 31 日在明尼苏达州生效。
* 《马里兰州在线数据隐私法》(MODPA) 于 2025 年 10 月 1 日在马里兰州生效。
* 《罗德岛州数据透明度和隐私保护法》(RIDTPPA) 于 2026 年 1 月 1 日在罗德岛州生效。
* 《肯塔基州消费者数据保护法》(KCDPA) 于 2026 年 1 月 1 日在肯塔基州生效。
* 《印第安纳州消费者数据保护法》(ICDPA) 于 2026 年 1 月 1 日在印第安纳州生效。

访问我们的法务站点以了解有关 [Unity 的隐私方法](https://unity.com/legal)的更多信息。

## 实现自定义同意解决方案##implement-a-custom-consent-solution

如果在应用中实现自定义同意解决方案，必须将用户的同意状态发送给 Unity Ads SDK。

### 使用 Developer Consent API 实现自定义同意##custom-consent-implementation-using-developer-consent-api

如果发行商或聚合平台通过 Developer Consent API 向我们发送值，则不会显示 Unity 同意请求。请注意，用户仍然可以随时请求拒绝定向投放广告或删除他们的数据，并可以在广告展示期间随时通过选择 Unity Data Privacy（Unity 数据隐私）图标来访问他们的数据。

虽然建议最好对 MetaData 同意标志使用布尔值，但 Unity Ads SDK 也接受整数值（1 或 0），其中 1 表示“true”，0 表示“false”。这样可以确保与可能使用这些整数值的自定义 SDK 或旧版 SDK 实现之间兼容。虽然 Unity Ads SDK 支持整数值，但鼓励发行商使用布尔值传递同意标志，如以下代码示例中所示。

请使用以下 API 将同意标志传递给 Unity Ads SDK。

> **Note:**
>
> 如果您已经实现 `gdpr` API 来征求同意，还可以将该实现扩展到受其他[列出的受支持隐私框架](/grow/ads/privacy/ccpa-compliance.md#supported-privacy-frameworks-by-the-unity-ads-sdk)影响的用户。同样，隐私 API 在扩展到受影响的用户时也可适用于 GDPR。由于隐私 API 比 GDPR API 更新，因此如果同时设置了这两个值，我们将优先使用隐私 API 值。

> **Tip:**
>
> 如果用户没有执行任何操作来表示接受或拒绝定向投放广告（例如，直接关闭了提示），建议最好稍后再次提示用户。

1. **Unity (C#)**

   ```cs
   // If the user opts out of personalized ads: 
   MetaData userMetaData = new MetaData("user");
   userMetaData.Set("nonbehavioral", "true");
   Advertisement.SetMetaData(userMetaData);

   // If the user opts in to personalized ads:
   MetaData userMetaData = new MetaData("user");
   userMetaData.Set("nonbehavioral", false);
   Advertisement.SetMetaData(userMetaData);
   ```

   > **Note:**
   >
   > 必须先为每个值提交 `MetaData` 对象的更改，然后才能尝试设置另一个值。

2. **iOS (Objective-C)**

   ```objective-c
   // If the user opts in to targeted advertising: 
   UADSMetaData *privacyConsentMetaData = [[UADSMetaData alloc] init];
   [privacyConsentMetaData set:@"privacy.consent" value:@YES];
   [privacyConsentMetaData commit];

   // If the user opts out of targeted advertising:
   UADSMetaData *privacyConsentMetaData = [[UADSMetaData alloc] init];
   [privacyConsentMetaData set:@"privacy.consent" value:@NO];
   [privacyConsentMetaData commit];
   ```

   > **Note:**
   >
   > 必须先为每个值提交 `MetaData` 对象的更改，然后才能尝试设置另一个值。

3. **Android (Java)**

   ```java
   // If the user opts in to targeted advertising: 
   MetaData privacyMetaData = new MetaData(this);
   privacyMetaData.set("privacy.consent", true);
   privacyMetaData.commit();

   // If the user opts out of targeted advertising:
   MetaData privacyMetaData = new MetaData(this);
   privacyMetaData.set("privacy.consent", false);
   privacyMetaData.commit();
   ```

   > **Note:**
   >
   > 必须先为每个值提交 `MetaData` 对象的更改，然后才能尝试设置另一个值。
