Schedule VAST ads (Android v3)
Add advertising breaks to your content when using the VAST ad client in an Android app.
If you are using IMA ad tags, follow the steps in Enable Google IMA. If you are using FreeWheel, follow the steps in Enable FreeWheel Ad Manager
The most basic advertising implementation is to run a single VAST ad tag as a pre-roll before each playlist item.
Add a pre-roll ad break to a player
Use the following steps to add a pre-roll to the player you added to your activity:
- In app/java/MainActivity.java, create a
List<AdBreak>
object and name it, for example,adSchedule
. - Create an
AdBreak
object and name it, for example,adBreak
. At the minimum, you must pass an ad tag to thetag
property. - Add
adBreak
toadSchedule
. - Create an
Advertising
object and name it, for example,advertising
. UseAdSource.VAST
(which defines the ad client) andadSchedule
(which defines the ad schedule to use) as the arguments. - Add
advertising(advertising)
to theconfig
object of the player. This adds the ad schedule to the player.
mPlayerView = findViewById(R.id.jwplayer);
List<AdBreak> adSchedule = new ArrayList<>();
AdBreak adBreak = new AdBreak.Builder()
.tag("https://www.domain.com/adtag.xml")
.build();
adSchedule.add(adBreak);
Advertising advertising = new Advertising(AdSource.VAST, adSchedule);
PlaylistItem playlistItem = new PlaylistItem.Builder()
.file("https://cdn.jwplayer.com/manifests/{media_id}.m3u8")
.build();
List<PlaylistItem> playlist = new ArrayList<>();
playlist.add(playlistItem);
PlayerConfig config = new PlayerConfig.Builder()
.playlist(playlist)
.advertising(advertising)
.autostart(true)
.build();
mPlayerView.setup(config);
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:
- Define an additional
AdBreak
object. - Assign an ad tag to the
tag
property. - When defining the
offset
property, choose one of the following values to schedule a mid-roll or post-roll ad:
Mid-roll
Β Β - {number}: (String) Ad plays after the specified number of seconds.
Β Β - {timecode}: (String) Ad plays at a specific time, inhh:mm:ss:mmm
format.
Β Β - {xx%}: (String) Ad plays after xx% of the content has played.
Post-roll
Β Β -post
: (String) Ad plays after the content. - Add the additional
AdBreak
object toadSchedule
.
mPlayerView = findViewById(R.id.jwplayer);
List<AdBreak> adSchedule = new ArrayList<>();
AdBreak adBreak = new AdBreak.Builder()
.tag("https://www.domain.com/adtag.xml")
.offset("pre")
.build();
AdBreak adBreak2 = new AdBreak.Builder()
.tag("https://www.domain.com/adtag-mid-roll1.xml")
.offset("10")
.build();
AdBreak adBreak3 = new AdBreak.Builder()
.tag("https://www.domain.com/adtag-mid-roll2.xml")
.offset("00:00:15:000")
.build();
AdBreak adBreak4 = new AdBreak.Builder()
.tag("https://www.domain.com/adtag-mid-roll3.xml")
.offset("25%")
.build();
AdBreak adBreak5 = new AdBreak.Builder()
.tag("https://www.domain.com/adtag-post-roll.xml")
.offset("post")
.build();
adSchedule.add(adBreak);
adSchedule.add(adBreak2);
adSchedule.add(adBreak3);
adSchedule.add(adBreak4);
adSchedule.add(adBreak5);
Advertising advertising = new Advertising(AdSource.VAST, adSchedule);
PlaylistItem playlistItem = new PlaylistItem.Builder()
.file("https://cdn.jwplayer.com/manifests/{media_id}.m3u8")
.build();
List<PlaylistItem> playlist = new ArrayList<>();
playlist.add(playlistItem);
PlayerConfig config = new PlayerConfig.Builder()
.playlist(playlist)
.advertising(advertising)
.autostart(true)
.build();
mPlayerView.setup(config);
You can build on this basic implementation by defining ad rules.
Updated over 1 year ago