> ## Documentation Index
> Fetch the complete documentation index at: https://guide.daro.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Interstitial Ads

> Implement interstitial ads in your React Native app.

## Interstitial Ad Format

Full-screen ads that cover the entire app interface. Includes both image and video ads (video more common), typically skippable after 5 seconds.

<img src="https://mintcdn.com/delightroom-5a71a6a8/j3-znW7LKrbpP3mb/sdk-integration/common-img/ad-formats-en/interstitial-example-image.png?fit=max&auto=format&n=j3-znW7LKrbpP3mb&q=85&s=7404e29ead548d55d8d587336f8721f9" alt="Interstitial Example Image Pn" title="Interstitial Example Image Pn" style={{ width:"40%" }} width="1080" height="2336" data-path="sdk-integration/common-img/ad-formats-en/interstitial-example-image.png" />

### How It Works

<img src="https://mintcdn.com/delightroom-5a71a6a8/j3-znW7LKrbpP3mb/sdk-integration/common-img/ad-formats-en/interstitial-example-gif.gif?s=9f37cff5b366f1e05211b0d177b3926b" alt="Interstitial Example Gif Gi" title="Interstitial Example Gif Gi" style={{ width:"40%" }} width="240" height="518" data-path="sdk-integration/common-img/ad-formats-en/interstitial-example-gif.gif" />

***

## Implementation

Interstitial ads use the Hook API. `useInterstitialAd` manages loading state and event callbacks together inside your component.

<Warning>
  The previous static API (`InterstitialAd.loadAd` and friends) is deprecated. Static listeners such as `InterstitialAd.addAdLoadedEventListener` do not receive events for ads loaded through the Hook or instance API — when you move ad loading to the new API, move the event listeners with it.
</Warning>

```javascript theme={null}
import { Button } from "react-native";
import { useInterstitialAd } from "react-native-daro";

function InterstitialAdButton({ adUnitId }) {
  const { isLoaded, isLoading, load, show, isAdReady } = useInterstitialAd(
    adUnitId,
    {
      onLoaded: (adInfo) => {
        // Ad loaded
      },
      onLoadFailed: (errorInfo) => {
        // Ad failed to load
      },
      onDisplayed: (adInfo) => {
        // Ad displayed
      },
      onHidden: (adInfo) => {
        // Ad dismissed
      },
      onImpressionRecorded: (adInfo) => {
        // Impression recorded
      },
    }
  );

  const handlePress = async () => {
    if (await isAdReady()) {
      show();
      return;
    }

    load();
  };

  return (
    <Button
      disabled={isLoading}
      title={isLoaded ? "Show Interstitial" : "Load Interstitial"}
      onPress={handlePress}
    />
  );
}
```
