Schedule VAST ads

Add advertising breaks to your iOS app when using the JW Player VAST ad client.


The most basic advertising implementation is to run a single VAST ad tag as a pre-roll that runs before each playlist.

👍

IMPORTANT

• If you are using IMA ad tags, follow the steps in Schedule Google IMA ads.
• If you are using DAI, follow the steps in Enable Google DAI playback.



Add a pre-roll ad to a player

Use the following steps to add a pre-roll ad to the player you added to your view:

  1. Instantiate a JWAdvertisingConfig object using the JWAdsAdvertisingConfigBuilder(). At a minimum, you must assign an ad tag URL to the tag property. The ad will be presented as a pre-roll ad.

    The ad tag can include ad pods and have custom parameters appended to the URL.

  1. Assign the JWAdvertisingConfig object to your JWPlayerConfiguration object using the JWPlayerConfigurationBuilder().
import UIKit
import JWPlayerKit

class ViewController: JWPlayerViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        do {
            // Create a JW Player VAST ad.
            let adConfig = try JWAdsAdvertisingConfigBuilder()
                .tag(<#VAST tag#>)
                .build()

            // Create the content to be played.
            let item = try JWPlayerItemBuilder()
                .file(URL(string:<#Video URL String#>)!)
                .build()

            // Create a config, and give it the item as a playlist.
            // Set it to begin automatically.
            let config = try JWPlayerConfigurationBuilder()
                .playlist([item])
                .autostart(true)
                .advertising(adConfig)
                .build()

            // Set the config.
            player.configurePlayer(with: config)
        }
        catch {
            // Handle Error.
        }
    }
}
#import <JWPlayerKit/JWPlayerKit-Swift.h>
#import <JWPlayerKit/JWPlayerObjCViewController.h>
// Note that in Objective-C, subclass JWPlayerObjCViewController
// and not JWPlayerViewController.
@interface ViewController : JWPlayerObjCViewController

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    // For brevity, we are not checking for errors.
    // To check for errors, supply an NSError object to buildAndReturn.

    // Create a JW Player VAST ad.
    JWAdvertisingConfig *adConfig = [[[JWAdsAdvertisingConfigBuilder new]
                                      tag:<#VAST tag#>]
                                     buildAndReturnError:nil];

    // Create the content to be played.
    JWPlayerItem *item = [[[JWPlayerItemBuilder new]
                           file:<#Video URL#>]
                          buildAndReturnError:nil];

    // Create a config, and give it the item as a playlist.
    // Set it to begin automatically.
    JWPlayerConfiguration *config = [[[[[JWPlayerConfigurationBuilder new]
                                        playlist:@[item]]
                                       autostart:YES]
                                      advertising:adConfig]
                                     buildAndReturnError:nil];

    // Set the config
    [self.player configurePlayerWith:config];
}

@end

You can build upon this basic implementation by adding more ad breaks or defining ad rules.



Add multiple ad breaks to a player

Use the following steps to add multiple ad breaks to the previous VAST pre-roll example:

  1. Instantiate a JWAdvertisingConfig object using the JWAdsAdvertisingConfigBuilder().
    • Assign an ad tag URL to the tags property using JWAdBreakBuilder().
    • When defining the offset property, refer to documentation of the methods in JWAdOffset.
  2. Add the additional AdBreak object to the schedule array in the JWAdsAdvertisingConfigBuilder().
class ViewController: JWPlayerViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        do {
            // Create the ad breaks
            let break0 = try JWAdBreakBuilder()
                .tags([<#VAST tag#>])
                .offset(JWAdOffset.preroll())
                .build()

            let break1 = try JWAdBreakBuilder()
                .tags([<#VAST tag#>])
                .offset(JWAdOffset.midroll(seconds:10))
                .build()

            let break2 = try JWAdBreakBuilder()
                .tags([<#VAST tag#>])
                .offset(JWAdOffset.postroll())
                .build()

            // Create a JW Player VAST ad.
            let adConfig = try JWAdsAdvertisingConfigBuilder()
                .schedule([break0, break1, break2])
                .build()

            // Create a JWPlayerItem.
            let item = try JWPlayerItemBuilder()
                .file(URL(string:<#Video URL String#>)!)
                .build()

            // Create a config, and give it the item as a playlist.
            // Set it to begin automatically.
            let config = try JWPlayerConfigurationBuilder()
                .playlist([item])
                .autostart(true)
                .advertising(adConfig)
                .build()

            // Set the config.
            player.configurePlayer(with: config)
        }
        catch {
            // Handle Error.
        }
    }
}
#import <JWPlayerKit/JWPlayerKit-Swift.h>
#import <JWPlayerKit/JWPlayerObjCViewController.h>

@interface ViewController : JWPlayerObjCViewController

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    // For brevity, we are not checking for errors.
    // To check for errors, supply an NSError object to buildAndReturn.

    JWAdBreak *break0 = [[[[JWAdBreakBuilder new]
                           tags:@[<#VAST tag#>]]
                          offset: [JWAdOffset preroll]]
                         buildAndReturnError:nil];

    JWAdBreak *break1 = [[[[JWAdBreakBuilder new]
                           tags:@[<#VAST tag#>]]
                          offset: [JWAdOffset midrollWithSeconds:10]]
                         buildAndReturnError:nil];

    JWAdBreak *break2 = [[[[JWAdBreakBuilder new]
                           tags:@[<#VAST tag#>]]
                          offset: [JWAdOffset postroll]]
                         buildAndReturnError:nil];

    // Create a JW Player VAST ad.
    JWAdvertisingConfig *adConfig = [[[JWAdsAdvertisingConfigBuilder new]
                                      schedule:@[break0, break1, break2]]
                                     buildAndReturnError:nil];

    // Create the content to be played.
    JWPlayerItem *item = [[[JWPlayerItemBuilder new]
                           file:<#Video URL#>]
                          buildAndReturnError:nil];

    // Create a config, and give it the item as a playlist.
    // Set it to begin automatically.
    JWPlayerConfiguration *config = [[[[[JWPlayerConfigurationBuilder new]
                                        playlist:@[item]]
                                       autostart:YES]
                                      advertising:adConfig]
                                     buildAndReturnError:nil];

    // Set the config
    [self.player configurePlayerWith:config];
}

@end


Did this page help you?