Interstitial

Appnext iOS SDK - Interstitial ad unit

Ad Unit Integration

Make sure to complete the Getting Started with the iOS SDK steps before you begin

Step 1: Add import statement

Add the following import statement in your pre-compiled header or in your .m/.h file where you intend to instantiate and use the Appnext SDK. If your application is written in swift add it to your bridging-header.

#import <AppnextLib/AppnextLib.h>

Step 2: Define a new Ad

Make sure to set your app's placementID before loading the ad.

AppnextInterstitialAd *interstitial = [[AppnextInterstitialAd alloc] initWithPlacementID:ADD_HERE_YOUR_PLACEMENT_ID];

Step 3 (optional): Loading an Ad

[interstitial loadAd];

Step 4: Showing the Ad

if (interstitial.adIsLoaded)
{
    [interstitial showAd];
} else
{
    // continue...
}

Step 5 (optional): Delegates

In order to receive client-side callbacks, the client can set a delegate for each Ad:

interstitial.delegate = self;

For Interstitial the delegate need to conform to:

@protocol AppnextAdDelegate <NSObject>
@optional
- (void) adLoaded:(AppnextAd *)ad;
- (void) adOpened:(AppnextAd *)ad;
- (void) adClosed:(AppnextAd *)ad;
- (void) adClicked:(AppnextAd *)ad;
- (void) adUserWillLeaveApplication:(AppnextAd *)ad;
- (void) adError:(AppnextAd *)ad error:(NSString *)error;
@end

Possible errors returned to client in AppnextAdDelegate method adError:error:

static NSString * const kAdErrorNoInternetConnection = @"No internet connection";
static NSString * const kAdErrorNoPlacementID = @"Placement ID cannot be empty";
static NSString * const kAdErrorDownloadingResources = @"Error Downloading Resources";
static NSString * const kAdErrorAdNotReady = @"Ad not ready";
static NSString * const kAdErrorPreparingViews = @"Error Preparing Views";
static NSString * const kAdErrorLoadingAd = @"Error Loading Ad";
static NSString * const kAdErrorBadParameters = @"Bad parameters";
static NSString * const kAdErrorEmptyResponse = @"Empty response";
static NSString * const kAdErrorNoAds = @"No ads";
static NSString * const kAdErrorFailedLoadingAds = @"Failed loading ads";
static NSString * const kAdErrorNoSuitableAd = @"No suitable ad";
static NSString * const kAdErrorVideoFileNameNotValid = @"Video file name not valid";

Configuring the Appnext Interstitial

Custom Configuration

By default, the SDK configuration will be loaded from Appnext's server. You can change the configuration directly by property or through the setter function.

Define the Interstitial configuration instance:

AppnextInterstitialAdConfiguration *interstitialConfig = [[AppnextInterstitialAdConfiguration alloc] init];

Examples

Interstitial config example:

AppnextInterstitialAdConfiguration *config = [[AppnextInterstitialAdConfiguration alloc] init];
[config setButtonText:@"Install"];
[config setButtonColor:@"#689f38"];
[config setSkipText:@"Skip"];
[config setCategories:@"category1,category2"];
[config setPostback:@"postback"];
[config setAutoPlay:YES];
[config setCreativeType:ANCreativeTypeManaged];
[config setPreferredOrientation:kPreferredOrientationTypeStringAutomatic];
[config setClickInApp:YES];

// Or You can alternatively set the property directly
//config.buttonText = @"Install";
//config.buttonColor = @"#689f38";
//config.skipText = @"Skip";
//config.categories = @"category1,category2";
//config.postback = @"postback";
//config.autoPlay = YES;
//config.creativeType = ANCreativeTypeManaged;
//config.preferredOrientation = kPreferredOrientationTypeStringAutomatic;

AppnextInterstitialAd *interstitial = [[AppnextInterstitialAd alloc] initWithConfig:config placementID:ADD_HERE_YOUR_PLACEMENT_ID];
interstitial.delegate = self;

// You can also set the property after the ad is created on the ad itself
//[interstitial setButtonText:@"Install"];
//[interstitial setButtonColor:@"#689f38"];
//[interstitial setSkipText:@"Skip"];
//[interstitial setCategories:@"category1,category2"];
//[interstitial setPostback:@"postback"];
//[interstitial setAutoPlay:YES];
//[interstitial setCreativeType:ANCreativeTypeManaged];
//[interstitial setPreferredOrientation:kPreferredOrientationTypeStringAutomatic];

List of configuration options

Button Text:
The install button's text (default is "Install")

Button Color:
The install button's color - a 6 hex chars starting with # (default is "#6AB344")

Skip Button Text:
Set a custom text for the "skip" button (default is "Skip")

Category:
Set preferred ad categories

Click in-app
Determines the App Store loading method, when set to "YES" - the App Store will open "in-app" within the running app, Otherwise the App Store will open outside the running app

Install Postback:
Postback parameters that will be posted to your server after user installed an app (make sure to encode the values)

Auto Play Video:
Set video auto-play (default is "YES")

  • YES
  • NO

Creative Type:
Set creative type for the main section of the Interstitial (default is ANCreativeTypeManaged)

  • ANCreativeTypeNotSet
  • ANCreativeTypeManaged
  • ANCreativeTypeVideo
  • ANCreativeTypeStatic

Preferred Orientation
Set the preferred orientation if both landscape and portrait are supported by the application (default is kPreferredOrientationTypeStringAutomatic)

  • kPreferredOrientationTypeStringAutomatic = @"automatic"
  • kPreferredOrientationTypeStringLandscape = @"landscape"
  • kPreferredOrientationTypeStringPortrait = @"portrait"
  • kPreferredOrientationTypeStringNotSet = @"not_set"

Integration Support
Should you have any problems integrating the product, log a ticket with us by emailing [email protected].

Important Note
It is against our policies to encourage or reward the user for installing the app; we only allow rewards as a means of encouraging users to watch the video ad, so they will voluntarily install the app if they are interested.

Example Project

Please see example project AppnextNewNativeLibSDKTest inside the SDK zip file here.

App Categories

1. Action
2. Adventure
3. Arcade
4. Board
5. Books
6. Business
7. Card
8. Casino
9. Catalogs
10. Dice
11. Education
12. Educational
13. Entertainment
14. Family
15. Finance
16. Food & Drink
17. Graphics & Design
18. Health & Fitness
19. Kids
20. Lifestyle
21. Medical
22. Music
23. Navigation
24. News
25. Photo & Video
26. Productivity
27. Puzzle
28. Racing
29. Reference
30. Role Playing
31. Simulation
32. Social Networking
33. Sports
34. Strategy
35. Travel
36. Trivia
37. Utilities
38. Weather

Make sure to encode (%20) categories with more than 1 word, example: Travel%20%26%20Local

Integration Support

Should you have any problems integrating the product, log a ticket with us by emailing [email protected].