Skip to main content

Setting up an Interstitial Ad

Interstitial ads are full-screen ads that cover the interface of the app. They’re typically displayed at natural transition points in the flow of the app.

Initialising an ad

Start by initialising an instance of a CIInterstitialAd with the following parameters:

Required:

  • placementID: String: Unique ID for this Ad Placement provided by Content Ignite.
  • pageUrl: String?: URL used for targeting for example if the ad is displayed in a section of the app which has an equivalent URL on the web.
  • eventListener: CIInterstitialEventListener: This protocol allows you to respond to events related to the interstitial ad.

Optional:

  • targeting: [String: [String]]: Pass custom key-value pairs to ad requests.
  • publisher: Optional lambda to provide a fallback to your existing Ad implementation for this particular interstitial. This gives publishers full control over the use of the SDK and the rate at which this fallback is used can be controlled directly through the Fusion platform.
@MainActor
class InterstitialViewModel: ObservableObject {
...
    private var interstitial: CIInterstitial?

    func loadAd() {
        ...
        interstitial = CIInterstitial(
            placementID: "<PLACEMENT-ID>",
            pageUrl: "https://publisher.com/sport",
            targeting: ["segment" : ["health","fitness"]],
            eventListener: self
        )
    }

Load the ad

When you are ready to load the ad, call load() on the ad instance:
do {
    try await interstitial?.load()
} catch {
    print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    ...
}

Handling ad events

To listen and respond to events from an Interstitial ad, use the CIInterstitialEventListener protocol:
extension InterstitialViewModel: @MainActor CIInterstitialEventListener {
    
    func interstitialDismissed() {
        Task { @MainActor in
            uiState = .initial
        }
    }
    
    func interstitialLoadFailed() {
        Task { @MainActor in
            uiState = .failed
        }
    }
    
    func interstitialLoaded() {
        Task { @MainActor in
            uiState = .loaded
        }
    }
    
}

Show the ad

When you are ready to display the ad, such as after a transition in the app flow, use the show method to display the ad providing the current Activity:
interstitial?.show()
See the full examples: SPM | CocoaPods.