Interstitial Ads
Loading an Interstitial Ad
To load an interstitial ad, instantiate an MAInterstitialAd
object that corresponds to your ad unit and call its loadAd()
method.
Implement MAAdDelegate
so that you are notified when your ad is ready.
This also notifies you of other ad-related events.
#import "ExampleViewController.h"#import <AppLovinSDK/AppLovinSDK.h>
@interface ExampleViewController()<MAAdDelegate>@property (nonatomic, strong) MAInterstitialAd *interstitialAd;@property (nonatomic, assign) NSInteger retryAttempt;@end
@implementation ExampleViewController
- (void)createInterstitialAd{ self.interstitialAd = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: @"«ad-unit-ID»"]; self.interstitialAd.delegate = self;
// Load the first ad [self.interstitialAd loadAd];}
#pragma mark - MAAdDelegate Protocol
- (void)didLoadAd:(MAAd *)ad{ // Interstitial ad is ready to be shown. '[self.interstitialAd isReady]' will now return 'YES'
// Reset retry attempt self.retryAttempt = 0;}
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error{ // Interstitial ad failed to load // AppLovin recommends that you retry with exponentially higher delays up to a maximum delay (in this case 64 seconds)
self.retryAttempt++; NSInteger delaySec = pow(2, MIN(6, self.retryAttempt));
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ [self.interstitialAd loadAd]; });}
- (void)didDisplayAd:(MAAd *)ad {}
- (void)didClickAd:(MAAd *)ad {}
- (void)didHideAd:(MAAd *)ad{ // Interstitial ad is hidden. Pre-load the next ad [self.interstitialAd loadAd];}
- (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error{ // Interstitial ad failed to display. AppLovin recommends that you load the next ad. [self.interstitialAd loadAd];}
@end
class ExampleViewController: UIViewController, MAAdDelegate{ var interstitialAd: MAInterstitialAd! var retryAttempt = 0.0
func createInterstitialAd() { interstitialAd = MAInterstitialAd(adUnitIdentifier: "«ad-unit-ID»") interstitialAd.delegate = self
// Load the first ad interstitialAd.load() }
// MARK: MAAdDelegate Protocol
func didLoad(_ ad: MAAd) { // Interstitial ad is ready to be shown. 'interstitialAd.isReady' will now return 'true'
// Reset retry attempt retryAttempt = 0 }
func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError) { // Interstitial ad failed to load // AppLovin recommends that you retry with exponentially higher delays up to a maximum delay (in this case 64 seconds)
retryAttempt += 1 let delaySec = pow(2.0, min(6.0, retryAttempt))
DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) { self.interstitialAd.load() } }
func didDisplay(_ ad: MAAd) {}
func didClick(_ ad: MAAd) {}
func didHide(_ ad: MAAd) { // Interstitial ad is hidden. Pre-load the next ad interstitialAd.load() }
func didFail(toDisplay ad: MAAd, withError error: MAError) { // Interstitial ad failed to display. AppLovin recommends that you load the next ad. interstitialAd.load() }}
Showing an Interstitial Ad
To show an interstitial ad, call showAd()
on the MAInterstitialAd
object that you instantiated:
if ( [self.interstitialAd isReady] ){ [self.interstitialAd showAd];}
if interstitialAd.isReady{ interstitialAd.show()}