# 在 Unity 中实现插页式广告

> 在 Unity 项目中实现插页式广告。加载广告内容，并通过 C# 脚本在游戏间隙或应用程序切换期间展示广告。

要使用 `Advertisements API` 来展示全屏插页式广告，请初始化 SDK，然后使用 `Load` 函数将广告内容加载到广告放置/位置，并使用 `Show` 函数展示广告。

> **Note:**
>
> 从 2026 年 4 月 1 日开始，通过广告旧版软件包直接集成使用 Unity Ads 进行变现的应用可能会降低广告效果。为避免性能下降，请切换到将 Unity Ads 集成为出价者。
>
> Unity Ads 网络将继续支持所有使用直接集成的应用程序并提供填充。但是，为了最大限度提高收入和效果，建议的最佳做法是为 Unity 的广告聚合平台 LevelPlay [安装广告服务](/grow/levelplay/sdk/unity/package-integration.md.md)聚合软件包。

在 SDK 3.7.0 及更高版本中，当内容成功或失败地加载或显示时，可以使用 `IUnityAdsLoadListener` 和 `IUnityAdsShowListener` 回调分别实现相应逻辑。

> **Note:**
>
> 调用 `Show` 方法时，必须指定 Placement ID（广告位 ID），否则将发生错误。

## 插页式广告示例##interstitial-ad-example

1. **C#**

   ```cs
   using UnityEngine;
   using UnityEngine.Advertisements;

   public class InterstitialAdExample : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
   {
     [SerializeField] string _androidAdUnitId = "Interstitial_Android";
     [SerializeField] string _iOSAdUnitId = "Interstitial_iOS";
     string _adUnitId;

     void Awake()
     {
       // Get the Ad Unit ID for the current platform:
       _adUnitId = (Application.platform == RuntimePlatform.IPhonePlayer)
       ? _iOSAdUnitId
       : _androidAdUnitId;
     }

     // Load content to the Ad Unit:
     public void LoadAd()
     {
       // IMPORTANT!仅在初始化完成后加载内容（在此示例中，初始化在另一个脚本中处理）。
       Debug.Log("Loading Ad: " + _adUnitId);
       Advertisement.Load(_adUnitId, this);
     }

     // Show the loaded content in the Ad Unit:
     public void ShowAd()
     {
       // Note that if the ad content wasn't previously loaded, this method will fail
       Debug.Log("Showing Ad: " + _adUnitId);
       Advertisement.Show(_adUnitId, this);
     }

     // Implement Load Listener and Show Listener interface methods:
     public void OnUnityAdsAdLoaded(string adUnitId)
     {
       // Optionally execute code if the Ad Unit successfully loads content.
     }

     public void OnUnityAdsFailedToLoad(string _adUnitId, UnityAdsLoadError error, string message)
     {
       Debug.Log($"Error loading Ad Unit: {_adUnitId} - {error.ToString()} - {message}");
       // Optionally execute code if the Ad Unit fails to load, such as attempting to try again.
     }

     public void OnUnityAdsShowFailure(string _adUnitId, UnityAdsShowError error, string message)
     {
       Debug.Log($"Error showing Ad Unit {_adUnitId}: {error.ToString()} - {message}");
       // Optionally execute code if the Ad Unit fails to show, such as loading another ad.
     }

     public void OnUnityAdsShowStart(string _adUnitId) { }
     public void OnUnityAdsShowClick(string _adUnitId) { }
     public void OnUnityAdsShowComplete(string _adUnitId, UnityAdsShowCompletionState showCompletionState) { }
   }
   ```

**后续步骤**：请参阅关于[在 Unity 中实现奖励广告](/monetization/sdk-integration/unity-sdk/rewarded-ads.md)的文档以改进您的实现。
