App Open Ads

Integrate CloudX App Open ads in iOS apps

App Open ads are fullscreen placements intended for app foreground moments, such as when a user returns to your app after it has been backgrounded.

Supported Networks

App Open demand is served by the following bidding networks:

NetworkAdapter
MintegralMintegral
PanglePangle
VungleVungle

The Google Mobile Ads waterfall adapter also supports App Open placements for AdMob waterfall demand.

@interface YourViewController () <CLXAppOpenDelegate, CLXAdRevenueDelegate>
@property (nonatomic, strong) CLXAppOpen *appOpenAd;
@end

@implementation YourViewController

- (void)createAppOpenAd {
    self.appOpenAd = [[CloudXCore shared] createAppOpenWithAdUnitId:@"your-app-open-ad-unit-id"];
    self.appOpenAd.delegate = self;
    self.appOpenAd.revenueDelegate = self;
    [self.appOpenAd load];
}

- (void)showAppOpenAd {
    if (self.appOpenAd.isReady) {
        [self.appOpenAd showFromViewController:self];
    } else {
        NSLog(@"App Open ad not ready");
    }
}

- (void)dealloc {
    [self.appOpenAd destroy];
}

#pragma mark - CLXAppOpenDelegate

- (void)didLoadAd:(CLXAd *)ad {
    NSLog(@"App Open ad loaded from %@", ad.networkName);
}

- (void)didFailToLoadAd:(NSString *)adUnitId error:(CLXError *)error {
    NSLog(@"App Open ad failed to load: %@", error.localizedDescription);
}

- (void)didDisplayAd:(CLXAd *)ad {
    NSLog(@"App Open ad displayed");
}

- (void)didFailToDisplayAd:(CLXAd *)ad error:(CLXError *)error {
    NSLog(@"App Open ad failed to display: %@", error.localizedDescription);
    [self.appOpenAd load];
}

- (void)didHideAd:(CLXAd *)ad {
    NSLog(@"App Open ad hidden");
    [self.appOpenAd load]; // Reload for next use
}

- (void)didClickAd:(CLXAd *)ad {
    NSLog(@"App Open ad clicked");
}

#pragma mark - CLXAdRevenueDelegate

- (void)didPayRevenueForAd:(CLXAd *)ad {
    NSLog(@"App Open revenue: %@ from %@", ad.revenue, ad.networkName);
}

@end

Use App Open ads sparingly and only at natural app-open or app-resume transitions. Avoid showing one while the user is already interacting with app content.