# Unity でのインタースティシャル広告の実装

> Unity プロジェクトにインタースティシャル広告を実装します。ゲームのモーメントまたはアプリケーション遷移の間に、C# スクリプトを使用して広告コンテンツをロードし、表示します。

[`Advertisements API`](/grow/ads/unity-sdk/unity-api.md) を使用して全画面のインタースティシャル広告を表示するには、SDK を初期化した後に、[`Load`](/grow/ads/unity-sdk/unity-api.md#load) 関数を使用して広告コンテンツを [広告ユニット](/grow/dashboard/ad-units.md) にロードし、[`Show`](/grow/ads/unity-sdk/unity-api.md#show) 関数を使用して広告を表示します。

> **Note:**
>
> SDK バージョン 4.4.1 から、Unity Ads パッケージは Unity エディターで Advertisement Legacy パッケージと呼ばれるようになりました。
> Advertisement Legacy パッケージのバージョン 4.12 は引き続き機能しますが、新機能や拡張機能のアップデートを受けることはできません。
> SDK バージョン 4.12 では Apple プライバシーマニフェストの更新がサポートされており、パッケージの更新は今後予定されていません。

SDK バージョン 3.7.0 以降では、[`IUnityAdsLoadListener`](/grow/ads/unity-sdk/unity-api.md) コールバックと [`IUnityAdsShowListener`](/grow/ads/unity-sdk/unity-api.md) コールバックを使用して、それぞれコンテンツのロードまたは表示が成功または失敗したときのためのロジックを実装できます。

> **Note:**
>
> `Show` メソッドを呼び出すときは、プレースメント 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 でのリワード広告の実装](/grow/ads/unity-sdk/rewarded-ads.md) に関するドキュメントを参照してください。
