# 在 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`，并传入 activity、`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, state:ShowFinishState)  
        { /* 已隐藏 */ }
     override fun onFailed(ad:InterstitialAd, error:UnityAdsError)       
        { /* 已失败 */ }
   })
   ```

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