# Advertisement
ByteArk Player SDK for Android supports advertisement playback through the Google IMA SDK following the VAST (opens new window) and VMAP standards, including Companion Ads.
# Enable in player builder
val playerBuilder = ByteArkPlayerBuilder.Builder()
.withContext(this)
.withControl()
.withAds()
.withAdTagUrl("https://example.com/vast/tag.xml")
.build()
1
2
3
4
5
6
2
3
4
5
6
# Per-video ad tag
You can also set an ad tag per-video on ByteArkPlayerItem:
val playerItem = ByteArkPlayerItemBuilder.Builder()
.withMediaId("VIDEO_ID")
.withTitle("Big Buck Bunny")
.withUrl("https://example.com/playlist.m3u8")
.withAdTagUrl("https://example.com/vast/tag.xml")
.build()
1
2
3
4
5
6
2
3
4
5
6
# Companion Ads
Use a container for Companion Ads next to the player:
val companionAdSlot = ByteArkPlayerFragment.createCompanionAdSlot(
mCompanionAdsSlotContainer,
728,
90
)
mPlayerFragment = ByteArkPlayerFragment.createInstance(
playerBuilder,
mFragmentListener,
companionAdSlot,
// ...
)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Or use the default companion slot:
val playerBuilder = ByteArkPlayerBuilder.Builder()
// ...
.withDefaultCompanionAdSlot()
.withDefaultCompanionAdSize(728, 90)
.build()
1
2
3
4
5
2
3
4
5
# Receive ad events
override fun onAdsRequest() { }
override fun onAdsStart() { }
override fun onAdsEnd() { }
override fun onAdsComplete() { }
override fun onAdsError(errorMessage: String?) { }
1
2
3
4
5
2
3
4
5