# Interstitial

## Integración

Al contrario que los banners, los intersticiales únicamente se pueden integrar a través de código. A continuación se muestra un sencillo ejemplo para entender su funcionamiento:

{% tabs %}
{% tab title="Kotlin" %}
```kotlin
class MainActivity : Activity() {

    private var interstitialAd: InterstitialAd? = null
    
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        interstitialAd = InterstitialAd(this, "Ad Unit ID de Wortise").also {
	    it.loadAd()
        }
    }
    
    override fun onDestroy() {
        ...
        interstitialAd?.destroy()
    }
    
    fun showInterstitial() {
        if (interstitialAd?.isAvailable == true) {
            interstitialAd?.showAd(this)
        }
    }
}
```
{% endtab %}

{% tab title="Java" %}
```java
public class MainActivity extends Activity {

    private InterstitialAd mInterstitial;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...
        mInterstitial = new InterstitialAd(this, "Ad Unit ID de Wortise");
        mInterstitial.loadAd();
    }
    
    @Override
    public void onDestroy() {
        ...
        mInterstitial.destroy();
    }
    
    public void showInterstitial() {
        if (mInterstitial.isAvailable()) {
            mInterstitial.showAd(this);
        }
    }
}
```
{% endtab %}
{% endtabs %}

## **Configuración del listener**

Al igual que en el caso de los banners, se puede añadir un listener para recibir los diferentes eventos que sucedan durante el ciclo de vida del intersticial. Para ello, es necesario implementar la interfaz `InterstitialAd.Listener` como se muestra en el siguiente ejemplo:

{% tabs %}
{% tab title="Kotlin" %}
```kotlin
interstitialAd.listener = object : InterstitialAd.Listener() {

    override fun onInterstitialClicked(ad: InterstitialAd) {
        // Invocado cuando el anuncio ha sido clickeado
    }
    
    override fun onInterstitialDismissed(ad: InterstitialAd) {
        // Invocado cuando el anuncio ha sido cerrado
    }
    
    override fun onInterstitialFailedToLoad(ad: InterstitialAd,
                                            error: AdError) {
        // Invocado cuando el anuncio no se ha podido cargar
        // (por error o falta de inventario)
    }
    
    override fun onInterstitialFailedToShow(ad: InterstitialAd,
                                            error: AdError) {
        // Invocado cuando el anuncio no se ha podido mostrar
    }

    override fun onInterstitialImpression(ad: InterstitialAd) {
        // Invocado cuando el anuncio ha generado una impresión
    }

    override fun onInterstitialLoaded(ad: InterstitialAd) {
        // Invocado cuando el anuncio ha sido cargado
    }
    
    override fun onInterstitialRevenuePaid(ad: InterstitialAd,
                                           data: Revenuedata) {
        // Invocado cuando el anuncio ha generado un ingreso
    }
    
    override fun onInterstitialShown(ad: InterstitialAd) {
        // Invocado cuando el anuncio ha sido mostrado
    }
}
```
{% endtab %}

{% tab title="Java" %}
```java
mInterstitial.setListener(new InterstitialAd.Listener() {
    @Override
    public void onInterstitialClicked(@NonNull InterstitialAd ad) {
        // Invocado cuando el anuncio ha sido clickeado
    }
    
    @Override
    public void onInterstitialDismissed(@NonNull InterstitialAd ad) {
        // Invocado cuando el anuncio ha sido cerrado
    }
    
    @Override
    public void onInterstitialFailedToLoad(@NonNull InterstitialAd ad,
                                           @NonNull AdError error) {
        // Invocado cuando el anuncio no se ha podido cargar
        // (por error o falta de inventario)
    }
    
    @Override
    public void onInterstitialFailedToShow(@NonNull InterstitialAd ad,
                                           @NonNull AdError error) {
        // Invocado cuando el anuncio no se ha podido mostrar
    }
    
    @Override
    public void onInterstitialImpression(@NonNull InterstitialAd ad) {
        // Invocado cuando el anuncio ha generado una impresión
    }
    
    @Override
    public void onInterstitialLoaded(@NonNull InterstitialAd ad) {
        // Invocado cuando el anuncio ha sido cargado
    }
    
    @Override
    public void onInterstitialRevenuePaid(@NonNull InterstitialAd ad,
                                      @NonNull Revenuedata data) {
        // Invocado cuando el anuncio ha generado un ingreso
    }
    
    @Override
    public void onInterstitialShown(@NonNull InterstitialAd ad) {
        // Invocado cuando el anuncio ha sido mostrado
    }
});
```
{% endtab %}
{% endtabs %}
