> For the complete documentation index, see [llms.txt](https://docs.bidapp.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bidapp.io/integration/android/interstitial-ads.md).

# Interstitial Ads

Interstitial Ads are loaded automatically. You can observe ad loading events by specifying the delegate:

{% tabs %}
{% tab title="Java" %}

```java
Interstitial interstitial = new Interstitial(this);
interstitial.setLoadDelegate(this);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val interstitial: Interstitial? = Interstitial(this)
interstitial?.setLoadDelegate(this)
```

{% endtab %}
{% endtabs %}

The delegate should implement the following methods:

{% tabs %}
{% tab title="Java" %}

```java
@Override
public void didLoad(AdInfo adInfo) {
    print("Interstitial - didLoadAd. AdInfo: " + adInfo) 
}

@Override
public void didFailToLoad(AdInfo adInfo, Error error) {
    print("Interstitial - didFailToLoadAd. AdInfo:" + adInfo + " Error: " + error.getLocalizedMessage()) 
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
override fun didLoad(adInfo: AdInfo?) {
    print("Interstitial - didLoadAd. AdInfo: $adInfo") 
}

override fun didFailToLoad(adInfo: AdInfo?, error: Error) {
    print("Interstitial - didFailToLoadAd. AdInfo: $adInfo. Error: ${error.getLocalizedMessage()}") 
}
```

{% endtab %}
{% endtabs %}

## Showing an Interstitial Ad

To show an interstitial ad, call `showWithDelegate` instance method of the `Interstitial` class:

{% tabs %}
{% tab title="Java" %}

```java
interstitial.showWithDelegate(Activity, showDelegate);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
interstitial.showWithDelegate(Activity, showDelegate)
```

{% endtab %}
{% endtabs %}

The delegate should implement the following methods:

{% tabs %}
{% tab title="Java" %}

```java
@Override
public void didDisplayAd(AdInfo adInfo) {
    System.out.println ("Interstitial - didDisplayAd. AdInfo:" + adInfo) 
}

@Override
public void didClickAd(AdInfo adInfo) {
    System.out.println("Interstitial - didDisplayAd. AdInfo:" + adInfo );
}

@Override
public void didHideAd(AdInfo adInfo) {
    System.out.println("Interstitial - didHideAd. AdInfo:" + adInfo );
}

@Override
public void didFailToDisplayAd(AdInfo adInfo, Error error) {
    System.out.println("Interstitial - didFail toDisplayAd. AdInfo:" + adInfo + error.getLocalizedMessage());
}

@Override
public void allNetworksDidFailToDisplayAd() {
    System.out.println("Interstitial - allNetworksDidFailToDisplayAd.");
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
override fun didDisplayAd(adInfo: AdInfo?) {
    print("Interstitial - didDisplayAd. AdInfo: $adInfo")
}

override fun didClickAd(adInfo: AdInfo?) {
    print("Interstitial - didClickAd. AdInfo: $adInfo")
}

override fun didHideAd(adInfo: AdInfo?) {
    print("Interstitial - didHideAd. AdInfo: $adInfo")
}

override fun didFailToDisplayAd(adInfo: AdInfo?, error: Error) {
    print("Interstitial - didFail toDisplayAd. AdInfo: $adInfo. Error: ${error.getLocalizedMessage()}")
}

override fun allNetworksDidFailToDisplayAd() {
    print("Interstitial - allNetworksDidFailToDisplayAd." )
}
```

{% endtab %}
{% endtabs %}

## Stopping and Starting Auto-Load

By default, Interstitials preload ads before any load attempt. So an Interstitial can use already preloaded ads instead of waiting on a manual load call to load new ads. To disable this feature you need to call the following method:

{% tabs %}
{% tab title="Java" %}

```java
interstitial.setAutoload(false);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
interstitial.setAutoload(false)
```

{% endtab %}
{% endtabs %}

Once you disable autoload, you should load ads manually every time you need them to show:

{% tabs %}
{% tab title="Java" %}

```java
interstitial.load();
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
interstitial.load()
```

{% endtab %}
{% endtabs %}
