---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ads.yandex.com/helpcenter/en/support/migration/unityads-ya-ads-unity.md
  - https://ads.yandex.com/helpcenter/ru/support/migration/unityads-ya-ads-unity.md
  - https://ads.yandex.com/helpcenter/zh/support/migration/unityads-ya-ads-unity.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/zh/llms.txt

# 在 Unity 上从 Unity Ads 迁移到 Yandex 聚合

## 集成 Mobile Ads Unity 插件 {#plugin}

Mobile Ads Unity 是 Unity3d 游戏平台的插件，支持 Yandex Mobile Ads SDK。


{% note info %}

1. 要运行 SDK，您需要目标 API 级别版本 31 或更高版本。
1. 要加载任何类型的广告，您需要 iOS 12.0 或更高版本。

{% endnote %}


### 集成插件 {#integration}


{% note info %}

`yandex-ads-unity-plugin` 仅在 Android 和 iOS 环境中运行。您不能在 Unity 编辑器中使用它。

{% endnote %}


#### 精简版 {#lite-version}

1. 下载目录 [`yandex-ads-unity-plugin`](https://github.com/yandexmobile/yandex-ads-unity-plugin) 并添加包 `yandex-mobileads-lite-2.9.0.unitypackage`。系统将提示您安装 Google 解析器。如果 Google 解析器已添加到您的项目中，请清除该复选框。

    {% cut "如何添加包" %}

    选择一个插件 (**Assets**&nbsp;→ **Import Package**&nbsp;→ **Custom Package**)，然后点击 **Import**。

    {% endcut %}

1. 使用 Google 解析器安装依赖项：启用 **auto-resolve** 或者在菜单中选择 **Assets**&nbsp;→ **External Dependency Manager**&nbsp;→ **Android Resolver**&nbsp;→ **Resolve**。

1. 要测试 Mobile Ads Unity 插件，请使用 [`yandex-ads-unity-plugin`](https://github.com/yandexmobile/yandex-ads-unity-plugin) 存储库中的 **samples** 目录中的示例脚本。将脚本复制到项目目录并将其作为**Component** 添加到主摄像头。

### 降级目标 API 级别 {#down}

要将目标 API 级别降级到 30，请将显式降级添加到 `mainTemplate.gradle` 和 `launcherTemplate.gradle`（如果您在项目中使用 launcherTemplate）：

```bash
configurations.all {
    resolutionStrategy {
        force 'androidx.core:core:1.6.0'
        force 'androidx.core:core-ktx:1.6.0'
    }
}
```

但是，我们建议您升级到目标 API 级别 31，因为 Google 对运行过时版本的目标 API 级别的应用程序发布更新有限制。详情请参见 [文章](https://developer.android.com/google/play/requirements/target-sdk)。

### 错误描述 {#errors}

#### 插屏广告 Unity Ads 未显示，错误类型“全屏视图不正确” {#incorrect-fullscreen-view}

在 iOS 上启动插屏广告时，可能会出现“全屏视图不正确”类型的错误。如果出现此问题，请确保在 **Build Phases** 设置中的 **Copy Bundle Resource** 下添加了值 **YandexMobileAdsBundle.bundle**。如果该值缺失，请添加它。

![](https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/en/images/bundle-unity.png)


## 广告格式 {#format}

要将 Unity Ads 广告替换为 Yandex Ads 聚合，请对您的代码进行以下更改。

### 插屏广告 {#interstitial}

{% list tabs %}

- Unity Ads

  ```java
  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()
      {
          // 获取当前平台的广告单元 ID：
          _adUnitId = (Application.platform == RuntimePlatform.IPhonePlayer)
              ? _iOsAdUnitId
              : _androidAdUnitId;
      }

      // 将内容加载到广告单元：
      public void LoadAd()
      {
          // 重要提示！只有在初始化之后加载内容（在本示例中，初始化是在不同的脚本中处理的）。
          Debug.Log("Loading Ad: " + _adUnitId);
          Advertisement.Load(_adUnitId, this);
      }

      // 在广告单元中显示加载的内容：
      public void ShowAd()
      {
          // 请注意，如果之前未加载广告内容，此方法将失败
          Debug.Log("Showing Ad: " + _adUnitId);
          Advertisement.Show(_adUnitId, this);
      }

      // 实现加载监听器和显示监听器接口方法：
      public void OnUnityAdsAdLoaded(string adUnitId)
      {
          // 如果广告单元成功加载内容，可以选择执行代码。
      }

      public void OnUnityAdsFailedToLoad(string adUnitId, UnityAdsLoadError error, string message)
      {
          Debug.Log($"Error loading Ad Unit: {adUnitId} - {error.ToString()} - {message}");
          // 如果广告单元加载失败，可以选择执行代码，例如尝试再次加载。
      }

      public void OnUnityAdsShowFailure(string adUnitId, UnityAdsShowError error, string message)
      {
          Debug.Log($"Error showing Ad Unit {adUnitId}: {error.ToString()} - {message}");
          // 如果广告单元无法显示，可以选择执行代码，例如加载另一个广告。
      }

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

- Yandex Ads

  ```java
  using UnityEngine;
  using YandexMobileAds;
  using YandexMobileAds.Base;

  public class InterstitialAdExample : MonoBehaviour
  {
      //将这些 ID 替换为来自 Yandex Advertising Network 界面的 ad_unit_id
          [SerializeField] string _androidAdUnitId = "demo-interstitial-yandex";
      [SerializeField] string _iOsAdUnitId = "demo-interstitial-yandex";
      string _adUnitId;
      private Interstitial interstitial;

      void Awake()
      {
          // 获取当前平台的广告单元 ID：
          _adUnitId = (Application.platform == RuntimePlatform.IPhonePlayer)
              ? _iOsAdUnitId
              : _androidAdUnitId;

          interstitial = new Interstitial(_adUnitId);

          要跟踪插屏广告中发生的事件，请为适当的 EventHandler 注册委托，如下所示：
          // 广告请求成功加载时调用。
          this.interstitial.OnInterstitialLoaded += this.HandleInterstitialLoaded;
          // 广告请求加载失败时调用。
          this.interstitial.OnInterstitialFailedToLoad += this.HandleInterstitialFailedToLoad;
          // 当用户点击后返回应用程序时调用。
          this.interstitial.OnReturnedToApplication += this.HandleReturnedToApplication;
          // 当用户点击广告后即将离开应用时调用。
          this.interstitial.OnLeftApplication += this.HandleLeftApplication;
          // 当用户点击广告时调用。
          this.interstitial.OnAdClicked += this.HandleAdClicked;
          // 广告展示时调用。
          this.interstitial.OnInterstitialShown += this.HandleInterstitialShown;
          // 广告关闭时调用。
          this.interstitial.OnInterstitialDismissed += this.HandleInterstitialDismissed;
          // 当跟踪到一次展示时调用。
          this.interstitial.OnImpression += this.HandleImpression;
          // 广告请求无法显示时调用。
          this.interstitial.OnInterstitialFailedToShow += this.HandleInterstitialFailedToShow;
      }

      // 加载插屏广告：
      public void LoadAd()
      {
          Debug.Log("Loading Ad: " + _adUnitId);

          AdRequest request = new AdRequest.Builder().Build();
          interstitial.LoadAd(request);
      }

      // 显示加载的插屏广告：
      public void ShowAd()
      {
          Debug.Log("Showing Ad: " + _adUnitId);
          if (this.interstitial.IsLoaded())
          {
              interstitial.Show();
          }
          else
          {
              Debug.Log("Interstitial is not ready yet");
          }
      }

      void OnDestroy()
      {
          //清理广告
          interstitial.Destroy();
      }

      public void HandleInterstitialLoaded(object sender, EventArgs args)
      {
          ShowAd();
          Debug.Log("HandleInterstitialLoaded event received");
      }

      public void HandleInterstitialFailedToLoad(object sender, AdFailureEventArgs args)
      {
          Debug.Log("HandleInterstitialFailedToLoad event received with message: {args.Message}");
      }

      public void HandleReturnedToApplication(object sender, EventArgs args)
      {
          Debug.Log("HandleReturnedToApplication event received");
      }

      public void HandleLeftApplication(object sender, EventArgs args)
      {
          Debug.Log("HandleLeftApplication event received");
      }

      public void HandleAdClicked(object sender, EventArgs args)
      {
          Debug.Log("HandleAdClicked event received");
      }

      public void HandleInterstitialShown(object sender, EventArgs args)
      {
          Debug.Log("HandleInterstitialShown event received");
      }

      public void HandleInterstitialDismissed(object sender, EventArgs args)
      {
          Debug.Log("HandleInterstitialDismissed event received");
      }

      public void HandleImpression(object sender, ImpressionData impressionData)
      {
          var data = impressionData == null ? "null" : impressionData.rawData;
          Debug.Log("HandleImpression event received with data: {data}");
      }

      public void HandleInterstitialFailedToShow(object sender, AdFailureEventArgs args)
      {
          Debug.Log("HandleInterstitialFailedToShow event received with message: {args.Message}");
      }
  }
  ```

{% endlist %}

### 横幅广告 {#banner}

{% list tabs %}

- Unity Ads

  ```java
  using UnityEngine;
  using UnityEngine.UI;
  using UnityEngine.Advertisements;

  public class BannerAdExample : MonoBehaviour
  {
      // 就本示例而言，这些按钮用于功能测试：
      [SerializeField] Button _loadBannerButton;
      [SerializeField] Button _showBannerButton;
      [SerializeField] Button _hideBannerButton;

      [SerializeField] BannerPosition _bannerPosition = BannerPosition.BOTTOM_CENTER;

      [SerializeField] string _androidAdUnitId = "Banner_Android";
      [SerializeField] string _iOSAdUnitId = "Banner_iOS";
      string _adUnitId = null; // 对于不受支持的平台，该值将保持为空。

      void Start()
      {
          // 获取当前平台的广告单元 ID：
  #if UNITY_IOS
          _adUnitId = _iOSAdUnitId;
  #elif UNITY_ANDROID
          _adUnitId = _androidAdUnitId;
  #endif

          // 在广告准备好展示之前禁用按钮：
          _showBannerButton.interactable = false;
          _hideBannerButton.interactable = false;

          // 设置横幅位置：
          Advertisement.Banner.SetPosition(_bannerPosition);

          // 配置“加载横幅”按钮，以在点击时调用 LoadBanner() 方法：
          _loadBannerButton.onClick.AddListener(LoadBanner);
          _loadBannerButton.interactable = true;
      }

      // 实施点击“加载横幅”按钮时调用的方法：
      public void LoadBanner()
      {
          // 设置选项以通知 SDK 加载事件：
          BannerLoadOptions options = new BannerLoadOptions
          {
              loadCallback = OnBannerLoaded,
              errorCallback = OnBannerError
          };

          // 加载带有横幅内容的广告单元：
          Advertisement.Banner.Load(_adUnitId, options);
      }

      // 实施当 loadCallback 事件触发时执行的代码：
      void OnBannerLoaded()
      {
          Debug.Log("Banner loaded");

          // 配置“显示横幅”按钮，以在点击时调用 ShowBannerAd() 方法：
          _showBannerButton.onClick.AddListener(ShowBannerAd);
          // 配置“隐藏横幅”按钮，以在点击时调用 HideBannerAd() 方法：
          _hideBannerButton.onClick.AddListener(HideBannerAd);

          // 启用两个按钮：
          _showBannerButton.interactable = true;
          _hideBannerButton.interactable = true;
      }

      // 实施加载 errorCallback 事件触发时执行的代码：
      void OnBannerError(string message)
      {
          Debug.Log($"Banner Error: {message}");
          // 可以选择执行其他代码，例如尝试加载另一个广告。
      }

      // 实施点击“显示横幅”按钮时调用的方法：
      void ShowBannerAd()
      {
          // 设置选项以通知 SDK 显示事件：
          BannerOptions options = new BannerOptions
          {
              clickCallback = OnBannerClicked,
              hideCallback = OnBannerHidden,
              showCallback = OnBannerShown
          };

          // 显示加载的横幅广告单元：
          Advertisement.Banner.Show(_adUnitId, options);
      }

      // 实施点击“隐藏横幅”按钮时调用的方法：
      void HideBannerAd()
      {
          // 隐藏横幅：
          Advertisement.Banner.Hide();
      }

      void OnBannerClicked() { }
      void OnBannerShown() { }
      void OnBannerHidden() { }

      void OnDestroy()
      {
          // 清理监听器：
          _loadBannerButton.onClick.RemoveAllListeners();
          _showBannerButton.onClick.RemoveAllListeners();
          _hideBannerButton.onClick.RemoveAllListeners();
      }
  }
  ```

- Yandex Ads

  ```java
  using UnityEngine;
  using UnityEngine.UI;
  using YandexMobileAds;
  using YandexMobileAds.Base;

  public class BannerAdExample : MonoBehaviour
  {
      // 就本示例而言，这些按钮用于功能测试：
      [SerializeField] Button _loadBannerButton;

      [SerializeField] string _androidAdUnitId = "demo-banner-yandex";
      [SerializeField] string _iOSAdUnitId = "demo-banner-yandex";
      string _adUnitId = null;
      private Banner banner;

      void Start()
      {
          // 获取当前平台的广告单元 ID：
  #if UNITY_IOS
          _adUnitId = _iOSAdUnitId;
  #elif UNITY_ANDROID
          _adUnitId = _androidAdUnitId;
  #endif

          // 创建一个 320x50 的横幅并设置位置。
          this.banner = new Banner(adUnitId, AdSize.BANNER_320x50, AdPosition.TopCenter);

          要跟踪横幅中发生的事件，请为适当的 EventHandler 注册委托，如下所示：
          banner.OnAdLoaded += this.HandleAdLoaded;
          banner.OnAdFailedToLoad += this.HandleAdFailedToLoad;
          banner.OnReturnedToApplication += this.HandleReturnedToApplication;
          banner.OnLeftApplication += this.HandleLeftApplication;
          banner.OnAdClicked += this.HandleAdClicked;
          banner.OnImpression += this.HandleImpression;

          // 在广告准备好展示之前禁用按钮：
          _showBannerButton.interactable = false;
          _hideBannerButton.interactable = false;

          // 配置“加载横幅”按钮，以在点击时调用 LoadBanner() 方法：
          _loadBannerButton.onClick.AddListener(LoadBanner);
          _loadBannerButton.interactable = true;
      }

      // 实施点击“加载横幅”按钮时调用的方法：
      public void LoadBanner()
      {
          // 创建一个空的广告请求。
          AdRequest request = new AdRequest.Builder().Build();
          // 使用请求加载横幅。
          banner.LoadAd(request);
      }

      // 实施当 loadCallback 事件触发时执行的代码：
      void OnBannerLoaded()
      {
          Debug.Log("Banner loaded");

          // 配置“显示横幅”按钮，以在点击时调用 ShowBannerAd() 方法：
          _showBannerButton.onClick.AddListener(ShowBannerAd);
          // 配置“隐藏横幅”按钮，以在点击时调用 HideBannerAd() 方法：
          _hideBannerButton.onClick.AddListener(HideBannerAd);

          // 启用两个按钮：
          _showBannerButton.interactable = true;
          _hideBannerButton.interactable = true;
      }

      // 实施加载 errorCallback 事件触发时执行的代码：
      void OnBannerError(string message)
      {
          Debug.Log($"Banner Error: {message}");
          // 可以选择执行其他代码，例如尝试加载另一个广告。
      }

      // 实施点击“显示横幅”按钮时调用的方法：
      void ShowBannerAd()
      {
          // 显示加载的横幅广告单元：
          banner.Show();
      }

      // 实施点击“隐藏横幅”按钮时调用的方法：
      void HideBannerAd()
      {
          // 隐藏横幅：
          banner.Hide();
      }

      void OnDestroy()
      {
          //清理广告
          banner.Destroy();
          // 清理监听器：
          _loadBannerButton.onClick.RemoveAllListeners();
          _showBannerButton.onClick.RemoveAllListeners();
          _hideBannerButton.onClick.RemoveAllListeners();
      }

      public void HandleAdLoaded(object sender, EventArgs args)
      {
          Debug.log("HandleAdLoaded event received");
          ShowBannerAd();
      }

      public void HandleAdFailedToLoad(object sender, AdFailureEventArgs args)
      {
          Debug.log("HandleAdFailedToLoad event received with message: {args.Message}");
      }

      public void HandleLeftApplication(object sender, EventArgs args)
      {
          Debug.log("HandleLeftApplication event received");
      }

      public void HandleReturnedToApplication(object sender, EventArgs args)
      {
          Debug.log("HandleReturnedToApplication event received");
      }

      public void HandleAdLeftApplication(object sender, EventArgs args)
      {
          Debug.log("HandleAdLeftApplication event received");
      }

      public void HandleAdClicked(object sender, EventArgs args)
      {
          Debug.log("HandleAdClicked event received");
      }

      public void HandleImpression(object sender, ImpressionData impressionData)
      {
          var data = impressionData == null ? "null" : impressionData.rawData;
          Debug.log("HandleImpression event received with data: {data}");
      }
  }
  ```

{% endlist %}

### 激励广告 {#rewarded}

{% list tabs %}

- Unity Ads

  ```java
  using UnityEngine;
  using UnityEngine.UI;
  using UnityEngine.Advertisements;

  public class RewardedAdsButton : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
  {
      [SerializeField] Button _showAdButton;
      [SerializeField] string _androidAdUnitId = "Rewarded_Android";
      [SerializeField] string _iOSAdUnitId = "Rewarded_iOS";
      string _adUnitId = null; // 对于不支持的平台，该值将保持为空

      void Awake()
      {
          // 获取当前平台的广告单元 ID：
  #if UNITY_IOS
          _adUnitId = _iOSAdUnitId;
  #elif UNITY_ANDROID
          _adUnitId = _androidAdUnitId;
  #endif

          //在广告准备好展示之前禁用按钮：
          _showAdButton.interactable = false;
      }

      // 将内容加载到广告单元：
      public void LoadAd()
      {
          // 重要提示！只有在初始化之后加载内容（在本示例中，初始化是在不同的脚本中处理的）。
          Debug.Log("Loading Ad: " + _adUnitId);
          Advertisement.Load(_adUnitId, this);
      }

      // 如果广告成功加载，请向按钮添加监听器并启用它：
      public void OnUnityAdsAdLoaded(string adUnitId)
      {
          Debug.Log("Ad Loaded: " + adUnitId);

          if (adUnitId.Equals(_adUnitId))
          {
              // 配置按钮，以在点击时调用 ShowAd() 方法：
              _showAdButton.onClick.AddListener(ShowAd);
              // 启用按钮供用户点击：
             _showAdButton.interactable = true;
          }
      }

      // 实施当用户点击按钮时执行的方法：
      public void ShowAd()
      {
          // 禁用按钮：
          _showAdButton.interactable = false;
          // 然后展示广告：
          Advertisement.Show(_adUnitId, this);
      }

      // 实施显示监听器的 OnUnityAdsShowComplete 回调方法来确定用户是否获得奖励：
      public void OnUnityAdsShowComplete(string adUnitId, UnityAdsShowCompletionState showCompletionState)
      {
          if (adUnitId.Equals(_adUnitId) && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
          {
              Debug.Log("Unity Ads Rewarded Ad Completed");
              // 授予奖励。

              // 加载另一个广告：
              Advertisement.Load(_adUnitId, this);
          }
      }

      // 实施加载和显示监听器错误回调：
      public void OnUnityAdsFailedToLoad(string adUnitId, UnityAdsLoadError error, string message)
      {
          Debug.Log($"Error loading Ad Unit {adUnitId}: {error.ToString()} - {message}");
          // 使用错误详细信息来确定是否尝试加载另一个广告。
      }

      public void OnUnityAdsShowFailure(string adUnitId, UnityAdsShowError error, string message)
      {
          Debug.Log($"Error showing Ad Unit {adUnitId}: {error.ToString()} - {message}");
          // 使用错误详细信息来确定是否尝试加载另一个广告。
      }

      public void OnUnityAdsShowStart(string adUnitId) { }
      public void OnUnityAdsShowClick(string adUnitId) { }

      void OnDestroy()
      {
          // 清理按钮监听器：
          _showAdButton.onClick.RemoveAllListeners();
      }
  }
  ```

- Yandex Ads

  ```java
  using UnityEngine;
  using UnityEngine.UI;
  using YandexMobileAds;
  using YandexMobileAds.Base;

  public class RewardedAdsButton : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
  {
      [SerializeField] Button _showAdButton;
      [SerializeField] string _androidAdUnitId = "demo-rewarded-yandex";
      [SerializeField] string _iOSAdUnitId = "demo-rewarded-yandex";
      private RewardedAd rewardedAd;
      string _adUnitId = null; // 对于不支持的平台，该值将保持为空

      void Awake()
      {
  #if UNITY_IOS
          _adUnitId = _iOSAdUnitId;
  #elif UNITY_ANDROID
          _adUnitId = _androidAdUnitId;
  #endif

          this.rewardedAd = new RewardedAd(_adUnitId);

         //要跟踪激励广告中发生的事件，请为适当的 EventHandler 注册委托，如下所示：
          // 广告请求成功加载时调用。
          this.rewardedAd.OnRewardedAdLoaded += this.HandleRewardedAdLoaded;
          // 广告请求加载失败时调用。
          this.rewardedAd.OnRewardedAdFailedToLoad += this.HandleRewardedAdFailedToLoad;
          // 当用户点击后返回应用程序时调用。
          this.rewardedAd.OnReturnedToApplication += this.HandleReturnedToApplication;
          // 当用户点击广告后即将离开应用时调用。
          this.rewardedAd.OnLeftApplication += this.HandleLeftApplication;
          // 当用户点击广告时调用。
          this.rewardedAd.OnAdClicked += this.HandleAdClicked;
          // 广告展示时调用。
          this.rewardedAd.OnRewardedAdShown += this.HandleRewardedAdShown;
          // 广告关闭时调用。
          this.rewardedAd.OnRewardedAdDismissed += this.HandleRewardedAdDismissed;
          // 当跟踪到一次展示时调用。
          this.rewardedAd.OnImpression += this.HandleImpression;
          // 当用户因与广告互动而应获得奖励时调用。
          this.rewardedAd.OnRewarded += this.HandleRewarded;
          // 广告请求无法显示时调用。
          this.rewardedAd.OnRewardedAdFailedToShow += this.HandleRewardedAdFailedToShow;

          //在广告准备好展示之前禁用按钮：
          _showAdButton.interactable = false;
      }

      // 将内容加载到广告单元：
      public void LoadAd()
      {
          Debug.Log("Loading Ad: " + _adUnitId);
          // 创建一个空的广告请求。
          AdRequest request = new AdRequest.Builder().Build();
          // 加载请求加载激励广告。
          this.rewardedAd.LoadAd(request);
      }

      // 实施当用户点击按钮时执行的方法：
      public void ShowAd()
      {

          if (this.rewardedAd.IsLoaded())
          {
              // 禁用按钮：
              _showAdButton.interactable = false;
              rewardedAd.Show();
          }
          else
          {
              Debug.Log("Rewarded Ad is not ready yet");
          }
      }

      // 如果广告成功加载，请向按钮添加监听器并启用它：
      public void HandleRewardedAdLoaded(object sender, EventArgs args)
      {
          // 配置按钮，以在点击时调用 ShowAd() 方法：
          _showAdButton.onClick.AddListener(ShowAd);
          // 启用按钮供用户点击：
          _showAdButton.interactable = true;
          Debug.Log("HandleRewardedAdLoaded event received");
      }

      public void HandleRewardedAdFailedToLoad(object sender, AdFailureEventArgs args)
      {
          Debug.Log("HandleRewardedAdFailedToLoad event received with message: {args.Message}");
      }

      public void HandleReturnedToApplication(object sender, EventArgs args)
      {
          Debug.Log("HandleReturnedToApplication event received");
      }

      public void HandleLeftApplication(object sender, EventArgs args)
      {
          Debug.Log("HandleLeftApplication event received");
      }

      public void HandleAdClicked(object sender, EventArgs args)
      {
          Debug.Log("HandleAdClicked event received");
      }

      public void HandleRewardedAdShown(object sender, EventArgs args)
      {
          Debug.Log("HandleRewardedAdShown event received");
      }

      public void HandleRewardedAdDismissed(object sender, EventArgs args)
      {
          Debug.Log("HandleRewardedAdDismissed event received");
      }

      public void HandleImpression(object sender, ImpressionData impressionData)
      {
          var data = impressionData == null ? "null" : impressionData.rawData;
          Debug.Log("HandleImpression event received with data: {data}");
      }

      public void HandleRewarded(object sender, Reward args)
      {
          Debug.Log("HandleRewarded event received: amout = {args.amount}, type = {args.type}");
      }

      public void HandleRewardedAdFailedToShow(object sender, AdFailureEventArgs args)
      {
          Debug.Log("HandleRewardedAdFailedToShow event received with message: {args.Message}");
      }

      void OnDestroy()
      {
          //清理广告
          rewardedAd.Destroy();
          // 清理按钮监听器：
          _showAdButton.onClick.RemoveAllListeners();
      }
  }
  ```

{% endlist %}


<!-- source: zh/support/_includes/support.md -->
<a href="../contact" class="button"> <!--ссылка, куда ведет кнопка. Если внутренняя ссылка, пишем без .md и .html -->联系支持部门</a>


<!-- endsource: zh/support/_includes/support.md -->

