# Android 已弃用的 API

> 识别 Android 已弃用的 Unity Ads SDK 类，以及替换和移除版本。

## Android 已弃用的类##android-deprecated-classes

以下 API 类在 Unity Ads SDK 4.19.0 版本的 Android SDK 中已弃用或废弃。

### 初始化##initialization

| **要移除的 API**                                                                                                                        | **弃用版本** | **改用**                                                                                                                         | **移除版本** | **弃用原因**                                               |
| ----------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ | -------- | ------------------------------------------------------ |
| `UnityAds.initialize(context, gameId, isTesting, IUnityAdsInitializationListener)`                                                  | 4.19.0   | `UnityAds.initialize(InitializationConfiguration, InitializationListener)` 通过 `InitializationConfiguration.Builder(gameId)` 构建 | 5.0.0    | 被基于构建器的配置 API 取代，该 API 具有统一的单方法监听器。中介信息现在在初始化时通过构建器传递。 |
| `IUnityAdsInitializationListener` 界面 (`onInitializationComplete()` / `onInitializationFailed(UnityAdsInitializationError, String)`) | 4.19.0   | `InitializationListener` 具有单个 `onInitializationComplete(@Nullable UnityAdsError)` — `null` 表示成功                                | 5.0.0    | 双方法委托被单个可为空错误的回调取代，与统一的 `UnityAdsError` 模型一致。          |
| `MediationMetaData` 类                                                                                                               | 4.19.0   | `MediationInfo` — 构建为 `new MediationInfo(name, sdkVersion, adapterVersion)` 并通过每个构建器上的 `.withMediationInfo()` 传递               | 5.0.0    | 可变键值对元数据对象被直接传递给构建器 API 中的不可变类型化值对象所取代。                |
| `MetaData` 类（用于隐私和聚合键值对）                                                                                                            | 4.19.0   | 使用 `MediationInfo` 处理聚合数据；使用 `UnityAds.setUserConsent()`、`setUserOptOut()` 和 `setNonBehavioral()` 处理隐私                         | 5.0.0    | 通用字符串键值元数据被类型化、特定用途的 API 取代。                           |
| `UnityAds.UnityAdsInitializationError` 枚举                                                                                           | 4.19.0   | 统一 `UnityAdsError` — 使用 `error.getCode()` (int) 和 `error.getMessage()` (String)                                                | 5.0.0    | 按操作划分的错误枚举被统一的错误类型取代，该类型在所有操作中具有标准化的数字代码。              |

### 插页式广告##interstitial-ads

| **要移除的 API**                                                                                                                  | **弃用版本** | **改用**                                                                                                                                                                           | **移除版本** | **弃用原因**                                                  |
| ----------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------- |
| `UnityAds.load(placementId, UnityAdsLoadOptions, IUnityAdsLoadListener)`                                                      | 4.19.0   | `InterstitialAd.load(LoadConfiguration, LoadListener<InterstitialAd>)` built via `LoadConfiguration.Builder(placementId)`                                                        | 5.0.0    | 静态通用加载已替换为特定于类型的基于实例的加载 API。                              |
| `IUnityAdsLoadListener` 界面 (`onUnityAdsAdLoaded` / `onUnityAdsFailedToLoad`)                                                  | 4.19.0   | `LoadListener<InterstitialAd>` 带有单个 `onAdLoaded(@Nullable InterstitialAd, @Nullable UnityAdsError)`                                                                              | 5.0.0    |  双方法监听器已替换为单个可为空错误的回调，该回调还提供类型化的广告实例。                     |
| `UnityAdsLoadOptions`                                                                                                         | 4.19.0   | `LoadConfiguration.Builder(placementId)` 带有 `.withMediationInfo()` 和 `.withAdMarkup()`                                                                                           | 5.0.0    |  可变选项对象已替换为不可变的构建器模式配置。                                   |
| `UnityAdsLoadOptions.setObjectId(UUID)`                                                                                       | 4.19.0   |  无替代项 — 对象 ID 现在由 SDK 在内部管理                                                                                                                                                      | 5.0.0    |  不再需要手动关联 ID；SDK 在内部处理广告实例跟踪。                             |
| `UnityAds.show(activity, placementId, UnityAdsShowOptions, IUnityAdsShowListener)`                                            | 4.19.0   | `interstitialAd.show(activity, ShowConfiguration, InterstitialShowListener)` 在保留的 `InterstitialAd` 实例上调用                                                                         | 5.0.0    |  全局类上的静态 show 已替换为已加载广告对象上的实例方法。                          |
| `IUnityAdsShowListener` 接口（插页式）— `onUnityAdsShowStart`、`onUnityAdsShowClick`、`onUnityAdsShowComplete`、`onUnityAdsShowFailure` | 4.19.0   | `InterstitialShowListener` — `onStarted(InterstitialAd)`, `onClicked(InterstitialAd)`, `onCompleted(InterstitialAd, ShowFinishState)`, `onFailed(InterstitialAd, UnityAdsError)` | 5.0.0    |  字符串键控的通用 show 监听器已替换为特定于类型的广告监听器。回调接收广告实例，而不是广告位 ID 字符串。 |
| `UnityAdsShowOptions`                                                                                                         | 4.19.0   | `ShowConfiguration.Builder().build()`                                                                                                                                            | 5.0.0    |  可变选项对象已替换为不可变的构建器模式 show 配置。                             |
| `UnityAdsShowOptions.setObjectId()`                                                                                           | 4.19.0   |  无替代项 — 对象 ID 由内部管理                                                                                                                                                              | 5.0.0    |  不再需要手动关联 ID。                                             |
| `UnityAds.UnityAdsLoadError` 枚举                                                                                               | 4.19.0   |  统一的 `UnityAdsError`，包含 `getCode()` 和 `getMessage()`                                                                                                                             | 5.0.0    | 单操作错误枚举已替换为统一错误类型。                                        |
| `UnityAds.UnityAdsShowError` 枚举                                                                                               | 4.19.0   | 统一 `UnityAdsError` 与 `getCode()` 和 `getMessage()`                                                                                                                                | 5.0.0    | 单操作错误枚举已替换为统一错误类型。                                        |

### 奖励广告##rewarded-ads

| **要移除的 API**                                                                                                   | **弃用版本** | **改用**                                                                                                                                                              | **移除版本** | **弃用原因**                                                        |
| -------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------- |
| `UnityAds.load(placementId, UnityAdsLoadOptions, IUnityAdsLoadListener)`                                       | 4.19.0   | `RewardedAd.load(LoadConfiguration, LoadListener<RewardedAd>)` built via `LoadConfiguration.Builder(placementId)`                                                   | 5.0.0    | 静态通用加载已替换为特定于类型的基于实例的加载 API。                                    |
| `IUnityAdsLoadListener` 接口                                                                                     | 4.19.0   | `LoadListener<RewardedAd>` 带有单个 `onAdLoaded(@Nullable RewardedAd, @Nullable UnityAdsError)`                                                                         | 5.0.0    | 双方法监听器已替换为单个可为空错误的回调，该回调提供类型化的广告实例。                             |
| `UnityAds.show(activity, placementId, UnityAdsShowOptions, IUnityAdsShowListener)`                             | 4.19.0   | `rewardedAd.show(activity, ShowConfiguration, RewardedShowListener)` 在保留的 `RewardedAd` 实例上调用                                                                        | 5.0.0    | 全局类上的静态 show 已替换为已加载广告对象上的实例方法。                                 |
| `IUnityAdsShowListener` 接口 — 通过检查 `UnityAdsShowCompletionState.COMPLETED` 在 `onUnityAdsShowComplete` 内的内容来确定奖励 | 4.19.0   | `RewardedShowListener` 带有专用 `onRewarded(RewardedAd)` 回调，以及 `onStarted`、`onClicked`、`onCompleted(RewardedAd, ShowFinishState)`、`onFailed(RewardedAd, UnityAdsError)` | 5.0.0    | 用于奖励资格的完成状态检查已替换为专用奖励回调。注意：`onCompleted` 仍会在 `onRewarded` 之后触发。 |
| `UnityAds.UnityAdsShowCompletionState` 枚举 (`COMPLETED`, `SKIPPED`)                                             | 4.19.0   | `ShowFinishState` 枚举；奖励逻辑已移至 `RewardedShowListener.onRewarded()`                                                                                                    | 5.0.0    | 枚举已重命名以保持一致；奖励授予逻辑应使用专用 `onRewarded` 回调，而不是检查完成状态。              |

### 横幅广告##banner-ads

| **要移除的 API**                                                                                                                      | **弃用版本** | **改用**                                                                                                                                         | **移除版本** | **弃用原因**                                                 |
| --------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------- |
| `BannerView` 类 (`com.unity3d.services.banners`)                                                                                   | 4.19.0   | `BannerAd` 类 (`com.unity3d.ads`) — Android `View` 通过 `ad.getView()` 获取                                                                         | 5.0.0    | 直接视图类已替换为广告实例对象，其视图通过 getter 访问，这与新的广告对象模型一致。            |
| `BannerView.IListener` 接口 — `onBannerLoaded`, `onBannerFailedToLoad`, `onBannerShown`, `onBannerClick`, `onBannerLeftApplication` | 4.19.0   | 两个独立的监听器：`LoadListener<BannerAd>` 用于加载结果 (`onAdLoaded`)；`BannerShowListener` 用于广告展示 (`onImpression`)、点击 (`onClicked`) 和展示失败 (`onFailedToShow`) | 5.0.0    | 单个组合监听器拆分为独立的加载和展示监听器。`onBannerLeftApplication` 已移除，无替换。 |
| `BannerView.load(UnityAdsLoadOptions)`                                                                                            | 4.19.0   | `BannerAd.load(BannerConfiguration, LoadListener<BannerAd>)` 通过 构建`BannerConfiguration.Builder(placementId, BannerSize, BannerShowListener)`   | 5.0.0    | 构造函数 + 独立的加载方法已替换为带有构建器配置的统一静态加载方法，与插页式广告和激励广告保持一致。      |
| `UnityBannerSize` 类                                                                                                               | 4.19.0   | `BannerSize` 类 — 同时支持自适应尺寸（锚定和内嵌）                                                                                                              | 5.0.0    | 为保持命名空间一致性而重命名；新类还增加了对自适应横幅广告尺寸的支持。                      |
| `BannerErrorCode` / `BannerErrorInfo`                                                                                             | 4.19.0   | 统一 `UnityAdsError` 与 `getCode()` 和 `getMessage()`                                                                                              | 5.0.0    | 横幅广告特定的错误类型已替换为所有广告格式通用的统一错误类型。                          |
| `onBannerLeftApplication`回调在`BannerView.IListener`                                                                                | 4.19.0   | 无替换                                                                                                                                            | 5.0.0    | 回调已移除，在新的 `BannerShowListener` 中没有等效项。                   |

### 隐私##privacy

| **要移除的 API**                                        | **弃用版本** | **改用**                                                      | **移除版本** | **弃用原因**                                |
| --------------------------------------------------- | -------- | ----------------------------------------------------------- | -------- | --------------------------------------- |
| `MetaData`，键为 `"gdpr.consent"`                      | 4.19.0   | `UnityAds.setUserConsent(boolean)`                          | 5.0.0    | 字符串键值对隐私元数据已替换为类型化的静态方法。不再需要 `context`。 |
| `MetaData`，键为 `"privacy.consent"` (CCPA)            | 4.19.0   | `UnityAds.setUserOptOut(boolean)` — 当用户选择退出（请勿出售）时传递 `true` | 5.0.0    | 字符串键值对隐私元数据已替换为具有明确退出语义的类型化静态方法。        |
| `MetaData`，键为 `"user.nonBehavioral"` (COPPA，儿童导向法律) | 4.19.0   | `UnityAds.setNonBehavioral(false)`                          | 5.0.0    | 隐私模式字符串已替换为用于非行为/上下文广告控制的显式布尔值 API。     |

### 错误处理##error-handling

| **要移除的 API**                                                                                                                                                     | **弃用版本** | **改用**                                                                                                                                 | **移除版本** | **弃用原因**                       |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------ |
| `UnityAds.UnityAdsLoadError` 枚举 (`NO_FILL`, `INTERNAL_ERROR`, `INVALID_ARGUMENT`, `TIMEOUT`, `INITIALIZE_FAILED`)                                                | 4.19.0   | 统一 `UnityAdsError` — 使用 `error.getCode()` (int) 和 `error.getMessage()` (String)。代码 52100 = 无填充；52101 = 未初始化；52102/52104 = 无效配置；2 = 超时。 | 5.0.0    | 操作级加载错误枚举已替换为具有标准化数字代码的统一错误类型。 |
| `UnityAds.UnityAdsShowError` 枚举 (`NOT_INITIALIZED`, `NOT_READY`, `VIDEO_PLAYER_ERROR`, `INVALID_ARGUMENT`, `NO_CONNECTION`, `ALREADY_SHOWING`, `INTERNAL_ERROR`) | 4.19.0   | 统一 `UnityAdsError` 与 `getCode()` 和 `getMessage()`                                                                                      | 5.0.0    | 操作级显示错误枚举已替换为具有标准化数字代码的统一错误类型。 |
| `BannerErrorCode` 枚举 / `BannerErrorInfo` 类                                                                                                                       | 4.19.0   | 统一 `UnityAdsError` 与 `getCode()` 和 `getMessage()`                                                                                      | 5.0.0    | 横幅特定的错误类型已替换为所有广告格式通用的统一错误类型。  |
