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

> Android アプリケーションにインタースティシャル広告を実装します。広告コンテンツをロードし、Java コードで表示し、リスナーを使用して広告イベントを管理します。

## インタースティシャル広告の読み込み例##interstitial-ad-load-example

`LoadConfiguration.Builder` を使用して、プレースメントIDとメディエーションメタデータを含むロードリクエストを作成します。必要に応じて、ビディング用の広告マークアップを含めることもできます。ビルドした設定を `InterstitialAd.load()` とともに `LoadListener` に渡します。`onAdLoaded` コールバックは、成功した場合は読み込まれた `InterstitialAd` インスタンスを、失敗した場合は `UnityAdsError` を受け取ります。広告インスタンスは後で表示するために必要となるため、保持しておいてください。

広告は、読み込み後に表示されない場合、一定時間が経過すると期限切れになります。読み込まれた広告インスタンスに `onAdExpired` を設定して、これを検出し、参照を消去します。期限切れの広告に対して `show()` を呼び出すと失敗します。広告を保存するのと同じブロック内でこれを実施し、コールバックを利用して古い参照を破棄し、新しい `load()` の呼び出しを実行することで、次回必要なときに有効な広告が準備されるようにします。

1. **Java**

   ```java
   InterstitialAd.load(loadConfig, (interstitialAd, error) -> {
       if (interstitialAd != null) {
           // 広告の読み込みに成功しました。表示可能です。
           this.interstitialAd = interstitialAd;
           interstitialAd.setOnAdExpired(expiredAd -> {
               this.interstitialAd = null;
               // ここでリロードします
           });
       } else {
           // 読み込みエラーを処理します
       }
   });
   ```

2. **Kotlin**

   ```kotlin
   InterstitialAd.load(loadConfig, { interstitialAd, error ->
       if (interstitialAd != null) {
           // 広告の読み込みに成功しました。表示可能です。
           this.interstitialAd = interstitialAd
           interstitialAd.onAdExpired = AdExpiredListener { _ ->
               this.interstitialAd = null
               // ここでリロードします
           }
       } else {
           // 読み込みエラーを処理します
       }
   })
   ```

## インタースティシャル広告の表示例##interstitial-ad-show-example

保持している `show()` インスタンスに対して `InterstitialAd` を呼び出して、アクティビティ、`ShowConfiguration`、および `InterstitialShowListener` を渡します。リスナーは、広告のライフサイクルの各段階でコールバックを提供します。広告が表示されると `onStarted`、ユーザーが相互作用すると `onClicked`、広告が閉じられると `onCompleted`、エラーが発生すると `onFailed` が呼び出されます。エラーの詳細は `UnityAdsError` 引数から取得できます。

1. **Java**

   ```java
     loadedInterstitialAd.show(activity, new ShowConfiguration.Builder().build(), new InterstitialShowListener()
     {
        @Override
        public void onStarted(@NonNull InterstitialAd ad)   
        { /* 表示されました */ }

        @Override
        public void onClicked(@NonNull InterstitialAd ad)   
        { /* クリックされました */ }

        @Override
        public void onCompleted(@NonNull InterstitialAd ad, @NonNull ShowFinishState state) 
        { /* 非表示 */ }

        @Override
        public void onFailed(@NonNull InterstitialAd ad, @NonNull UnityAdsError error)      
        { /* 失敗 */ }
     } );

   ```

2. **Kotlin**

   ```kotlin
   loadedInterstitialAd.show(activity, ShowConfiguration.Builder().build(), object :InterstitialShowListener 
   {
     override fun onStarted(ad:InterstitialAd)                            
        { /* 表示されました */ }
     override fun onClicked(ad:InterstitialAd)                            
        { /* クリックされました */ }
     override fun onCompleted(ad:InterstitialAd, 状態:ShowFinishState)  
        { /* 非表示 */ }
     override fun onFailed(ad:InterstitialAd, error:UnityAdsError)       
        { /* 失敗 */ }
   })
   ```

**次のステップ**: 実装を改善するには、[Android でのリワード広告の実装](/ads-android/4.19.0/sdk-integration/rewarded-ads.md) に関するドキュメントを参照してください。
