# 设置自定义同意解决方案

> 实现自定义开发者同意解决方案，无论您是使用第三方中介还是仅使用 Unity Ads 进行中介。

Unity Ads Privacy API 提供了三种传达用户隐私偏好的方法：

| 用途         | API 方法               |
| ---------- | -------------------- |
| 选择同意       | `setUserConsent()`   |
| 选择退出信号     | `setUserOptOut()`    |
| 面向儿童或非行为用户 | `setNonBehavioral()` |

> **Important:**
>
> 从 SDK 版本 4.18.0 开始，UnityAds 隐私 API 为每个隐私框架强制执行一个授权信号，即选择加入隐私框架的选择加入同意信号或选择退出隐私框架的选择退出信号。请参阅[支持的隐私框架](/ads-android/4.19.0/privacy/developer-consent/frameworks/supported-frameworks.md.md)以了解哪种方法适合哪种隐私框架。不会应用来自不适用 API 的信号，并且框架的默认行为仍然特效。
>
> 在启用开发者同意时，您有责任确保已审查并满足先决条件并使用最新版本的 Unity Ads SDK。

有关 Unity Ads 选择加入同意 API 的更多信息，请参阅 Unity Ads Privacy API 参考，供使用 [Java](/ads-android/4.19.0/sdk-integration/api/android-api.md.md)、[Kotlin](/ads-android/4.19.0/sdk-integration/api/android-api.md.md)、[Objective-C](/ads-ios/4.19.0/sdk-integration/api/ios-api-objc.md.md) 和 [Swift](/ads-ios/4.19.0/sdk-integration/api/ios-api-swift.md.md) 的开发者参考。

> **Tip:**
>
> 在初始化 SDK 后调用这些方法，以确保正确的隐私行为从会话开始时特效。

## 选择同意 API

使用以下示例可以传达用户是否同意定向广告。

## 选择加入同意 API##opt-in-consent-api

使用以下示例来传达用户是否已授予或拒绝对定向广告的同意。

1. **Kotlin**

   ```kotlin
   // 如果用户同意个性化广告服务
   UnityAds.userConsent = true

   // If the user doesn't agree to personalized ads
   UnityAds.userConsent = false

   ```

2. **Java**

   ```java
   // 如果用户同意个性化广告服务
   UnityAds.setUserConsent(true);

   // If the user doesn't agree to personalized ads
   UnityAds.setUserConsent(false);
   ```

## 选择退出信号 API##opt-out-signal-api

使用以下示例来指示用户是否已根据适用的隐私法选择退出数据收集。

1. **Kotlin**

   ```kotlin
   // 如果用户选择加入个性化广告服务
   UnityAds.userOptOut = false

   // If the user opts out to personalized ads
   UnityAds.userOptOut = true
   ```

2. **Java**

   ```java
   // 如果用户选择加入个性化广告服务
   UnityAds.setUserOptOut(false);

   // If the user opts out to personalized ads
   UnityAds.setUserOptOut(true);
   ```

## 年龄受限用户规范 API##age-restricted-user-specification-api

使用以下示例来指定应用程序或用户是否应被视为面向儿童或非行为。

1. **Kotlin**

   ```kotlin
   // 如果用户选择退出个性化广告服务
   UnityAds.nonBehavioral = true

   // If the user opts in to personalized ads
   UnityAds.nonBehavioral = false
   ```

2. **Java**

   ```java
   // 如果用户选择退出个性化广告服务
   UnityAds.setNonBehavioral(true);

   // If the user opts in to personalized ads
   UnityAds.setNonBehavioral(false);
   ```
