Documentation

​
​

Development

User Acquisition

Monetization

Industry

Unity Ads Monetization

SDK 4.20.0

Supported
​

iOS API reference - Swift

iOS API reference - Objective-C

Unity Ads Monetization

SDK 4.20.0

Supported
​

iOS developer guides
​
​
iOS developer guides
  • iOS SDK integration guide
  • Unity Ads privacy guide
  • Unity Ads SDK troubleshooting guide
  • iOS developer API references - Swift
  • iOS developer API references - Objective-C
  1. Unity Ads SDK iOS developer monetization
  2. Unity Ads SDK integration guide for iOS developers

Implement interstitial ads in iOS

Implement interstitial ads in your iOS app. Load ad content, display it through Objective-C or Swift code, and use a delegate to handle ad events.
Read time 2 minutes
Last updated a month ago

Interstitial ad load example

Use
UADSLoadConfigurationBuilder
to construct a load request with the placement ID, mediation metadata, and optional ad markup for bidding, then pass it to
UADSInterstitialAd.load()
. The completion block receives the loaded
UADSInterstitialAd
instance on success. Retain it, as it's required to show the ad later, or an error object on failure.
Ads expire if they aren't shown within a set time after the SDK loads them. Assign
onAdExpired
on the loaded ad instance to detect this. Attempting to
show()
an expired rewarded ad fails, which is especially important to catch since rewarded ads are often preloaded and held until the user requests a reward. Use the callback to clear your stored reference and issue a new
load()
call so a fresh ad is ready when needed.
@property (strong) UADSInterstitialAd *interstitialAd;UADSLoadConfigurationBuilder *builder = [[UADSLoadConfigurationBuilder alloc] initWithPlacementId:placementId];builder = [builder withMediationInfo:self.mediationInfo];builder = [builder withAdMarkup:bidResponse];[UADSInterstitialAd load:[builder build] completion:^(UADSInterstitialAd *ad, id<UnityAdsError> error) { if (error) { NSLog(@"Failed: %ld %@", (long)error.code, error.message); } else { __weak typeof(self) weakSelf = self; ad.onAdExpired = ^(UnityAd *expiredAd) { weakSelf.interstitialAd = nil; // reload here }; }}];
var interstitialAd: UADSInterstitialAd?let config = UADSLoadConfigurationBuilder(placementId: placementId) .with(mediationInfo: mediationInfo) .with(adMarkup: bidResponse) .build()UADSInterstitialAd.load(config) { ad, error in if let error = error { print("Failed: \(error.code) \(error.message)") } else { self.interstitialAd = ad ad?.onAdExpired = { [weak self] _ in self?.interstitialAd = nil // reload here } }}

Interstitial ad show example

Call
show()
on the retained
UADSInterstitialAd
instance, passing a
UADSShowConfiguration
built with the presenting view controller, and a
UADSInterstitialShowDelegate
. The delegate provides callbacks for each stage of the ad's lifecycle:
showDidStart
when the ad displays,
showDidClick
when the user interacts with it,
showDidComplete
when it closes, and
showDidFail
if an error occurs.
@interface MyDelegate : NSObject <UADSInterstitialShowDelegate>@end@implementation MyDelegate- (void)showDidStart:(UADSInterstitialAd *)unityAd {}- (void)showDidClick:(UADSInterstitialAd *)unityAd {}- (void)showDidComplete:(UADSInterstitialAd *)unityAd with:(UADSShowFinishState)finishState {}- (void)showDidFail:(UADSInterstitialAd *)unityAd error:(id<UnityAdsError>)error {}@endUADSShowConfigurationBuilder *builder =[[UADSShowConfigurationBuilder alloc] init];builder = [builder withViewController:viewController];[self.interstitialAd show:[builder build] delegate:delegate];
class MyDelegate: NSObject, UADSInterstitialShowDelegate {func showDidStart(_ unityAd: UADSInterstitialAd) {}func showDidClick(_ unityAd: UADSInterstitialAd) {}func showDidComplete( _ unityAd: UADSInterstitialAd, with finishState: UADSShowFinishState) {}func showDidFail( _ unityAd: UADSInterstitialAd, error: UnityAdsError) {}}let config = UADSShowConfigurationBuilder().with(viewController: viewController).build()interstitialAd?.show(config, delegate: delegate)
Next steps: To improve your implementation, refer to the Implement rewarded ads in iOS documentation.

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.

  • On this page
    • Interstitial ad load example

    • Interstitial ad show example


Report a problem with this page