iOS Interstitial Integration

Last Updated on: 19 Sep, 2023

Create an Interstitial Object

INFO

If you miss to Initialize the SDK, this method will fail to return a response.

To implement an Interstitial bidder object for GAM follow:

Swift

//1. import MesonWrapGAM
import MesonWrapGAM

//2. Create a GAMRequest object
private var gamRequest = GAMRequest()

//3. Create a MesonGAMInterstitial object and Init with adUnitId and adSize
private var mesonInt: MesonGAMInterstitial?
mesonInt = = MesonGAMInterstitial.init(adUnitId: #adUnitId)

Objective-C

//1. import MesonWrapGAM
@import MesonWrapGAM;

//2. Create and Init a GAMRequest object with credientials
@property(nonatomic,strong) GAMRequest *gamRequest;

//3. Create a MesonGAMInterstitial object and Init with adUnitId and adSize
@property(nonatomic,strong) MesonGAMInterstitial *mesonInt;
self.mesonInt = [[MesonGAMInterstitial alloc] initWithAdUnitId: #adUnitId];

Initialize the SKStoreManager

Initialize the SKStoreManager as follows:

Swift

//Please import the MesonWrapSKAN for CocoaPods integration. For manual please import the files.
var mesonInterstitialSKStoreManager: MesonInterstitialSKStoreManager()

Objective-C

//Please import the MesonWrapSKAN for CocoaPods integration. For manual please import the files.
@property(nonatomic,strong) MesonInterstitialSKStoreManager *mesonInterstitialSKStoreManager;
self.mesonInterstitialSKStoreManager = [[MesonInterstitialSKStoreManager alloc] init];

Implement a Delegate

To implement a delegate for GAM follow:

Swift

//Success or failure callbacks

extension <ClassName>: MesonGAMBidFetcherDelegate {

    func bidFetched(for ppmAd: GAMRequest) {
    // Create a GAMInterstitialAd and call load with GAMRequest
  }

    func bidFailed(for ppmAd: GAMRequest, with error: Error) {
    // Create a GAMInterstitialAd and call load with GAMRequest
  }
}

Objective-C

@interface <ClassName> () <MesonGAMBidFetcherDelegate> {

  //Success or failure callbacks
  - (void)bidFetchedFor:(GAMRequest *)ppmAd {
  // Create a GAMInterstitialAd and call load with GAMRequest
  }

  - (void)bidFailedFor:(GAMRequest *)ppmAd error:(NSError *)error {
  // Create a GAMInterstitialAd and call load with GAMRequest
  }
}

Fetch a Bid

To fetch a bid for GAM follows:

Swift

// Fetch the Bid using the MesonGAMInterstitial.fetchBid with delegate MesonGAMBidFetcherDelegate.
mesonInt?.fetchBid(gamRequest: gamRequest, delegate: self)

Objective-C

// Fetch the Bid using the MesonGAMInterstitial fetchBid with delegate MesonGAMBidFetcherDelegate.
 [self.mesonInt fetchBidWithGamRequest:self.gamRequest delegate:self];

Submit Signed Clicks to SKAdNetwork

After successfully loading the Interstitial Ad, call the following from the load success callback of MoPub / GAM Delegate:

Swift

self.mesonInterstitialSKStoreManager.start(delegate: self)

Objective-C

[self.mesonInterstitialSKStoreManager startWithDelegate:self];

Implement the following delegate methods

Swift

 extension <ClassName>: MesonSkStoreManagerDelegate {
  func didFailToLoad(error: Error) {
    // SKStore fails to load  
  }  
  func didFailToShow(error: Error) {
    // SKStore fails to show  
  }  
  func didShow(skStore: UIViewController) {
    // SKStore successfully shown with the view controller
  }  
  func willDismiss(skStore: UIViewController) {
    // Successfully closed the SKStore view controller
  }
}

Objective-C

  @interface <ClassName> () <MesonSkStoreManagerDelegate> {
    - (void)didFailToLoadWithError:(NSError * _Nonnull)error {
      // SKStore fails to load
  }  
  - (void)didFailToShowWithError:(NSError * _Nonnull)error {
      // SKStore fails to show
  }  
  - (void)didShowWithSkStore:(UIViewController * _Nonnull)skStore {
      // SKStore successfully shown with the view controller
  }  
  - (void)willDismissWithSkStore:(UIViewController * _Nonnull)skStore {
      // Successfully closed the SKStore view controller
  }
}

WHAT'S NEXT

Next, Manage Demand and Configure your Ad Server.